diff --git a/src/css/bundle.css b/src/css/bundle.css index da77f89..b013731 100644 --- a/src/css/bundle.css +++ b/src/css/bundle.css @@ -2340,7 +2340,7 @@ main.prose h4 { } .copy-md-btn.copied { - color: #10b981; + color: var(--muted); } .bm-btn { diff --git a/src/css/bundle.min.css b/src/css/bundle.min.css index b202779..a2e23b0 100644 --- a/src/css/bundle.min.css +++ b/src/css/bundle.min.css @@ -1 +1 @@ -:root,:root[data-theme="dark"]{--bg: #000000;--text: #f3f3f3;--text: #ffffff;--muted: #a3a3a3;--border: #2b2b2b98;--bg-elevated: rgba(255,255,255,0.08);--bg-card: rgba(25,25,25,0.2);--bg-card-hover: rgba(28,28,28,0.8);--bg-code: #050505;--code-inline-bg: #050505;--code-inline-text: #f3f3f3;--code-text: #abb2bf;--bg-menu: #000000;--bg-modal: rgba(10,10,10,0.35);--hover-bg: rgba(120,120,120,0.05);--search-bg: rgba(50,50,50,0.1);--search-panel-bg: rgba(10,10,10,0.6);--code-group-bg: #0d0d0d;--code-group-panel-bg: #000000;--code-tab-active: #ffffff;--footer-border: rgba(255,255,255,0.08);--border-subtle: rgba(255,255,255,0.05);--btn-primary-bg: #ffffff;--btn-primary-text: #000000;--btn-home-bg: #ffffff;--btn-home-text: #000000;--callout-note-bg: rgba(50,50,50,0.1);--callout-info-bg: rgba(39,39,39,0.08);--callout-warning-bg: rgba(180,120,0,0.18);--callout-warning-text: #fde047;--body-radial-tint: rgba(0,0,0,0.7);--skeleton-pulse-1: rgba(255,255,255,0.05);--skeleton-pulse-2: rgba(255,255,255,0.12);--spider-display: none;--cobweb-display: none;--spider-thread: rgba(255,255,255,0.3);--snow-display: none;--leaf-display: none;--lights-display: none;--hl-comment: #5c6370;--hl-punct: #abb2bf;--hl-func: #61afef;--hl-keyword: #c678dd;--hl-string: #98c379;--hl-var: #e06c75;--hl-op: #56b6c2;--hl-num: #d19a66;--hl-param: #d19a66;--hl-class: #e5c07b;--hl-tag: #e06c75;--hl-deleted-color: #e06c75;--hl-deleted-bg: rgba(224,108,117,0.15);--hl-inserted-color: #98c379;--hl-inserted-bg: rgba(152,195,121,0.15);--sidebar-width: 150px;--toc-width: 240px;--header-height: 148px;--font: Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--mono: ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;--ico-toc-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M4 6h16M4 12h10M4 18h14'/%3E%3C/svg%3E");--ico-check-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");--ico-chevron-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");--ico-search-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.35-4.35'/%3E%3C/svg%3E");--ico-close-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'/%3E%3Cline x1='6' y1='6' x2='18' y2='18'/%3E%3C/svg%3E");}:root[data-theme="light"]{--bg: #ffffff;--text: #000000;--muted: #6b7280;--border: #e5e7eb;--bg-elevated: rgba(0,0,0,0.05);--bg-card: rgba(240,240,240,0.85);--bg-card-hover: rgba(225,225,225,0.95);--bg-code: #fafafa;--code-inline-bg: rgba(240,240,240,0.8);--code-inline-text: #0b0b0c;--code-text: #24292e;--bg-menu: #ffffff;--bg-modal: rgba(240,240,240);--hover-bg: rgba(0,0,0,0.05);--search-bg: rgba(0,0,0,0.05);--search-panel-bg: rgba(255,255,255,0.85);--code-group-bg: #f4f4f5;--code-group-panel-bg: #ffffff;--code-tab-active: #0b0b0c;--footer-border: rgba(0,0,0,0.08);--border-subtle: rgba(0,0,0,0.05);--btn-primary-bg: #000000;--btn-primary-text: #ffffff;--btn-home-bg: #000000;--btn-home-text: #ffffff;--callout-note-bg: rgba(5,5,5,0.06);--callout-info-bg: rgba(39,39,39,0.06);--callout-warning-bg: #fefce8;--callout-warning-text: #854d0e;--body-radial-tint: rgba(255,255,255,0.7);--skeleton-pulse-1: rgba(0,0,0,0.05);--skeleton-pulse-2: rgba(0,0,0,0.12);--spider-display: none;--cobweb-display: none;--spider-thread: rgba(0,0,0,0.3);--hl-comment: #6a737d;--hl-punct: #24292e;--hl-func: #6f42c1;--hl-keyword: #d73a49;--hl-string: #22863a;--hl-var: #e36209;--hl-op: #d73a49;--hl-num: #005cc5;--hl-param: #b08800;--hl-class: #6f42c1;--hl-tag: #22863a;--hl-deleted-color: #b31d28;--hl-deleted-bg: #ffeef0;--hl-inserted-color: #22863a;--hl-inserted-bg: #f0fff4;}:root[data-theme="midnight"]{--bg: #070913;--text: #e2e8f0;--text: #f8fafc;--muted: #7f8ea3;--border: #1a2234;--bg-elevated: rgba(30,41,59,0.5);--bg-card: rgba(15,23,42,0.55);--bg-card-hover: rgba(30,41,59,0.7);--bg-code: #0b1120;--code-inline-bg: #0f172a;--code-inline-text: #38bdf8;--code-text: #cbd5e1;--bg-menu: #0b1120;--bg-modal: rgba(11,17,32,0.75);--hover-bg: rgba(56,189,248,0.08);--search-bg: rgba(30,41,59,0.4);--search-panel-bg: rgba(11,17,32,0.85);--code-group-bg: #0b1329;--code-group-panel-bg: #070913;--code-tab-active: #38bdf8;--footer-border: #1e293b;--border-subtle: rgba(255,255,255,0.06);--btn-primary-bg: #38bdf8;--btn-primary-text: #020617;--btn-home-bg: #38bdf8;--btn-home-text: #020617;--callout-note-bg: rgba(56,189,248,0.1);--callout-info-bg: rgba(99,102,241,0.12);--callout-warning-bg: rgba(245,158,11,0.15);--callout-warning-text: #fbbf24;--body-radial-tint: rgba(7,9,19,0.85);--skeleton-pulse-1: rgba(56,189,248,0.05);--skeleton-pulse-2: rgba(56,189,248,0.15);--spider-display: none;--cobweb-display: none;--spider-thread: rgba(56,189,248,0.3);--hl-comment: #64748b;--hl-punct: #94a3b8;--hl-func: #38bdf8;--hl-keyword: #818cf8;--hl-string: #34d399;--hl-var: #f472b6;--hl-op: #38bdf8;--hl-num: #fbbf24;--hl-param: #cbd5e1;--hl-class: #67e8f9;--hl-tag: #818cf8;--hl-deleted-color: #f87171;--hl-deleted-bg: rgba(248,113,113,0.15);--hl-inserted-color: #34d399;--hl-inserted-bg: rgba(52,211,153,0.15);}:root[data-theme="nord"]{--bg: #2e3440;--text: #eceff4;--text: #88c0d0;--muted: #d8dee9;--border: #3b4252;--bg-elevated: rgba(67,76,94,0.5);--bg-card: rgba(59,66,82,0.5);--bg-card-hover: rgba(67,76,94,0.7);--bg-code: #242933;--code-inline-bg: #3b4252;--code-inline-text: #eceff4;--code-text: #d8dee9;--bg-menu: #2e3440;--bg-modal: rgba(46,52,64,0.8);--hover-bg: rgba(136,192,208,0.1);--search-bg: rgba(59,66,82,0.5);--search-panel-bg: rgba(46,52,64,0.9);--code-group-bg: #3b4252;--code-group-panel-bg: #2e3440;--code-tab-active: #88c0d0;--footer-border: #3b4252;--border-subtle: rgba(255,255,255,0.05);--btn-primary-bg: #88c0d0;--btn-primary-text: #2e3440;--btn-home-bg: #88c0d0;--btn-home-text: #2e3440;--callout-note-bg: rgba(129,161,193,0.15);--callout-info-bg: rgba(136,192,208,0.15);--callout-warning-bg: rgba(235,203,139,0.15);--callout-warning-text: #ebcb8b;--body-radial-tint: rgba(46,52,64,0.8);--skeleton-pulse-1: rgba(216,222,233,0.05);--skeleton-pulse-2: rgba(216,222,233,0.12);--spider-display: none;--cobweb-display: none;--spider-thread: rgba(236,239,244,0.3);--hl-comment: #616e88;--hl-punct: #d8dee9;--hl-func: #88c0d0;--hl-keyword: #81a1c1;--hl-string: #a3be8c;--hl-var: #d08770;--hl-op: #81a1c1;--hl-num: #b48ead;--hl-param: #d8dee9;--hl-class: #8fbcbb;--hl-tag: #81a1c1;--hl-deleted-color: #bf616a;--hl-deleted-bg: rgba(191,97,106,0.15);--hl-inserted-color: #a3be8c;--hl-inserted-bg: rgba(163,190,140,0.15);}:root[data-theme="dracula"]{--bg: #282a36;--text: #f8f8f2;--text: #bd93f9;--muted: #6272a4;--border: #44475a;--bg-elevated: rgba(68,71,90,0.5);--bg-card: rgba(68,71,90,0.4);--bg-card-hover: rgba(68,71,90,0.7);--bg-code: #1e1f29;--code-inline-bg: #44475a;--code-inline-text: #ff79c6;--code-text: #f8f8f2;--bg-menu: #282a36;--bg-modal: rgba(40,42,54,0.85);--hover-bg: rgba(189,147,249,0.12);--search-bg: rgba(68,71,90,0.5);--search-panel-bg: rgba(40,42,54,0.9);--code-group-bg: #44475a;--code-group-panel-bg: #282a36;--code-tab-active: #ff79c6;--footer-border: #44475a;--border-subtle: rgba(255,255,255,0.07);--btn-primary-bg: #bd93f9;--btn-primary-text: #282a36;--btn-home-bg: #bd93f9;--btn-home-text: #282a36;--callout-note-bg: rgba(189,147,249,0.15);--callout-info-bg: rgba(139,233,253,0.15);--callout-warning-bg: rgba(241,250,140,0.15);--callout-warning-text: #f1fa8c;--body-radial-tint: rgba(40,42,54,0.85);--skeleton-pulse-1: rgba(98,114,164,0.08);--skeleton-pulse-2: rgba(98,114,164,0.2);--spider-display: none;--cobweb-display: none;--spider-thread: rgba(189,147,249,0.3);--hl-comment: #6272a4;--hl-punct: #f8f8f2;--hl-func: #50fa7b;--hl-keyword: #ff79c6;--hl-string: #f1fa8c;--hl-var: #ffb86c;--hl-op: #ff79c6;--hl-num: #bd93f9;--hl-param: #ffb86c;--hl-class: #8be9fd;--hl-tag: #ff79c6;--hl-deleted-color: #ff5555;--hl-deleted-bg: rgba(255,85,85,0.15);--hl-inserted-color: #50fa7b;--hl-inserted-bg: rgba(80,250,123,0.15);}:root[data-theme="forest"]{--bg: #0d1612;--text: #e2ede5;--text: #86efac;--muted: #739481;--border: #1a2f24;--bg-elevated: rgba(34,76,56,0.35);--bg-card: rgba(20,42,31,0.45);--bg-card-hover: rgba(28,59,44,0.65);--bg-code: #080f0c;--code-inline-bg: #142a1f;--code-inline-text: #86efac;--code-text: #d1fae5;--bg-menu: #0d1612;--bg-modal: rgba(13,22,18,0.85);--hover-bg: rgba(134,239,172,0.08);--search-bg: rgba(26,47,36,0.6);--search-panel-bg: rgba(13,22,18,0.9);--code-group-bg: #15271e;--code-group-panel-bg: #0d1612;--code-tab-active: #86efac;--footer-border: #1a2f24;--border-subtle: rgba(255,255,255,0.05);--btn-primary-bg: #4ade80;--btn-primary-text: #052e16;--btn-home-bg: #4ade80;--btn-home-text: #052e16;--callout-note-bg: rgba(74,222,128,0.12);--callout-info-bg: rgba(45,212,191,0.12);--callout-warning-bg: rgba(250,204,21,0.15);--callout-warning-text: #fde047;--body-radial-tint: rgba(13,22,18,0.85);--skeleton-pulse-1: rgba(134,239,172,0.05);--skeleton-pulse-2: rgba(134,239,172,0.12);--spider-display: none;--cobweb-display: none;--spider-thread: rgba(134,239,172,0.3);--hl-comment: #527561;--hl-punct: #d1fae5;--hl-func: #4ade80;--hl-keyword: #2dd4bf;--hl-string: #a7f3d0;--hl-var: #fcd34d;--hl-op: #34d399;--hl-num: #fbbf24;--hl-param: #e2ede5;--hl-class: #6ee7b7;--hl-tag: #2dd4bf;--hl-deleted-color: #f87171;--hl-deleted-bg: rgba(248,113,113,0.15);--hl-inserted-color: #4ade80;--hl-inserted-bg: rgba(74,222,128,0.15);}:root[data-theme="sunset"]{--bg: #180d18;--text: #fce7f3;--text: #fb7185;--muted: #a77c98;--border: #3b1d36;--bg-elevated: rgba(80,30,70,0.35);--bg-card: rgba(50,20,45,0.5);--bg-card-hover: rgba(75,30,68,0.65);--bg-code: #120712;--code-inline-bg: #3b1d36;--code-inline-text: #fda4af;--code-text: #fbcfe8;--bg-menu: #180d18;--bg-modal: rgba(24,13,24,0.85);--hover-bg: rgba(251,113,133,0.1);--search-bg: rgba(59,29,54,0.5);--search-panel-bg: rgba(24,13,24,0.9);--code-group-bg: #2d1329;--code-group-panel-bg: #180d18;--code-tab-active: #fb7185;--footer-border: #3b1d36;--border-subtle: rgba(255,255,255,0.05);--btn-primary-bg: #f43f5e;--btn-primary-text: #ffffff;--btn-home-bg: #f43f5e;--btn-home-text: #ffffff;--callout-note-bg: rgba(251,113,133,0.15);--callout-info-bg: rgba(192,132,252,0.15);--callout-warning-bg: rgba(251,146,60,0.15);--callout-warning-text: #fdba74;--body-radial-tint: rgba(24,13,24,0.85);--skeleton-pulse-1: rgba(251,113,133,0.05);--skeleton-pulse-2: rgba(251,113,133,0.15);--spider-display: none;--cobweb-display: none;--spider-thread: rgba(251,113,133,0.3);--hl-comment: #835b77;--hl-punct: #fbcfe8;--hl-func: #fb7185;--hl-keyword: #c084fc;--hl-string: #f472b6;--hl-var: #fb923c;--hl-op: #f43f5e;--hl-num: #facc15;--hl-param: #fce7f3;--hl-class: #e879f9;--hl-tag: #c084fc;--hl-deleted-color: #f87171;--hl-deleted-bg: rgba(248,113,113,0.15);--hl-inserted-color: #4ade80;--hl-inserted-bg: rgba(74,222,128,0.15);}:root[data-theme="cyberpunk"]{--bg: #050508;--text: #00ffcc;--text: #ffe600;--muted: #5e7a75;--border: #1a2a26;--bg-elevated: rgba(0,255,204,0.08);--bg-card: rgba(10,20,20,0.7);--bg-card-hover: rgba(20,40,35,0.85);--bg-code: #020204;--code-inline-bg: rgba(0,255,204,0.12);--code-inline-text: #ffe600;--code-text: #00ffcc;--bg-menu: #08080f;--bg-modal: rgba(5,5,8,0.9);--hover-bg: rgba(0,255,204,0.1);--search-bg: rgba(0,255,204,0.08);--search-panel-bg: rgba(8,8,15,0.95);--code-group-bg: #0e121a;--code-group-panel-bg: #050508;--code-tab-active: #ffe600;--footer-border: #1a2a26;--border-subtle: rgba(0,255,204,0.15);--btn-primary-bg: #ffe600;--btn-primary-text: #000000;--btn-home-bg: #00ffcc;--btn-home-text: #000000;--callout-note-bg: rgba(0,255,204,0.12);--callout-info-bg: rgba(255,0,128,0.15);--callout-warning-bg: rgba(255,230,0,0.15);--callout-warning-text: #ffe600;--body-radial-tint: rgba(5,5,8,0.9);--skeleton-pulse-1: rgba(0,255,204,0.05);--skeleton-pulse-2: rgba(255,230,0,0.12);--spider-display: none;--cobweb-display: none;--spider-thread: rgba(0,255,204,0.3);--hl-comment: #3f5e58;--hl-punct: #00ffcc;--hl-func: #ffe600;--hl-keyword: #ff007f;--hl-string: #00f0ff;--hl-var: #ff5500;--hl-op: #ff007f;--hl-num: #00ffcc;--hl-param: #ffffff;--hl-class: #ffe600;--hl-tag: #ff007f;--hl-deleted-color: #ff0055;--hl-deleted-bg: rgba(255,0,85,0.2);--hl-inserted-color: #00ffcc;--hl-inserted-bg: rgba(0,255,204,0.2);}html.banner-dismissed,body.banner-dismissed{--header-height: 109px;}html.banner-dismissed #banner,body.banner-dismissed #banner{display: none!important;}*{box-sizing: border-box;}html{margin: 0;height: 100%;overflow-x: hidden;scrollbar-width: none;-ms-overflow-style: none;}body{min-height: 100%;min-height: -webkit-fill-available;margin: 0;font-family: var(--font);background: var(--bg);color: var(--text);;line-height: 1.65;overflow-x: hidden;-ms-overflow-style: none;scrollbar-width: none;padding-left: env(safe-area-inset-left);padding-right: env(safe-area-inset-right);}html::-webkit-scrollbar,body::-webkit-scrollbar{display: none;width: 0;height: 0;}body::before{content: "";position: fixed;inset: 0;pointer-events: none;z-index: -1;background: radial-gradient(ellipse at center,transparent 35%,var(--body-radial-tint) 100%);}.video-bg{position: fixed;inset: 0;width: 100%;height: 100%;object-fit: cover;z-index: -2;}a{color: inherit;text-decoration: none;}#header-container{position: fixed;top: 10px;left: 50%;transform: translateX(-50%);z-index: 41;backdrop-filter: blur(10px) saturate(1.2);-webkit-backdrop-filter: blur(10px) saturate(1.2);background: var(--bg-card);width: 25%;min-width: 650px;border-radius: 30px;}#banner{position: relative;display: none;padding: 10px 48px;font-size: 13px;line-height: 1.45;text-align: center;background: transparent;}#banner-close{position: absolute;top: 50%;right: 8px;display: flex;align-items: center;justify-content: center;width: 32px;height: 32px;padding: 0;transform: translateY(-50%);background: none;border: none;border-radius: 8px;cursor: pointer;font-size: 18px;line-height: 1;color: inherit;opacity: 0.6;}#banner-close:hover{opacity: 1;background: var(--hover-bg);}#navbar{position: relative;background: transparent;}#navbar .nav-top{position: relative;display: flex;align-items: center;height: 60px;max-width: 1400px;margin: 0 auto;padding: 0 10px;}#navbar .brand{display: flex;align-items: center;}#navbar .brand img{height: 28px;width: 28px;border-radius: 50%;display: block;}#navbar .links{display: flex;align-items: center;gap: 10px;margin-left: auto;}#navbar .tabs{display: flex;align-items: center;gap: 4px;height: 48px;max-width: 1400px;margin: 0 auto;overflow-x: auto;}#navbar .tabs a{padding: 6px 14px;font-size: 14px;font-weight: 500;color: var(--muted);white-space: nowrap;}#navbar .tabs a:hover{color: var(--text);}#navbar .tabs a.active{color: var(--text);font-weight: 600;}#layout{display: flex;max-width: 1400px;margin: 0 auto;}#sidebar{margin-top: 40px;border-radius: 12px;width: var(--sidebar-width);flex-shrink: 0;padding-top: 20px;padding-left: 20px;position: sticky;height: fit-content;top: calc(var(--header-height) + 40px);max-height: calc(100vh - var(--header-height) - 40px);overflow-y: auto;}#sidebar .group{margin-bottom: 10px;}#sidebar .group-title{font-size: 14px;font-weight: 600;line-height: 23px;color: var(--text);margin: 0 0 10px 16px;}#sidebar ul{list-style: none;margin: 0;padding: 0;}#sidebar li a{display: block;padding: 8px 16px;border-radius: 12px;font-size: 14px;line-height: 21px;color: var(--muted);}#sidebar li a.active{color: var(--text);}#sidebar li a:hover{background: var(--hover-bg);color: var(--text);}#content-col{flex: 1;min-width: 0;display: flex;padding: 16px max(20px,env(safe-area-inset-right)) 20px max(20px,env(safe-area-inset-left));gap: 92px;max-width: 100%;box-sizing: border-box;width: 80vw;}#main-wrap{flex: 1;min-width: 0;max-width: 1000px;margin-top: 120px;border-radius: 12px;width: 100%;box-sizing: border-box;display: flex;flex-direction: column;}footer#site-footer{min-width: 0;width: 100%;max-width: 100%;box-sizing: border-box;padding: 48px 0 60px;margin: 0;display: flex;flex-direction: column;}.footer-nav{display: flex;justify-content: space-between;align-items: center;gap: 16px;width: 100%;min-height: 22px;margin: 0 0 200px;}.footer-link{display: inline-flex;align-items: center;gap: 8px;font-size: 14px;font-weight: 600;color: var(--text);transition: opacity 0.15s ease;}.footer-link:hover{opacity: 0.8;}.footer-link.hidden{visibility: hidden;}.footer-link.next{margin-left: auto;}.footer-grid{display: grid;grid-template-columns: 2fr 1fr 1fr 1fr;gap: 36px;padding-bottom: 36px;border-bottom: 1px solid var(--footer-border);margin-bottom: 28px;}.footer-brand-col{display: flex;flex-direction: column;}.footer-brand-link{display: inline-flex;align-items: center;gap: 10px;text-decoration: none;color: var(--text);margin-bottom: 12px;}.footer-brand-name{font-size: 18px;font-weight: 700;letter-spacing: -0.02em;}.footer-brand-desc{font-size: 13.5px;line-height: 1.6;color: var(--muted);margin: 0 0 18px;max-width: 320px;}.footer-col-title{font-size: 12px;font-weight: 600;text-transform: uppercase;letter-spacing: 0.08em;color: var(--muted);margin-bottom: 14px;}.footer-col-list{list-style: none;padding: 0;margin: 0;display: flex;flex-direction: column;gap: 10px;}.footer-col-list a{font-size: 13.5px;color: var(--muted);text-decoration: none;transition: color 0.15s ease;display: inline-block;}.footer-col-list a:hover{color: var(--text);}.footer-bottom{display: flex;align-items: center;justify-content: space-between;flex-wrap: wrap;gap: 20px;width: 100%;border-top: none;padding: 0;}.footer-bottom-info p{margin: 0;font-size: 13px;color: var(--muted);}.footer-bottom-info .footer-subtext{margin-top: 4px;font-size: 12px;color: var(--muted);}.footer-badges{display: flex;align-items: center;gap: 16px;flex-wrap: wrap;}.footer-green-badge{display: inline-block;opacity: 0.85;transition: opacity 0.2s ease;}.footer-green-badge:hover{opacity: 1;}.footer-green-badge img{display: block;min-height: 100px;width: auto;border-radius: 6px;}@media (max-width: 900px){.footer-grid{grid-template-columns: 1fr 1fr;gap: 28px;}.footer-brand-col{grid-column: span 2;}}@media (max-width: 550px){.footer-grid{grid-template-columns: 1fr;gap: 24px;}.footer-brand-col{grid-column: span 1;}.footer-card{max-width: 100%;}.footer-bottom{flex-direction: column;align-items: flex-start;}}.footer-socials{display: flex;gap: 16px;}.footer-socials a{display: flex;align-items: center;justify-content: center;color: var(--muted);transition: color 0.15s ease;min-width: 36px;min-height: 36px;}.footer-socials a:hover{color: var(--text);}.footer-icon{width: 20px;height: 20px;}.theme-wrap{position: relative;}#theme-toggle{display: flex;align-items: center;justify-content: center;width: 44px;height: 44px;min-width: 44px;min-height: 44px;border: none;border-radius: 10px;background: none;color: var(--muted);cursor: pointer;}#theme-toggle .ico{width: 18px;height: 18px;}#theme-toggle:hover{background: var(--hover-bg);}#theme-menu{display: flex;flex-direction: column;position: absolute;right: 0;top: 46px;width: 215px;max-height: 75vh;overflow-x: hidden;overflow-y: auto;scrollbar-width: thin;scrollbar-color: var(--border) transparent;padding: 8px;border-radius: 16px;background: var(--bg-menu);z-index: 50;opacity: 0;visibility: hidden;transform: translateY(-8px) scale(0.96);transition: opacity 0.2s cubic-bezier(0.16,1,0.3,1),transform 0.2s cubic-bezier(0.16,1,0.3,1),visibility 0.2s;pointer-events: none;box-sizing: border-box;}#theme-menu::-webkit-scrollbar,#theme-seg-menu::-webkit-scrollbar{width: 4px;}#theme-menu::-webkit-scrollbar-thumb,#theme-seg-menu::-webkit-scrollbar-thumb{background: var(--border);border-radius: 4px;}#theme-menu::-webkit-scrollbar-track,#theme-seg-menu::-webkit-scrollbar-track{background: transparent;}#theme-menu.open{opacity: 1;visibility: visible;transform: translateY(0) scale(1);pointer-events: auto;}.theme-menu-divider{height: 1px;margin: 6px 6px;background: var(--border);flex-shrink: 0;}.theme-menu-label{font-size: 11px;font-weight: 700;text-transform: uppercase;letter-spacing: 0.08em;color: var(--muted);padding: 6px 10px 4px;text-align: left;user-select: none;}#theme-menu button{display: flex;align-items: center;justify-content: flex-start;text-align: left;gap: 10px;width: 100%;padding: 8px 10px;border: none;border-radius: 10px;background: none;color: var(--text);;font: inherit;font-size: 13.5px;cursor: pointer;box-sizing: border-box;flex-shrink: 0;}#theme-menu button:hover{background: var(--hover-bg);}#theme-menu button .ico{width: 16px;height: 16px;flex-shrink: 0;color: var(--muted);}#theme-menu button span{flex: 1;text-align: left;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;}#theme-menu .check{margin-left: auto;flex-shrink: 0;font-style: normal;font-size: 13px;visibility: hidden;}#theme-menu button.on{font-weight: 600;color: var(--text);}#theme-menu button.on .ico{color: var(--text);}#theme-menu button.on .check{visibility: visible;}#theme-seg{position: relative;display: none;gap: 4px;}#theme-seg-menu{position: absolute;top: calc(100% + 8px);right: 0;width: 180px;max-height: 320px;overflow-y: auto;padding: 6px;border-radius: 14px;background: var(--bg-menu);border: 1px solid var(--border);box-shadow: 0 10px 30px rgba(0,0,0,0.4);z-index: 250;opacity: 0;visibility: hidden;transform: translateY(-6px) scale(0.96);transition: opacity 0.2s cubic-bezier(0.16,1,0.3,1),transform 0.2s cubic-bezier(0.16,1,0.3,1),visibility 0.2s;pointer-events: none;}#theme-seg-menu.open{opacity: 1;visibility: visible;transform: translateY(0) scale(1);pointer-events: auto;}#theme-seg-menu{position: absolute;top: calc(100% + 8px);right: 0;width: 215px;max-height: 340px;overflow-x: hidden;overflow-y: auto;scrollbar-width: thin;scrollbar-color: var(--border) transparent;padding: 6px;border-radius: 14px;background: var(--bg-menu);border: 1px solid var(--border);box-shadow: 0 10px 30px rgba(0,0,0,0.4);z-index: 250;opacity: 0;visibility: hidden;transform: translateY(-6px) scale(0.96);transition: opacity 0.2s cubic-bezier(0.16,1,0.3,1),transform 0.2s cubic-bezier(0.16,1,0.3,1),visibility 0.2s;pointer-events: none;box-sizing: border-box;}#theme-seg-menu button{display: flex;align-items: center;justify-content: flex-start;text-align: left;gap: 10px;width: 100%;height: auto;min-height: 36px;padding: 8px 10px;border: none;border-radius: 8px;background: none;color: var(--text);;font: inherit;font-size: 13.5px;cursor: pointer;box-sizing: border-box;flex-shrink: 0;}#theme-seg-menu button:hover{background: var(--hover-bg);}#theme-seg-menu button .ico{width: 16px;height: 16px;flex-shrink: 0;color: var(--muted);}#theme-seg-menu button span{display: block;flex: 1;text-align: left;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;color: var(--text);;}#theme-seg-menu button.on span{color: var(--text);font-weight: 600;}#theme-seg-menu button.on .ico{color: var(--text);}#theme-seg-menu button .check{margin-left: auto;flex-shrink: 0;font-style: normal;font-size: 13px;visibility: hidden;}#theme-seg-menu button.on .check{visibility: visible;color: var(--text);}#theme-seg-menu button:hover{background: var(--hover-bg);}#theme-seg-menu button.on{font-weight: 600;color: var(--text);}#theme-seg-menu .check{margin-left: auto;font-style: normal;visibility: hidden;}#theme-seg-menu button.on .check{visibility: visible;}#theme-seg>button{display: flex;align-items: center;justify-content: center;width: 32px;height: 32px;border: none;border-radius: 50%;background: none;color: var(--muted);cursor: pointer;flex-shrink: 0;}#theme-seg>button.on{background: var(--hover-bg);color: var(--text);}#mobile-bar{display: none;position: relative;align-items: center;gap: 8px;padding: 10px 20px;font-size: 14px;color: var(--muted);background: transparent;border-top: 1px solid var(--border-subtle);}#mobile-bar button{display: flex;padding: 0;margin-right: 4px;border: none;background: none;color: inherit;cursor: pointer;flex-shrink: 0;}.mobile-crumbs{display: flex;align-items: center;gap: 7px;min-width: 0;overflow: hidden;white-space: nowrap;}.mobile-crumbs span{flex-shrink: 0;}.mobile-crumbs .crumb-group{color: var(--muted);}.mobile-crumbs .crumb-sep{opacity: 0.55;font-size: 12px;}.mobile-crumbs .crumb-page{color: var(--text);font-weight: 600;cursor: pointer;user-select: none;}.mobile-crumbs .crumb-page:hover{text-decoration: underline;text-underline-offset: 3px;}.mobile-crumbs .crumb-page.muted{color: var(--muted);font-weight: 400;}.mobile-crumb-sub-btn{display: inline-flex;align-items: center;gap: 7px;min-width: 0;overflow: hidden;cursor: pointer;user-select: none;}.mobile-crumb-sub-btn:hover .crumb-heading{text-decoration: underline;text-underline-offset: 3px;}.mobile-crumbs .crumb-heading{color: var(--text);font-weight: 600;overflow: hidden;text-overflow: ellipsis;flex-shrink: 1;}.mobile-tabs{display: none;position: relative;margin-bottom: 20px;}.mt-btn{display: flex;align-items: center;justify-content: space-between;width: 100%;padding: 8px 12px;border: none;background: var(--hover-bg);border-radius: 100px;color: var(--text);font: inherit;font-size: 15px;cursor: pointer;}.mt-btn .ico{color: var(--muted);transition: transform 0.15s ease;}.mobile-tabs.open .mt-btn .ico{transform: rotate(180deg);}.mt-menu{display: block;position: absolute;top: calc(100% + 4px);left: 0;right: 0;z-index: 5;padding: 6px;border-radius: 16px;background: var(--bg-menu);border: 1px solid var(--border);box-shadow: 0 10px 25px rgba(0,0,0,0.4);opacity: 0;visibility: hidden;transform: translateY(-8px) scale(0.97);transition: opacity 0.2s cubic-bezier(0.16,1,0.3,1),transform 0.2s cubic-bezier(0.16,1,0.3,1),visibility 0.2s;pointer-events: none;}.mobile-tabs.open .mt-menu{opacity: 1;visibility: visible;transform: translateY(0) scale(1);pointer-events: auto;}.mt-menu .mt-item{display: flex;align-items: center;justify-content: space-between;width: 100%;padding: 10px 14px;border: none;background: none;border-radius: 10px;font: inherit;font-size: 14px;font-weight: 500;color: var(--muted);cursor: pointer;text-align: left;transition: background 0.15s ease,color 0.15s ease;}.mt-menu .mt-item:hover{background: var(--hover-bg);color: var(--text);}.mt-menu .mt-item.on{color: var(--text);font-weight: 600;}.mt-menu .mt-item svg{display: none;width: 16px;height: 16px;stroke: currentColor;stroke-width: 2.5;fill: none;flex-shrink: 0;}.mt-menu .mt-item.on svg{display: block;}.side-head{display: none;}body.is-home #layout{display: block;width: 100%;max-width: 100%;margin: 0;}body.is-home #content-wrapper{width: 100%;display: flex;justify-content: center;}body.is-home #content-col{display: flex;flex-direction: column;align-items: center;width: 100%;max-width: 1200px;padding: 0 20px 30px;margin: 0 auto;gap: 0;box-sizing: border-box;}body.is-home #main-wrap{width: 100%;max-width: 1100px;margin: 0 auto;background: transparent;backdrop-filter: none;-webkit-backdrop-filter: none;display: flex;flex-direction: column;align-items: center;}body.is-home main.prose{width: 100%;max-width: 100%;display: flex;flex-direction: column;align-items: center;}body.is-home #toc,body.is-home #sidebar,body.is-home #mobile-bar{display: none!important;}@media (max-width: 900px){:root{--header-height: 60px;}#header-container{width: 100%;border-radius: 0px;min-width: 0;top: max(0px,env(safe-area-inset-top));}#navbar .tabs,#theme-toggle{display: none;}#navbar .nav-top{padding-right: 20px;padding-left: 15px;}#navbar .links{order: 1;margin-left: auto;margin-right: 8px;}#mobile-bar{display: flex;}.mobile-tabs{display: block;margin-top: 8px;}#sidebar #theme-seg{display: flex;align-items: center;background: var(--hover-bg);border-radius: 50px;padding: 2px 4px;gap: 2px;}#sidebar #theme-seg>button{display: flex;align-items: center;justify-content: center;width: 28px;height: 28px;border: none;border-radius: 50%;background: none;color: var(--muted);cursor: pointer;padding: 0;flex-shrink: 0;}#sidebar #theme-seg>button.on{color: var(--text);font-weight: 900;}#banner{padding: 10px 40px;font-size: 12.5px;}body.nav-open{overflow: hidden;}#sidebar{position: fixed;left: 0;top: 0;margin-top: 0!important;width: 80%;max-width: 340px;height: 100vh!important;height: 100dvh!important;max-height: 100vh!important;padding: 0 16px 20px;background: var(--bg);transform: translateX(-100%);transition: transform 0.3s cubic-bezier(0.16,1,0.3,1);box-shadow: 4px 0 24px rgba(0,0,0,0.35);border-radius: 0 35px 35px 0;z-index: 200;}#sidebar.open{transform: translateX(0);}#sidebar li a,#sidebar .group-title{font-size: 15px;}#layout{display: block;width: 100%;max-width: 100vw;}#content-col{display: block;width: 100%;max-width: 100%;padding: 16px 20px 30px;gap: 0;box-sizing: border-box;overflow-x: hidden;}#main-wrap{width: 100%;max-width: 100%;padding-top: calc(env(safe-area-inset-top))!important;}footer#site-footer{width: 100%;max-width: 100%;}.side-head{display: flex;align-items: center;justify-content: space-between;height: 60px;margin: 0 -16px 12px;padding: 0 16px;margin-top: max(6px,env(safe-area-inset-top));}#sidebar .side-head .brand{display: flex;align-items: center;}#sidebar .side-head .brand img{height: 28px;width: 28px;border-radius: 50%;display: block;}#sidebar .side-links{display: flex;align-items: center;margin-right: 4px;}}@media (orientation: landscape) and (max-height: 550px){:root{--header-height: 52px;}#header-container{top: max(6px,env(safe-area-inset-top));width: min(600px,88vw);border-radius: 20px;}#navbar .nav-top{height: 46px;}#navbar .tabs{height: 38px;}#navbar .tabs a{padding: 4px 10px;font-size: 13px;}#main-wrap{margin-top: 100px;}#sidebar{top: calc(var(--header-height) + 16px);max-height: calc(100vh - var(--header-height) - 16px);margin-top: 10px;}#mobile-bar{padding: 6px 14px;font-size: 13px;}}:root{--snow-tile: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cg fill='white'%3E%3Ccircle cx='22' cy='38' r='2.4' fill-opacity='.9'/%3E%3Ccircle cx='96' cy='126' r='1.8' fill-opacity='.7'/%3E%3Ccircle cx='168' cy='28' r='3' fill-opacity='.85'/%3E%3Ccircle cx='236' cy='204' r='2' fill-opacity='.75'/%3E%3Ccircle cx='272' cy='92' r='2.8' fill-opacity='.9'/%3E%3Ccircle cx='58' cy='252' r='2.2' fill-opacity='.8'/%3E%3Ccircle cx='196' cy='282' r='1.6' fill-opacity='.7'/%3E%3Ccircle cx='140' cy='190' r='2.4' fill-opacity='.85'/%3E%3C/g%3E%3Cg stroke='white' stroke-opacity='.9' stroke-width='1.3' stroke-linecap='round' fill='none'%3E%3Cpath transform='translate(126 72)' d='M0 -8V8M-6.9 -4L6.9 4M-6.9 4L6.9 -4'/%3E%3Cpath transform='translate(246 150)' d='M0 -6V6M-5.2 -3L5.2 3M-5.2 3L5.2 -3'/%3E%3Cpath transform='translate(40 160)' d='M0 -7V7M-6 -3.5L6 3.5M-6 3.5L6 -3.5'/%3E%3Cpath transform='translate(210 250)' d='M0 -6V6M-5.2 -3L5.2 3M-5.2 3L5.2 -3'/%3E%3C/g%3E%3C/svg%3E");--leaf-tile: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='360' height='360'%3E%3Cg transform='translate(50 60) rotate(25) scale(1.2)' fill='%23e8710a'%3E%3Cpath d='M0 -14C10 -8 12 6 0 16C-12 6 -10 -8 0 -14Z'/%3E%3Cpath d='M0 -12V14' stroke='%23000' stroke-opacity='.25' stroke-width='1'/%3E%3C/g%3E%3Cg transform='translate(190 40) rotate(-40)' fill='%23c2410c'%3E%3Cpath d='M0 -14C10 -8 12 6 0 16C-12 6 -10 -8 0 -14Z'/%3E%3Cpath d='M0 -12V14' stroke='%23000' stroke-opacity='.25' stroke-width='1'/%3E%3C/g%3E%3Cg transform='translate(300 130) rotate(70) scale(1.3)' fill='%23eab308'%3E%3Cpath d='M0 -14C10 -8 12 6 0 16C-12 6 -10 -8 0 -14Z'/%3E%3Cpath d='M0 -12V14' stroke='%23000' stroke-opacity='.25' stroke-width='1'/%3E%3C/g%3E%3Cg transform='translate(120 200) rotate(-15) scale(1.1)' fill='%23b45309'%3E%3Cpath d='M0 -14C10 -8 12 6 0 16C-12 6 -10 -8 0 -14Z'/%3E%3Cpath d='M0 -12V14' stroke='%23000' stroke-opacity='.25' stroke-width='1'/%3E%3C/g%3E%3Cg transform='translate(250 280) rotate(140) scale(1.2)' fill='%23d97706'%3E%3Cpath d='M0 -14C10 -8 12 6 0 16C-12 6 -10 -8 0 -14Z'/%3E%3Cpath d='M0 -12V14' stroke='%23000' stroke-opacity='.25' stroke-width='1'/%3E%3C/g%3E%3Cg transform='translate(40 310) rotate(-80)' fill='%23ca8a04'%3E%3Cpath d='M0 -14C10 -8 12 6 0 16C-12 6 -10 -8 0 -14Z'/%3E%3Cpath d='M0 -12V14' stroke='%23000' stroke-opacity='.25' stroke-width='1'/%3E%3C/g%3E%3C/svg%3E");--lights-tile: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='56'%3E%3Cpath d='M0 4Q40 32 80 4Q120 32 160 4' fill='none' stroke='%23245c3a' stroke-width='1.6'/%3E%3Cg fill='%23222'%3E%3Crect x='18' y='13' width='4' height='4'/%3E%3Crect x='38' y='17' width='4' height='4'/%3E%3Crect x='58' y='13' width='4' height='4'/%3E%3Crect x='98' y='13' width='4' height='4'/%3E%3Crect x='118' y='17' width='4' height='4'/%3E%3Crect x='138' y='13' width='4' height='4'/%3E%3C/g%3E%3Cellipse cx='20' cy='22' rx='4' ry='5.5' fill='%23ff4d4d'/%3E%3Cellipse cx='40' cy='26' rx='4' ry='5.5' fill='%23ffd24d'/%3E%3Cellipse cx='60' cy='22' rx='4' ry='5.5' fill='%234dff88'/%3E%3Cellipse cx='100' cy='22' rx='4' ry='5.5' fill='%234da6ff'/%3E%3Cellipse cx='120' cy='26' rx='4' ry='5.5' fill='%23ff4d4d'/%3E%3Cellipse cx='140' cy='22' rx='4' ry='5.5' fill='%23ffd24d'/%3E%3C/svg%3E");}.snowfall,.leaf-fall{position: fixed;inset: 0;overflow: hidden;pointer-events: none;z-index: 30;}.snowfall{display: var(--snow-display);}.leaf-fall{display: var(--leaf-display);}.snowfall::before,.snowfall::after,.leaf-fall::before,.leaf-fall::after{content: "";position: absolute;background-repeat: repeat;will-change: transform;}.snowfall::before{top: -600px;left: 0;right: 0;bottom: 0;background-image: var(--snow-tile);background-size: 300px 300px;opacity: 0.9;animation: snowFallNear 18s linear infinite;}.snowfall::after{top: -500px;left: 0;right: 0;bottom: 0;background-image: var(--snow-tile);background-size: 500px 500px;opacity: 0.6;animation: snowFallFar 30s linear infinite;}.leaf-fall::before{top: -720px;left: 0;right: -360px;bottom: 0;background-image: var(--leaf-tile);background-size: 360px 360px;opacity: 0.9;animation: leafFallNear 26s linear infinite;}.leaf-fall::after{top: -540px;left: -540px;right: 0;bottom: 0;background-image: var(--leaf-tile);background-size: 540px 540px;opacity: 0.7;animation: leafFallFar 40s linear infinite;}.light-string{display: var(--lights-display);position: fixed;top: 0;left: 0;width: 100%;height: 56px;pointer-events: none;z-index: 100;background-image: var(--lights-tile);background-repeat: repeat-x;background-size: 160px 56px;animation: lightTwinkle 2.6s ease-in-out infinite alternate;}@keyframes snowFallNear{from{transform: translate3d(0,0,0);}to{transform: translate3d(0,600px,0);}}@keyframes snowFallFar{from{transform: translate3d(0,0,0);}to{transform: translate3d(0,500px,0);}}@keyframes leafFallNear{from{transform: translate3d(0,0,0);}to{transform: translate3d(-360px,720px,0);}}@keyframes leafFallFar{from{transform: translate3d(0,0,0);}to{transform: translate3d(540px,540px,0);}}@keyframes lightTwinkle{from{opacity: 0.65;filter: drop-shadow(0 0 3px rgba(255,214,120,0.5));}to{opacity: 1;filter: drop-shadow(0 0 8px rgba(255,214,120,0.9));}}@media (prefers-reduced-motion: reduce){.snowfall::before,.snowfall::after,.leaf-fall::before,.leaf-fall::after,.light-string{animation: none;}}#navbar .brand{position: relative;}#navbar .brand::after{content: "";position: absolute;top: -9px;right: -9px;font-size: 14px;line-height: 1;pointer-events: none;}:root[data-theme="halloween"] #navbar .brand::after{content: "πŸŽƒ";}:root[data-theme="autumn"] #navbar .brand::after{content: "πŸ‚";}:root[data-theme="winter"] #navbar .brand::after{content: "❄️";}:root[data-theme="christmas"] #navbar .brand::after{content: "πŸŽ„";}.st-themes{padding: 14px 16px 16px;}.st-sub{margin: 0 0 8px;font-size: 11px;font-weight: 700;letter-spacing: 0.08em;text-transform: uppercase;color: var(--muted);}.st-theme-grid{display: grid;grid-template-columns: repeat(2,minmax(0,1fr));gap: 8px;margin-bottom: 16px;}.st-theme-grid:last-child{margin-bottom: 0;}.st-theme{display: flex;align-items: center;gap: 10px;min-width: 0;height: 40px;padding: 0 14px;border: 1px solid transparent;border-radius: 100px;background: var(--search-bg);color: var(--muted);font: inherit;font-size: 13.5px;font-weight: 500;cursor: pointer;transition: background 0.15s ease,color 0.15s ease,border-color 0.15s ease;}.st-theme .ico{width: 16px;height: 16px;flex-shrink: 0;}.st-theme span{min-width: 0;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;}.st-theme:hover{color: var(--text);}.st-theme.on{background: var(--hover-bg);color: var(--text);font-weight: 600;}.ico{width: 16px;height: 16px;flex-shrink: 0;}#search-trigger{position: absolute;left: 50%;transform: translateX(-50%);display: flex;align-items: center;gap: 10px;background: var(--search-bg);width: min(440px,40vw);height: 36px;padding: 0 12px;border: none;border-radius: 100px;color: var(--muted);font: inherit;font-size: 14px;cursor: pointer;}#search-trigger kbd{margin-left: auto;font: 600 11px var(--font);color: inherit;}.code-wrap{position: relative;}.code-wrap .copy-btn{position: absolute;top: 12px;right: 12px;display: flex;padding: 6px;border: none;border-radius: 8px;background: none;color: var(--muted);cursor: pointer;}.code-wrap .copy-btn:hover{background: var(--hover-bg);}.code-group{position: relative;margin: 16px 0;border-radius: 20px;background: var(--code-group-bg);padding: 6px 4px 4px;}.code-group-tabs{display: flex;align-items: center;gap: 16px;padding: 4px 6px 6px;}.code-group-tab{position: relative;padding: 6px 2px 8px;font-family: var(--font);font-size: 13px;font-weight: 600;line-height: 16px;border: none;background: none;cursor: pointer;color: var(--muted);}.code-group-tab.active{color: var(--code-tab-active);}.code-group-tab.active::after{content: "";position: absolute;left: 0;right: 0;bottom: 0;height: 2px;background: var(--code-tab-active);border-radius: 2px;}.code-group-panels{background: var(--code-group-panel-bg);border-radius: 14px;overflow: hidden;}.cg-copy-btn{position: absolute;top: 10px;right: 14px;display: flex;align-items: center;justify-content: center;padding: 4px;border: none;border-radius: 6px;background: none;color: var(--muted);cursor: pointer;}.cg-copy-btn:hover{color: var(--text);}.code-group-panel{display: none;}.code-group-panel.active{display: block;}main.prose .code-group pre{margin: 0;padding: 16px 20px;border: none;border-radius: 0;background: transparent;color: inherit;}main.prose .code-group pre code{color: inherit;}main.prose blockquote{margin: 16px 0;padding: 4px 0 4px 16px;border-left: 3px solid var(--border);color: var(--muted);}main.prose blockquote p{margin: 0;color: inherit;}.skeleton-wrap{width: 100%;}.skeleton-line,.skeleton-media{background: linear-gradient(90deg,var(--skeleton-pulse-1) 25%,var(--skeleton-pulse-2) 37%,var(--skeleton-pulse-1) 63%);background-size: 400% 100%;animation: skeletonPulse 1.3s cubic-bezier(0.4,0,0.6,1) infinite;border-radius: 8px;}@keyframes skeletonPulse{0%{background-position: 100% 50%;}100%{background-position: 0 50%;}}.skeleton-eyebrow{width: 90px;height: 16px;margin-bottom: 12px;}.skeleton-title{width: 65%;height: 38px;margin-bottom: 18px;border-radius: 10px;}.skeleton-desc{width: 85%;height: 22px;margin-bottom: 24px;}.skeleton-media{width: 100%;height: 320px;border-radius: 24px;margin: 24px 0;}.skeleton-text{height: 16px;margin: 12px 0;}.w-100{width: 100%;}.w-90{width: 90%;}.w-85{width: 85%;}.w-75{width: 75%;}.theme-ambient{position: absolute;top: 0;left: 0;right: 0;height: 520px;z-index: -1;pointer-events: none;overflow: hidden;opacity: 0;}.theme-ambient.is-in{animation: themeAmbientIn 1s cubic-bezier(0.22,1,0.36,1) both;}.theme-ambient-media{position: absolute;inset: -12% 0;width: 100%;height: 124%;object-fit: cover;filter: blur(70px) saturate(1.4) brightness(0.8);transform: scale(1.15);-webkit-mask-image: linear-gradient(to bottom,#000 0%,transparent 85%);mask-image: linear-gradient(to bottom,#000 0%,transparent 85%);}@keyframes themeAmbientIn{from{opacity: 0;}to{opacity: 1;}}@media (prefers-reduced-motion: reduce){.theme-ambient.is-in{animation: none;opacity: 1;}}body.is-home .theme-ambient,body.is-404 .theme-ambient{display: none;}.content-animate>*{animation: smoothBlurReveal 0.44s cubic-bezier(0.22,1,0.36,1) both;will-change: filter,opacity,transform;}.content-animate>*:nth-child(1){animation-delay: 0ms;}.content-animate>*:nth-child(2){animation-delay: 35ms;}.content-animate>*:nth-child(3){animation-delay: 70ms;}.content-animate>*:nth-child(4){animation-delay: 105ms;}.content-animate>*:nth-child(5){animation-delay: 140ms;}.content-animate>*:nth-child(6){animation-delay: 175ms;}.content-animate>*:nth-child(7){animation-delay: 210ms;}.content-animate>*:nth-child(8){animation-delay: 245ms;}.content-animate>*:nth-child(9){animation-delay: 280ms;}.content-animate>*:nth-child(n+10){animation-delay: 315ms;}.content-animate.caught-up>*{animation: none!important;opacity: 1!important;filter: none!important;transform: none!important;}@keyframes smoothBlurReveal{0%{opacity: 0;filter: blur(8px);transform: translateY(6px);}100%{opacity: 1;filter: blur(0px);transform: translateY(0);}}@media (prefers-reduced-motion: reduce){.content-animate>*{animation: none!important;}.skeleton-line,.skeleton-media{animation: none!important;}}@media (max-width: 900px){#search-trigger{order: 2;position: static;transform: none;width: auto;padding: 8px;background: transparent;}#search-trigger .ico{font-weight: 900;width: 1.53rem;height: 1.3rem;}#search-trigger span,#search-trigger kbd{display: none;}}main.prose h1,main.prose h2,main.prose h3,main.prose h4{cursor: pointer;}.eyebrow-actions{display: inline-flex;align-items: center;gap: 4px;}.copy-md-btn{display: flex;align-items: center;justify-content: center;width: 30px;height: 30px;padding: 0;border: none;border-radius: 50%;background: none;color: var(--muted);cursor: pointer;transition: color 0.15s ease,background 0.15s ease;}.copy-md-btn .ico{width: 17px;height: 17px;}.copy-md-btn:hover{background: var(--hover-bg);color: var(--text);}.copy-md-btn.copied{color: #10b981;}.bm-btn{display: flex;align-items: center;justify-content: center;width: 30px;height: 30px;padding: 0;border: none;border-radius: 50%;background: none;color: var(--muted);cursor: pointer;transition: color 0.15s ease,background 0.15s ease;}.bm-btn .ico{width: 18px;height: 18px;}.bm-btn:hover{background: var(--hover-bg);color: var(--text);}.bm-btn.on{color: var(--text);}.bm-btn.on .ico{fill: currentColor;}.personal-card{margin-top: 20px;margin-bottom: 50px;border-radius: 22px;}.personal-card label{display: block;margin-bottom: 10px;font-size: 14px;font-weight: 600;color: var(--text);}.pc-row{display: flex;gap: 8px;}.pc-row input{flex: 1;min-width: 0;height: 36px;padding: 0 14px;border: none;border-radius: 100px;background: var(--search-bg);color: var(--text);font: inherit;font-size: 13.5px;outline: none;}.pc-row input.bad{border-color: #ef4444;}.pc-btn{height: 36px;padding: 0 18px;border: none;border-radius: 100px;background: var(--btn-primary-bg);color: var(--btn-primary-text);font: inherit;font-size: 13.5px;font-weight: 600;cursor: pointer;}main.prose .pc-hint{margin: 8px 0 0;font-size: 12.5px;line-height: 1.5;color: var(--muted);}.rec-badge{display: inline-flex;align-items: center;margin-left: 8px;padding: 2px 10px;border-radius: 100px;background: var(--btn-primary-bg);color: var(--btn-primary-text);font-size: 11.5px;font-weight: 700;letter-spacing: 0.02em;vertical-align: middle;white-space: nowrap;}tbody tr.rec-row td{background: var(--hover-bg);}tbody tr.rec-row td:first-child{padding-left: 12px;border-top-left-radius: 12px;border-bottom-left-radius: 12px;}tbody tr.rec-row td:last-child{padding-right: 12px;border-top-right-radius: 12px;border-bottom-right-radius: 12px;}#footer-note{margin: 0 0 16px;font-size: 13.5px;color: var(--muted);}.changelog,.contributors{margin: 20px 0;}.contributors{display: flex;flex-wrap: wrap;gap: 10px;}main.prose .muted-line{margin: 0;color: var(--muted);}.cl-item{padding: 16px 0;border-bottom: 1px solid var(--border-subtle);}.cl-meta{display: flex;flex-wrap: wrap;align-items: center;gap: 10px;font-size: 12.5px;color: var(--muted);}.cl-tag{padding: 2px 10px;border-radius: 100px;background: var(--hover-bg);color: var(--text);font-weight: 600;}.cl-title{margin-top: 8px;font-size: 16px;font-weight: 700;color: var(--text);}main.prose .cl-notes{margin: 6px 0 0;font-size: 14px;}.cl-link{display: inline-block;margin-top: 8px;font-size: 13px;}.ct-chip{display: inline-flex;align-items: center;gap: 8px;padding: 0px 14px 0px 5px;border-radius: 100px;background: var(--hover-bg);color: var(--text);;font-size: 13.5px;margin-right: 10px;height: 40px;align-items: center;}.ct-chip em{font-style: normal;font-size: 12px;color: var(--muted);}.ct-avatar{display: flex;align-items: center;justify-content: center;border-radius: 50%;background: var(--btn-primary-bg);color: var(--btn-primary-text);font-size: 12px;font-weight: 700;}.ct-avatar-img{width: 26px;height: 26px;}.confetti-canvas{position: fixed;inset: 0;width: 100%;height: 100%;pointer-events: none;z-index: 3000;}body:not(.is-home) main.prose{zoom: var(--text-scale,1);}body.no-deco .cobweb,body.no-deco .spider-container,body.no-deco .snowfall,body.no-deco .leaf-fall,body.no-deco .light-string{display: none!important;}body.no-video .video-bg,body.no-video .body-blurred-video,body.no-video .header-video{display: none!important;}body.no-motion *,body.no-motion *::before,body.no-motion *::after{animation: none!important;transition: none!important;scroll-behavior: auto!important;}@media (max-width: 900px){.rec-badge{margin-left: 0!important;margin-top: 10px!important;}}#search-modal{position: fixed;inset: 0;z-index: 100;display: none;}#search-modal.open{display: block;}.search-panel{position: relative;width: min(640px,calc(100vw - 24px));margin: 52px auto 0;border-radius: 20px;overflow: hidden;background: var(--search-panel-bg)!important;box-shadow: 0 20px 60px rgba(0,0,0,0.4);backdrop-filter: blur(10px);-webkit-backdrop-filter: blur(10px);}.search-input-row{display: flex;align-items: center;gap: 12px;padding: 18px 20px;}.search-input-row .ico{width: 18px;height: 18px;color: var(--muted);}#search-input{flex: 1;border: none;outline: none;background: transparent;color: var(--text);font: inherit;font-size: 18px;}#search-results{max-height: 40vh;overflow-y: auto;padding: 0 6px 8px;}.search-label{padding: 8px 14px;font-size: 12px;color: var(--muted);}.sr{display: flex;align-items: flex-start;gap: 12px;padding: 8px 12px;border-radius: 12px;}.sr>.ico{margin-top: 3px;color: var(--muted);}.sr.on{background: var(--hover-bg);}.sr-body{min-width: 0;}.sr .t{font-size: 14px;font-weight: 600;line-height: 1.35;color: var(--text);}.sr .s{display: -webkit-box;margin-top: 2px;font-size: 12.5px;line-height: 1.4;color: var(--muted);overflow: hidden;-webkit-line-clamp: 2;line-clamp: 2;-webkit-box-orient: vertical;}.sr .p{margin-top: 2px;font-size: 12px;line-height: 1.35;color: var(--muted);white-space: nowrap;overflow: hidden;text-overflow: ellipsis;}.sr .sep{margin: 0 6px;opacity: 0.7;}.sr .hit{font-weight: 700;color: var(--text);}.search-footer{display: flex;gap: 18px;padding: 12px 20px;font-size: 12px;color: var(--muted);border-top: 1px solid var(--border-subtle);}.search-footer .close-hint{margin-left: auto;}.search-footer kbd{margin-right: 4px;padding: 1px 5px;border-radius: 4px;font: 11px var(--font);}@media (max-width: 900px){.search-panel{margin-top: 50px;border-radius: 30px;}.search-footer{display: none;}}.sheet-overlay{position: fixed;inset: 0;z-index: 1000;display: flex;align-items: center;justify-content: center;opacity: 0;pointer-events: none;transition: opacity 0.35s cubic-bezier(0.16,1,0.3,1);}.sheet-overlay.active{opacity: 1;pointer-events: auto;}.sheet-backdrop{position: absolute;inset: 0;background: rgba(0,0,0,0.65);backdrop-filter: blur(8px);-webkit-backdrop-filter: blur(8px);}.sheet-panel{position: relative;width: min(500px,calc(100vw - 32px));background: var(--bg-modal);border-radius: 28px;backdrop-filter: blur(24px);-webkit-backdrop-filter: blur(24px);padding: 32px 28px 28px;box-sizing: border-box;transform: scale(0.92) translateY(16px);transition: transform 0.4s cubic-bezier(0.16,1,0.3,1);display: flex;flex-direction: column;}.sheet-overlay.active .sheet-panel{transform: scale(1) translateY(0);}.sheet-handle-bar{display: none;}.sheet-title{font-size: 22px;font-weight: 700;color: var(--text);margin: 0 0 10px;line-height: 1.3;text-align: center;}.sheet-desc{font-size: 14.5px;color: var(--muted);line-height: 1.6;margin: 0 0 24px;text-align: center;}.sheet-actions{display: flex;align-items: center;gap: 12px;justify-content: center;}.sheet-btn-primary{display: inline-flex;align-items: center;justify-content: center;padding: 10px 22px;border-radius: 100px;background: var(--btn-primary-bg);color: var(--btn-primary-text)!important;font-size: 14px;font-weight: 600;text-decoration: none!important;transition: transform 0.15s ease,opacity 0.15s ease;}.sheet-btn-primary:hover{opacity: 0.9;transform: translateY(-1px);}.sheet-btn-never{padding: 10px 18px;border: none;background: none;color: var(--muted);font: inherit;font-size: 13.5px;font-weight: 500;cursor: pointer;border-radius: 100px;transition: color 0.15s ease,background 0.15s ease;}.sheet-btn-never:hover{color: var(--text);background: var(--hover-bg);}@media (max-width: 900px){.sheet-overlay{align-items: flex-end;}.sheet-panel{width: 100%;max-width: 100%;border-radius: 28px 28px 0 0;border-bottom: none;padding: 14px 22px 32px;transform: translateY(100%);transition: transform 0.45s cubic-bezier(0.32,0.72,0,1);touch-action: none;max-height: 90vh;}.sheet-panel.dragging{transition: none!important;}.sheet-overlay.active .sheet-panel{transform: translateY(0);}.sheet-handle-bar{display: flex;align-items: center;justify-content: center;width: 100%;padding: 6px 0 16px;cursor: grab;}.sheet-handle{width: 40px;height: 5px;border-radius: 999px;background: var(--muted);opacity: 0.45;}.sheet-actions{flex-direction: column;width: 100%;gap: 8px;}.sheet-btn-primary{width: 100%;}.sheet-btn-never{width: 100%;text-align: center;}}@media (orientation: landscape) and (max-height: 550px){.sheet-panel{max-height: 94vh;overflow-y: auto;padding: 10px max(24px,env(safe-area-inset-right)) 16px max(24px,env(safe-area-inset-left));}.sheet-title{font-size: 18px;margin-bottom: 6px;}.sheet-desc{font-size: 13px;margin-bottom: 12px;line-height: 1.45;}.sheet-actions{flex-direction: row;gap: 10px;}.sheet-btn-primary,.sheet-btn-never{width: auto;padding: 8px 18px;font-size: 13px;}}.image-lightbox{position: fixed;inset: 0;z-index: 2000;background: transparent;backdrop-filter: blur(0px);-webkit-backdrop-filter: blur(0px);opacity: 0;pointer-events: none;transition: background 0.42s cubic-bezier(0.2,0.9,0.3,1),backdrop-filter 0.42s cubic-bezier(0.2,0.9,0.3,1),opacity 0.25s ease;}.image-lightbox.active{background: var(--bg-modal);backdrop-filter: blur(24px);-webkit-backdrop-filter: blur(24px);opacity: 1;pointer-events: auto;}.lightbox-controls{position: fixed;top: max(16px,env(safe-area-inset-top));right: max(16px,env(safe-area-inset-right));display: flex;align-items: center;gap: 3px;z-index: 2003;border-radius: 100px;padding: 3px 6px;backdrop-filter: blur(16px) saturate(5);-webkit-backdrop-filter: blur(16px) saturate(5);opacity: 0;transform: translateY(-8px) scale(0.96);transition: opacity 0.3s cubic-bezier(0.16,1,0.3,1) 0.08s,transform 0.3s cubic-bezier(0.16,1,0.3,1) 0.08s;}.image-lightbox.active .lightbox-controls{opacity: 1;transform: translateY(0) scale(1);}.lightbox-btn{display: flex;align-items: center;justify-content: center;width: 32px;height: 32px;border: none;border-radius: 50%;background: transparent;color: var(--muted);font-family: var(--font);font-size: 16px;line-height: 1;cursor: pointer;transition: background 0.15s ease,color 0.15s ease;}.lightbox-btn:hover{background: var(--hover-bg);color: var(--text);}.lightbox-btn svg{display: block;width: 16px;height: 16px;fill: currentColor;flex-shrink: 0;}.lightbox-img{position: fixed;object-fit: contain;border-radius: 16px;transition: top 0.44s cubic-bezier(0.2,0.9,0.3,1),left 0.44s cubic-bezier(0.2,0.9,0.3,1),width 0.44s cubic-bezier(0.2,0.9,0.3,1),height 0.44s cubic-bezier(0.2,0.9,0.3,1),border-radius 0.44s cubic-bezier(0.2,0.9,0.3,1),transform 0.25s ease;z-index: 2002;transform-origin: center center;will-change: top,left,width,height,transform;}main.prose img{cursor: zoom-in;transition: opacity 0.2s ease,transform 0.2s ease;}main.prose img:hover{opacity: 0.95;}#settings-trigger,.side-settings{display: flex;align-items: center;justify-content: center;width: 36px;height: 36px;padding: 0;border: none;border-radius: 10px;background: none;color: var(--muted);cursor: pointer;}#settings-trigger .ico,.side-settings .ico{width: 18px;height: 18px;}#settings-trigger:hover,.side-settings:hover{background: var(--hover-bg);color: var(--text);}.settings-panel{position: relative;display: flex;flex-direction: column;padding: 0;overflow: hidden;}.st-top,.st-bottom{position: absolute;left: 0;right: 0;z-index: 3;isolation: isolate;}.st-top::before,.st-bottom::before{content: "";position: absolute;inset: 0;z-index: -1;pointer-events: none;backdrop-filter: blur(18px) saturate(1.2);-webkit-backdrop-filter: blur(18px) saturate(1.2);}.st-top{top: 0;padding: 26px 28px 30px;}.st-top::before{background: linear-gradient(to bottom,var(--bg-menu) 40%,transparent);background: linear-gradient(to bottom,color-mix(in srgb,var(--bg-menu) 94%,transparent),color-mix(in srgb,var(--bg-menu) 80%,transparent) 60%,transparent);-webkit-mask-image: linear-gradient(to bottom,#000 55%,transparent);mask-image: linear-gradient(to bottom,#000 55%,transparent);}.st-top .sheet-title{margin: 0 0 6px;font-size: 20px;}.st-top .sheet-desc{margin: 0;font-size: 13.5px;line-height: 1.5;}.st-bottom{bottom: 0;display: flex;align-items: center;justify-content: flex-end;gap: 10px;padding: 36px 28px calc(20px + env(safe-area-inset-bottom));}.st-bottom::before{background: linear-gradient(to top,var(--bg-menu) 40%,transparent);background: linear-gradient(to top,color-mix(in srgb,var(--bg-menu) 94%,transparent),color-mix(in srgb,var(--bg-menu) 80%,transparent) 60%,transparent);-webkit-mask-image: linear-gradient(to top,#000 55%,transparent);mask-image: linear-gradient(to top,#000 55%,transparent);}.st-bottom .sheet-btn-primary{border: none;font-family: inherit;cursor: pointer;}.st-bottom .sheet-btn-primary.done{opacity: 0.85;}.st-scroll{flex: 1;min-height: 0;padding: var(--st-top,110px) 28px var(--st-bottom,84px);overflow-y: auto;overscroll-behavior: contain;touch-action: pan-y;scrollbar-width: thin;scrollbar-color: var(--border) transparent;}.st-group{margin-bottom: 18px;}.st-heading{margin: 0 0 8px 6px;font-size: 11px;font-weight: 700;letter-spacing: 0.08em;text-transform: uppercase;color: var(--muted);}.st-card{border-radius: 25px;background: var(--hover-bg);overflow: hidden;}.st-row,.st-field{display: flex;gap: 14px;padding: 14px 16px;border-top: 1px solid var(--border-subtle);cursor: default;}.st-card>:first-child{border-top: none;}.st-row{align-items: center;justify-content: space-between;}.st-row.stack{flex-direction: column;align-items: stretch;}label.st-row{cursor: pointer;}.st-field{flex-direction: column;align-items: stretch;gap: 8px;}.st-text{display: flex;flex-direction: column;gap: 2px;min-width: 0;}.st-label{font-size: 14px;font-weight: 600;line-height: 1.35;color: var(--text);}.st-hint{font-size: 12.5px;line-height: 1.45;color: var(--muted);}.st-hint.err{color: #ef4444;}.st-input{width: 100%;height: 40px;padding: 0 16px;border: none;border-radius: 100px;background: var(--search-bg);color: var(--text);font: inherit;font-size: 14px;outline: none;transition: border-color 0.15s ease;}.st-input::placeholder{color: var(--muted);opacity: 0.8;}.st-input:focus{border-color: var(--text);}.st-input.bad{border-color: #ef4444;}.st-swatches{display: flex;flex-wrap: wrap;align-items: center;gap: 12px;}.st-swatch{display: block;position: relative;flex-shrink: 0;width: 26px;height: 26px;padding: 0;border: none;border-radius: 50%;background: var(--sw,var(--hover-bg));cursor: pointer;transition: transform 0.15s ease,box-shadow 0.15s ease;}.st-swatch:hover{transform: scale(1.12);}.st-swatch.on{box-shadow: 0 0 0 2px var(--bg-menu),0 0 0 4px var(--text);;}.st-swatch.reset{background: linear-gradient(135deg,transparent 46%,var(--muted) 46%,var(--muted) 54%,transparent 54%),var(--search-bg);box-shadow: inset 0 0 0 1.5px var(--muted);}.st-swatch.reset.on{box-shadow: inset 0 0 0 1.5px var(--muted),0 0 0 2px var(--bg-menu),0 0 0 4px var(--text);;}.st-swatch.custom{background: conic-gradient(from 0deg,#ff5c5c,#f4b942,#5fd68f,#8ad1ff,#c084fc,#ff5c5c);}.st-swatch.custom input{position: absolute;inset: 0;width: 100%;height: 100%;padding: 0;border: none;opacity: 0;cursor: pointer;}.st-seg{display: flex;gap: 2px;padding: 3px;border-radius: 100px;background: var(--search-bg);}.st-seg button{flex: 1;height: 32px;padding: 0 10px;border: none;border-radius: 100px;background: none;color: var(--muted);font: inherit;font-size: 13px;font-weight: 600;cursor: pointer;transition: background 0.15s ease,color 0.15s ease;}.st-seg button:hover{color: var(--text);}.st-seg button.on{background: var(--btn-primary-bg);color: var(--btn-primary-text);}.st-switch{position: relative;flex-shrink: 0;width: 44px;height: 26px;}.st-switch input{position: absolute;inset: 0;z-index: 1;width: 100%;height: 100%;margin: 0;opacity: 0;cursor: pointer;}.st-track{position: absolute;inset: 0;border: 1px solid var(--border);border-radius: 100px;background: var(--search-bg);transition: background 0.2s ease,border-color 0.2s ease;}.st-track::after{content: "";position: absolute;top: 2px;left: 2px;width: 20px;height: 20px;border-radius: 50%;background: var(--muted);transition: transform 0.25s cubic-bezier(0.16,1,0.3,1),background 0.2s ease;}.st-switch input:checked+.st-track{border-color: transparent;background: var(--btn-primary-bg);}.st-switch input:checked+.st-track::after{transform: translateX(18px);background: var(--btn-primary-text);}.st-switch input:focus-visible+.st-track{outline: 2px solid var(--text);outline-offset: 2px;}@media (min-width: 901px){.settings-panel{width: min(540px,calc(100vw - 32px));max-height: min(88vh,780px);}}@media (max-width: 900px){.st-top{padding: 8px 22px 28px;}.st-scroll{padding-left: 22px;padding-right: 22px;}.st-bottom{padding: 36px 22px calc(18px + env(safe-area-inset-bottom));}.st-bottom .sheet-btn-primary{flex: 1;width: auto;}.st-bottom .sheet-btn-never{flex: 0 0 auto;width: auto;}}@media (orientation: landscape) and (max-height: 550px){.settings-panel{max-height: 94vh;}.st-top{padding: 14px 24px 22px;}.st-top .sheet-title{font-size: 17px;margin-bottom: 0;}.st-top .sheet-desc{display: none;}}main.prose{flex: 1;min-width: 0;max-width: 100%;width: 100%;box-sizing: border-box;}main.prose .eyebrow{font-size: 14px;font-weight: 600;margin: 0 0 8px;color: var(--text);display: flex;align-items: center;justify-content: space-between;gap: 12px;}main.prose h1{font-size: 30px;font-weight: 700;letter-spacing: 0;margin: 0 0 6px;color: var(--text);}main.prose .page-description{color: var(--muted);font-size: 18px;margin: 0 0 32px;}main.prose h2{font-size: 22px;font-weight: 700;margin: 40px 0 14px;padding-top: 6px;}main.prose h2:first-child{border-top: none;padding-top: 0;}main.prose h3{font-size: 17px;font-weight: 700;margin: 26px 0 10px;}main.prose h2,main.prose h3{scroll-margin-top: 130px;color: var(--text);}main.prose p,main.prose li{color: var(--muted);line-height: 1.75;}main.prose strong{color: var(--text);}main.prose a{color: var(--text);;font-weight: 600;text-decoration: underline;}main.prose ul,main.prose ol{padding-left: 22px;}main.prose li{margin: 4px 0;}main.prose img{max-width: 100%;border-radius: 16px;display: block;margin: 20px 0;}main.prose img.vyla-banner{width: 100%;}main.prose hr{border: none;}main.prose code{background: var(--code-inline-bg);color: var(--text);font-family: var(--mono);font-size: 13px;padding: 2px 6px;border-radius: 5px;}main.prose pre{margin: 16px 0;padding: 16px 20px;border-radius: 25px;overflow-x: auto;background: var(--bg-code);color: var(--code-text);--fade-l: 0px;--fade-r: 0px;scrollbar-width: none;-webkit-mask-image: linear-gradient(to right,transparent 0,#000 var(--fade-l),#000 calc(100% - var(--fade-r)),transparent 100%);mask-image: linear-gradient(to right,transparent 0,#000 var(--fade-l),#000 calc(100% - var(--fade-r)),transparent 100%);}main.prose pre code{background: none;padding: 0;font-size: 13px;color: inherit;}.table-wrap{--fade-l: 0px;--fade-r: 0px;max-width: 100%;margin: 20px 0;overflow-x: auto;scrollbar-width: thin;border-radius: 14px;-webkit-mask-image: linear-gradient(to right,transparent 0,#000 var(--fade-l),#000 calc(100% - var(--fade-r)),transparent 100%);mask-image: linear-gradient(to right,transparent 0,#000 var(--fade-l),#000 calc(100% - var(--fade-r)),transparent 100%);}.table-wrap table{margin: 0;}table{width: 100%;border-collapse: separate;border-spacing: 0;margin: 0;font-size: 13.5px;line-height: 1.55;text-align: left;}th{padding: 12px 5px;font-size: 11.5px;font-weight: 600;text-transform: uppercase;letter-spacing: 0.05em;color: var(--muted);white-space: nowrap;}td{padding: 14px 5px;vertical-align: top;border-bottom: 1px solid var(--border-subtle);color: var(--text);;}tbody tr:last-child td{border-bottom: none;}tbody tr{transition: background 0.15s ease;}tbody tr:hover{background: var(--hover-bg);}td code{white-space: nowrap;font-size: 12.5px;}.callout{display: flex;gap: 12px;padding: 14px 11px;border-radius: 25px;font-size: 14px;}.callout-content{flex: 1;}.callout-content>:first-child{margin-top: 0;}.callout-content>:last-child{margin-bottom: 0;}.callout-note{background: var(--callout-note-bg);}.callout-info{background: var(--callout-info-bg);}.callout-warning{background: var(--callout-warning-bg)!important;color: var(--callout-warning-text)!important;}.callout-warning p,.callout-warning strong{color: inherit!important;}aside#toc{width: var(--toc-width);flex-shrink: 0;display: none;border-radius: 12px;padding-left: 10px;height: fit-content;max-height: calc(100vh - var(--header-height) - 40px);padding-bottom: 10px;overflow-y: auto;position: sticky;top: calc(var(--header-height) + 40px);}@media (min-width: 1100px){aside#toc{display: block;}}aside#toc .toc-title{display: flex;align-items: center;gap: 8px;font-size: 14px;font-weight: 600;line-height: 20px;color: var(--text);margin-bottom: 2px;}aside#toc .toc-title::before{content: "";width: 16px;height: 16px;background: currentColor;-webkit-mask: var(--ico-toc-mask) center / contain no-repeat;mask: var(--ico-toc-mask) center / contain no-repeat;}aside#toc ul{list-style: none;margin: 0;padding: 0;}aside#toc li a{display: block;padding: 6px 0;font-size: 14px;line-height: 20px;color: var(--muted);}aside#toc li a:hover{color: var(--text);}aside#toc li a.active{color: var(--text);font-weight: 600;}@media (max-width: 900px){aside#toc{display: none;}}@supports (-webkit-touch-callout: none){#main-wrap{margin-top: max(130px,env(safe-area-inset-top));}body.is-home{margin-top: 0px!important;}}pre[class*="language-"],code[class*="language-"]{color: var(--code-text);}.token.comment,.token.prolog,.token.doctype,.token.cdata{color: var(--hl-comment)!important;font-style: italic;}.token.punctuation{color: var(--hl-punct)!important;}.token.namespace{opacity: 0.7;}.token.property,.token.tag,.token.boolean,.token.number,.token.constant,.token.symbol,.token.deleted{color: var(--hl-num)!important;}.token.selector,.token.attr-name,.token.string,.token.char,.token.builtin,.token.inserted{color: var(--hl-string)!important;}.token.operator,.token.entity,.token.url,.language-css .token.string,.style .token.string{color: var(--hl-op)!important;}.token.atrule,.token.attr-value,.token.keyword{color: var(--hl-keyword)!important;font-weight: 600;}.token.function,.token.function-name,.token.class-name{color: var(--hl-func)!important;font-weight: 500;}.token.regex,.token.important,.token.variable,.token.parameter{color: var(--hl-var)!important;}.token.bold{font-weight: 700;}.token.italic{font-style: italic;}body.is-404 #sidebar,body.is-404 #toc,body.is-404 #mobile-bar,body.is-404 .footer-nav{display: none!important;}body.is-404 #content-wrapper{padding: 0!important;margin: 0 auto!important;max-width: 100%!important;width: 100%!important;}body.is-404 #content-col,body.is-404 #main-wrap,body.is-404 #main-content{max-width: 100%!important;width: 100%!important;margin: 0!important;}body.is-404 .error-container{display: flex;flex-direction: column;align-items: center;justify-content: center;min-height: calc(80vh - 120px);padding: 40px 20px;box-sizing: border-box;text-align: center;}body.is-404 .error-code{margin: 0 0 16px;color: var(--text);font-size: clamp(74px,14vw,112px);font-weight: 700;line-height: 1;letter-spacing: -2px;}body.is-404 .error-title{margin: 0 0 24px;color: var(--text);font-size: 18px;font-weight: 800;letter-spacing: 0.12em;text-transform: uppercase;}body.is-404 .error-desc{max-width: 440px;margin: 0 0 32px;color: var(--muted);font-size: 15.5px;line-height: 1.6;}body.is-404 .btn-home{display: inline-flex;align-items: center;justify-content: center;padding: 10px 28px;border-radius: 9999px;background: var(--btn-home-bg);color: var(--btn-home-text)!important;font-size: 14.5px;font-weight: 500;text-decoration: none!important;transition: background 0.2s ease,border-color 0.2s ease,color 0.2s ease;} \ No newline at end of file +:root,:root[data-theme="dark"]{--bg: #000000;--text: #f3f3f3;--text: #ffffff;--muted: #a3a3a3;--border: #2b2b2b98;--bg-elevated: rgba(255,255,255,0.08);--bg-card: rgba(25,25,25,0.2);--bg-card-hover: rgba(28,28,28,0.8);--bg-code: #050505;--code-inline-bg: #050505;--code-inline-text: #f3f3f3;--code-text: #abb2bf;--bg-menu: #000000;--bg-modal: rgba(10,10,10,0.35);--hover-bg: rgba(120,120,120,0.05);--search-bg: rgba(50,50,50,0.1);--search-panel-bg: rgba(10,10,10,0.6);--code-group-bg: #0d0d0d;--code-group-panel-bg: #000000;--code-tab-active: #ffffff;--footer-border: rgba(255,255,255,0.08);--border-subtle: rgba(255,255,255,0.05);--btn-primary-bg: #ffffff;--btn-primary-text: #000000;--btn-home-bg: #ffffff;--btn-home-text: #000000;--callout-note-bg: rgba(50,50,50,0.1);--callout-info-bg: rgba(39,39,39,0.08);--callout-warning-bg: rgba(180,120,0,0.18);--callout-warning-text: #fde047;--body-radial-tint: rgba(0,0,0,0.7);--skeleton-pulse-1: rgba(255,255,255,0.05);--skeleton-pulse-2: rgba(255,255,255,0.12);--spider-display: none;--cobweb-display: none;--spider-thread: rgba(255,255,255,0.3);--snow-display: none;--leaf-display: none;--lights-display: none;--hl-comment: #5c6370;--hl-punct: #abb2bf;--hl-func: #61afef;--hl-keyword: #c678dd;--hl-string: #98c379;--hl-var: #e06c75;--hl-op: #56b6c2;--hl-num: #d19a66;--hl-param: #d19a66;--hl-class: #e5c07b;--hl-tag: #e06c75;--hl-deleted-color: #e06c75;--hl-deleted-bg: rgba(224,108,117,0.15);--hl-inserted-color: #98c379;--hl-inserted-bg: rgba(152,195,121,0.15);--sidebar-width: 150px;--toc-width: 240px;--header-height: 148px;--font: Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--mono: ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;--ico-toc-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M4 6h16M4 12h10M4 18h14'/%3E%3C/svg%3E");--ico-check-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");--ico-chevron-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");--ico-search-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.35-4.35'/%3E%3C/svg%3E");--ico-close-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'/%3E%3Cline x1='6' y1='6' x2='18' y2='18'/%3E%3C/svg%3E");}:root[data-theme="light"]{--bg: #ffffff;--text: #000000;--muted: #6b7280;--border: #e5e7eb;--bg-elevated: rgba(0,0,0,0.05);--bg-card: rgba(240,240,240,0.85);--bg-card-hover: rgba(225,225,225,0.95);--bg-code: #fafafa;--code-inline-bg: rgba(240,240,240,0.8);--code-inline-text: #0b0b0c;--code-text: #24292e;--bg-menu: #ffffff;--bg-modal: rgba(240,240,240);--hover-bg: rgba(0,0,0,0.05);--search-bg: rgba(0,0,0,0.05);--search-panel-bg: rgba(255,255,255,0.85);--code-group-bg: #f4f4f5;--code-group-panel-bg: #ffffff;--code-tab-active: #0b0b0c;--footer-border: rgba(0,0,0,0.08);--border-subtle: rgba(0,0,0,0.05);--btn-primary-bg: #000000;--btn-primary-text: #ffffff;--btn-home-bg: #000000;--btn-home-text: #ffffff;--callout-note-bg: rgba(5,5,5,0.06);--callout-info-bg: rgba(39,39,39,0.06);--callout-warning-bg: #fefce8;--callout-warning-text: #854d0e;--body-radial-tint: rgba(255,255,255,0.7);--skeleton-pulse-1: rgba(0,0,0,0.05);--skeleton-pulse-2: rgba(0,0,0,0.12);--spider-display: none;--cobweb-display: none;--spider-thread: rgba(0,0,0,0.3);--hl-comment: #6a737d;--hl-punct: #24292e;--hl-func: #6f42c1;--hl-keyword: #d73a49;--hl-string: #22863a;--hl-var: #e36209;--hl-op: #d73a49;--hl-num: #005cc5;--hl-param: #b08800;--hl-class: #6f42c1;--hl-tag: #22863a;--hl-deleted-color: #b31d28;--hl-deleted-bg: #ffeef0;--hl-inserted-color: #22863a;--hl-inserted-bg: #f0fff4;}:root[data-theme="midnight"]{--bg: #070913;--text: #e2e8f0;--text: #f8fafc;--muted: #7f8ea3;--border: #1a2234;--bg-elevated: rgba(30,41,59,0.5);--bg-card: rgba(15,23,42,0.55);--bg-card-hover: rgba(30,41,59,0.7);--bg-code: #0b1120;--code-inline-bg: #0f172a;--code-inline-text: #38bdf8;--code-text: #cbd5e1;--bg-menu: #0b1120;--bg-modal: rgba(11,17,32,0.75);--hover-bg: rgba(56,189,248,0.08);--search-bg: rgba(30,41,59,0.4);--search-panel-bg: rgba(11,17,32,0.85);--code-group-bg: #0b1329;--code-group-panel-bg: #070913;--code-tab-active: #38bdf8;--footer-border: #1e293b;--border-subtle: rgba(255,255,255,0.06);--btn-primary-bg: #38bdf8;--btn-primary-text: #020617;--btn-home-bg: #38bdf8;--btn-home-text: #020617;--callout-note-bg: rgba(56,189,248,0.1);--callout-info-bg: rgba(99,102,241,0.12);--callout-warning-bg: rgba(245,158,11,0.15);--callout-warning-text: #fbbf24;--body-radial-tint: rgba(7,9,19,0.85);--skeleton-pulse-1: rgba(56,189,248,0.05);--skeleton-pulse-2: rgba(56,189,248,0.15);--spider-display: none;--cobweb-display: none;--spider-thread: rgba(56,189,248,0.3);--hl-comment: #64748b;--hl-punct: #94a3b8;--hl-func: #38bdf8;--hl-keyword: #818cf8;--hl-string: #34d399;--hl-var: #f472b6;--hl-op: #38bdf8;--hl-num: #fbbf24;--hl-param: #cbd5e1;--hl-class: #67e8f9;--hl-tag: #818cf8;--hl-deleted-color: #f87171;--hl-deleted-bg: rgba(248,113,113,0.15);--hl-inserted-color: #34d399;--hl-inserted-bg: rgba(52,211,153,0.15);}:root[data-theme="nord"]{--bg: #2e3440;--text: #eceff4;--text: #88c0d0;--muted: #d8dee9;--border: #3b4252;--bg-elevated: rgba(67,76,94,0.5);--bg-card: rgba(59,66,82,0.5);--bg-card-hover: rgba(67,76,94,0.7);--bg-code: #242933;--code-inline-bg: #3b4252;--code-inline-text: #eceff4;--code-text: #d8dee9;--bg-menu: #2e3440;--bg-modal: rgba(46,52,64,0.8);--hover-bg: rgba(136,192,208,0.1);--search-bg: rgba(59,66,82,0.5);--search-panel-bg: rgba(46,52,64,0.9);--code-group-bg: #3b4252;--code-group-panel-bg: #2e3440;--code-tab-active: #88c0d0;--footer-border: #3b4252;--border-subtle: rgba(255,255,255,0.05);--btn-primary-bg: #88c0d0;--btn-primary-text: #2e3440;--btn-home-bg: #88c0d0;--btn-home-text: #2e3440;--callout-note-bg: rgba(129,161,193,0.15);--callout-info-bg: rgba(136,192,208,0.15);--callout-warning-bg: rgba(235,203,139,0.15);--callout-warning-text: #ebcb8b;--body-radial-tint: rgba(46,52,64,0.8);--skeleton-pulse-1: rgba(216,222,233,0.05);--skeleton-pulse-2: rgba(216,222,233,0.12);--spider-display: none;--cobweb-display: none;--spider-thread: rgba(236,239,244,0.3);--hl-comment: #616e88;--hl-punct: #d8dee9;--hl-func: #88c0d0;--hl-keyword: #81a1c1;--hl-string: #a3be8c;--hl-var: #d08770;--hl-op: #81a1c1;--hl-num: #b48ead;--hl-param: #d8dee9;--hl-class: #8fbcbb;--hl-tag: #81a1c1;--hl-deleted-color: #bf616a;--hl-deleted-bg: rgba(191,97,106,0.15);--hl-inserted-color: #a3be8c;--hl-inserted-bg: rgba(163,190,140,0.15);}:root[data-theme="dracula"]{--bg: #282a36;--text: #f8f8f2;--text: #bd93f9;--muted: #6272a4;--border: #44475a;--bg-elevated: rgba(68,71,90,0.5);--bg-card: rgba(68,71,90,0.4);--bg-card-hover: rgba(68,71,90,0.7);--bg-code: #1e1f29;--code-inline-bg: #44475a;--code-inline-text: #ff79c6;--code-text: #f8f8f2;--bg-menu: #282a36;--bg-modal: rgba(40,42,54,0.85);--hover-bg: rgba(189,147,249,0.12);--search-bg: rgba(68,71,90,0.5);--search-panel-bg: rgba(40,42,54,0.9);--code-group-bg: #44475a;--code-group-panel-bg: #282a36;--code-tab-active: #ff79c6;--footer-border: #44475a;--border-subtle: rgba(255,255,255,0.07);--btn-primary-bg: #bd93f9;--btn-primary-text: #282a36;--btn-home-bg: #bd93f9;--btn-home-text: #282a36;--callout-note-bg: rgba(189,147,249,0.15);--callout-info-bg: rgba(139,233,253,0.15);--callout-warning-bg: rgba(241,250,140,0.15);--callout-warning-text: #f1fa8c;--body-radial-tint: rgba(40,42,54,0.85);--skeleton-pulse-1: rgba(98,114,164,0.08);--skeleton-pulse-2: rgba(98,114,164,0.2);--spider-display: none;--cobweb-display: none;--spider-thread: rgba(189,147,249,0.3);--hl-comment: #6272a4;--hl-punct: #f8f8f2;--hl-func: #50fa7b;--hl-keyword: #ff79c6;--hl-string: #f1fa8c;--hl-var: #ffb86c;--hl-op: #ff79c6;--hl-num: #bd93f9;--hl-param: #ffb86c;--hl-class: #8be9fd;--hl-tag: #ff79c6;--hl-deleted-color: #ff5555;--hl-deleted-bg: rgba(255,85,85,0.15);--hl-inserted-color: #50fa7b;--hl-inserted-bg: rgba(80,250,123,0.15);}:root[data-theme="forest"]{--bg: #0d1612;--text: #e2ede5;--text: #86efac;--muted: #739481;--border: #1a2f24;--bg-elevated: rgba(34,76,56,0.35);--bg-card: rgba(20,42,31,0.45);--bg-card-hover: rgba(28,59,44,0.65);--bg-code: #080f0c;--code-inline-bg: #142a1f;--code-inline-text: #86efac;--code-text: #d1fae5;--bg-menu: #0d1612;--bg-modal: rgba(13,22,18,0.85);--hover-bg: rgba(134,239,172,0.08);--search-bg: rgba(26,47,36,0.6);--search-panel-bg: rgba(13,22,18,0.9);--code-group-bg: #15271e;--code-group-panel-bg: #0d1612;--code-tab-active: #86efac;--footer-border: #1a2f24;--border-subtle: rgba(255,255,255,0.05);--btn-primary-bg: #4ade80;--btn-primary-text: #052e16;--btn-home-bg: #4ade80;--btn-home-text: #052e16;--callout-note-bg: rgba(74,222,128,0.12);--callout-info-bg: rgba(45,212,191,0.12);--callout-warning-bg: rgba(250,204,21,0.15);--callout-warning-text: #fde047;--body-radial-tint: rgba(13,22,18,0.85);--skeleton-pulse-1: rgba(134,239,172,0.05);--skeleton-pulse-2: rgba(134,239,172,0.12);--spider-display: none;--cobweb-display: none;--spider-thread: rgba(134,239,172,0.3);--hl-comment: #527561;--hl-punct: #d1fae5;--hl-func: #4ade80;--hl-keyword: #2dd4bf;--hl-string: #a7f3d0;--hl-var: #fcd34d;--hl-op: #34d399;--hl-num: #fbbf24;--hl-param: #e2ede5;--hl-class: #6ee7b7;--hl-tag: #2dd4bf;--hl-deleted-color: #f87171;--hl-deleted-bg: rgba(248,113,113,0.15);--hl-inserted-color: #4ade80;--hl-inserted-bg: rgba(74,222,128,0.15);}:root[data-theme="sunset"]{--bg: #180d18;--text: #fce7f3;--text: #fb7185;--muted: #a77c98;--border: #3b1d36;--bg-elevated: rgba(80,30,70,0.35);--bg-card: rgba(50,20,45,0.5);--bg-card-hover: rgba(75,30,68,0.65);--bg-code: #120712;--code-inline-bg: #3b1d36;--code-inline-text: #fda4af;--code-text: #fbcfe8;--bg-menu: #180d18;--bg-modal: rgba(24,13,24,0.85);--hover-bg: rgba(251,113,133,0.1);--search-bg: rgba(59,29,54,0.5);--search-panel-bg: rgba(24,13,24,0.9);--code-group-bg: #2d1329;--code-group-panel-bg: #180d18;--code-tab-active: #fb7185;--footer-border: #3b1d36;--border-subtle: rgba(255,255,255,0.05);--btn-primary-bg: #f43f5e;--btn-primary-text: #ffffff;--btn-home-bg: #f43f5e;--btn-home-text: #ffffff;--callout-note-bg: rgba(251,113,133,0.15);--callout-info-bg: rgba(192,132,252,0.15);--callout-warning-bg: rgba(251,146,60,0.15);--callout-warning-text: #fdba74;--body-radial-tint: rgba(24,13,24,0.85);--skeleton-pulse-1: rgba(251,113,133,0.05);--skeleton-pulse-2: rgba(251,113,133,0.15);--spider-display: none;--cobweb-display: none;--spider-thread: rgba(251,113,133,0.3);--hl-comment: #835b77;--hl-punct: #fbcfe8;--hl-func: #fb7185;--hl-keyword: #c084fc;--hl-string: #f472b6;--hl-var: #fb923c;--hl-op: #f43f5e;--hl-num: #facc15;--hl-param: #fce7f3;--hl-class: #e879f9;--hl-tag: #c084fc;--hl-deleted-color: #f87171;--hl-deleted-bg: rgba(248,113,113,0.15);--hl-inserted-color: #4ade80;--hl-inserted-bg: rgba(74,222,128,0.15);}:root[data-theme="cyberpunk"]{--bg: #050508;--text: #00ffcc;--text: #ffe600;--muted: #5e7a75;--border: #1a2a26;--bg-elevated: rgba(0,255,204,0.08);--bg-card: rgba(10,20,20,0.7);--bg-card-hover: rgba(20,40,35,0.85);--bg-code: #020204;--code-inline-bg: rgba(0,255,204,0.12);--code-inline-text: #ffe600;--code-text: #00ffcc;--bg-menu: #08080f;--bg-modal: rgba(5,5,8,0.9);--hover-bg: rgba(0,255,204,0.1);--search-bg: rgba(0,255,204,0.08);--search-panel-bg: rgba(8,8,15,0.95);--code-group-bg: #0e121a;--code-group-panel-bg: #050508;--code-tab-active: #ffe600;--footer-border: #1a2a26;--border-subtle: rgba(0,255,204,0.15);--btn-primary-bg: #ffe600;--btn-primary-text: #000000;--btn-home-bg: #00ffcc;--btn-home-text: #000000;--callout-note-bg: rgba(0,255,204,0.12);--callout-info-bg: rgba(255,0,128,0.15);--callout-warning-bg: rgba(255,230,0,0.15);--callout-warning-text: #ffe600;--body-radial-tint: rgba(5,5,8,0.9);--skeleton-pulse-1: rgba(0,255,204,0.05);--skeleton-pulse-2: rgba(255,230,0,0.12);--spider-display: none;--cobweb-display: none;--spider-thread: rgba(0,255,204,0.3);--hl-comment: #3f5e58;--hl-punct: #00ffcc;--hl-func: #ffe600;--hl-keyword: #ff007f;--hl-string: #00f0ff;--hl-var: #ff5500;--hl-op: #ff007f;--hl-num: #00ffcc;--hl-param: #ffffff;--hl-class: #ffe600;--hl-tag: #ff007f;--hl-deleted-color: #ff0055;--hl-deleted-bg: rgba(255,0,85,0.2);--hl-inserted-color: #00ffcc;--hl-inserted-bg: rgba(0,255,204,0.2);}html.banner-dismissed,body.banner-dismissed{--header-height: 109px;}html.banner-dismissed #banner,body.banner-dismissed #banner{display: none!important;}*{box-sizing: border-box;}html{margin: 0;height: 100%;overflow-x: hidden;scrollbar-width: none;-ms-overflow-style: none;}body{min-height: 100%;min-height: -webkit-fill-available;margin: 0;font-family: var(--font);background: var(--bg);color: var(--text);;line-height: 1.65;overflow-x: hidden;-ms-overflow-style: none;scrollbar-width: none;padding-left: env(safe-area-inset-left);padding-right: env(safe-area-inset-right);}html::-webkit-scrollbar,body::-webkit-scrollbar{display: none;width: 0;height: 0;}body::before{content: "";position: fixed;inset: 0;pointer-events: none;z-index: -1;background: radial-gradient(ellipse at center,transparent 35%,var(--body-radial-tint) 100%);}.video-bg{position: fixed;inset: 0;width: 100%;height: 100%;object-fit: cover;z-index: -2;}a{color: inherit;text-decoration: none;}#header-container{position: fixed;top: 10px;left: 50%;transform: translateX(-50%);z-index: 41;backdrop-filter: blur(10px) saturate(1.2);-webkit-backdrop-filter: blur(10px) saturate(1.2);background: var(--bg-card);width: 25%;min-width: 650px;border-radius: 30px;}#banner{position: relative;display: none;padding: 10px 48px;font-size: 13px;line-height: 1.45;text-align: center;background: transparent;}#banner-close{position: absolute;top: 50%;right: 8px;display: flex;align-items: center;justify-content: center;width: 32px;height: 32px;padding: 0;transform: translateY(-50%);background: none;border: none;border-radius: 8px;cursor: pointer;font-size: 18px;line-height: 1;color: inherit;opacity: 0.6;}#banner-close:hover{opacity: 1;background: var(--hover-bg);}#navbar{position: relative;background: transparent;}#navbar .nav-top{position: relative;display: flex;align-items: center;height: 60px;max-width: 1400px;margin: 0 auto;padding: 0 10px;}#navbar .brand{display: flex;align-items: center;}#navbar .brand img{height: 28px;width: 28px;border-radius: 50%;display: block;}#navbar .links{display: flex;align-items: center;gap: 10px;margin-left: auto;}#navbar .tabs{display: flex;align-items: center;gap: 4px;height: 48px;max-width: 1400px;margin: 0 auto;overflow-x: auto;}#navbar .tabs a{padding: 6px 14px;font-size: 14px;font-weight: 500;color: var(--muted);white-space: nowrap;}#navbar .tabs a:hover{color: var(--text);}#navbar .tabs a.active{color: var(--text);font-weight: 600;}#layout{display: flex;max-width: 1400px;margin: 0 auto;}#sidebar{margin-top: 40px;border-radius: 12px;width: var(--sidebar-width);flex-shrink: 0;padding-top: 20px;padding-left: 20px;position: sticky;height: fit-content;top: calc(var(--header-height) + 40px);max-height: calc(100vh - var(--header-height) - 40px);overflow-y: auto;}#sidebar .group{margin-bottom: 10px;}#sidebar .group-title{font-size: 14px;font-weight: 600;line-height: 23px;color: var(--text);margin: 0 0 10px 16px;}#sidebar ul{list-style: none;margin: 0;padding: 0;}#sidebar li a{display: block;padding: 8px 16px;border-radius: 12px;font-size: 14px;line-height: 21px;color: var(--muted);}#sidebar li a.active{color: var(--text);}#sidebar li a:hover{background: var(--hover-bg);color: var(--text);}#content-col{flex: 1;min-width: 0;display: flex;padding: 16px max(20px,env(safe-area-inset-right)) 20px max(20px,env(safe-area-inset-left));gap: 92px;max-width: 100%;box-sizing: border-box;width: 80vw;}#main-wrap{flex: 1;min-width: 0;max-width: 1000px;margin-top: 120px;border-radius: 12px;width: 100%;box-sizing: border-box;display: flex;flex-direction: column;}footer#site-footer{min-width: 0;width: 100%;max-width: 100%;box-sizing: border-box;padding: 48px 0 60px;margin: 0;display: flex;flex-direction: column;}.footer-nav{display: flex;justify-content: space-between;align-items: center;gap: 16px;width: 100%;min-height: 22px;margin: 0 0 200px;}.footer-link{display: inline-flex;align-items: center;gap: 8px;font-size: 14px;font-weight: 600;color: var(--text);transition: opacity 0.15s ease;}.footer-link:hover{opacity: 0.8;}.footer-link.hidden{visibility: hidden;}.footer-link.next{margin-left: auto;}.footer-grid{display: grid;grid-template-columns: 2fr 1fr 1fr 1fr;gap: 36px;padding-bottom: 36px;border-bottom: 1px solid var(--footer-border);margin-bottom: 28px;}.footer-brand-col{display: flex;flex-direction: column;}.footer-brand-link{display: inline-flex;align-items: center;gap: 10px;text-decoration: none;color: var(--text);margin-bottom: 12px;}.footer-brand-name{font-size: 18px;font-weight: 700;letter-spacing: -0.02em;}.footer-brand-desc{font-size: 13.5px;line-height: 1.6;color: var(--muted);margin: 0 0 18px;max-width: 320px;}.footer-col-title{font-size: 12px;font-weight: 600;text-transform: uppercase;letter-spacing: 0.08em;color: var(--muted);margin-bottom: 14px;}.footer-col-list{list-style: none;padding: 0;margin: 0;display: flex;flex-direction: column;gap: 10px;}.footer-col-list a{font-size: 13.5px;color: var(--muted);text-decoration: none;transition: color 0.15s ease;display: inline-block;}.footer-col-list a:hover{color: var(--text);}.footer-bottom{display: flex;align-items: center;justify-content: space-between;flex-wrap: wrap;gap: 20px;width: 100%;border-top: none;padding: 0;}.footer-bottom-info p{margin: 0;font-size: 13px;color: var(--muted);}.footer-bottom-info .footer-subtext{margin-top: 4px;font-size: 12px;color: var(--muted);}.footer-badges{display: flex;align-items: center;gap: 16px;flex-wrap: wrap;}.footer-green-badge{display: inline-block;opacity: 0.85;transition: opacity 0.2s ease;}.footer-green-badge:hover{opacity: 1;}.footer-green-badge img{display: block;min-height: 100px;width: auto;border-radius: 6px;}@media (max-width: 900px){.footer-grid{grid-template-columns: 1fr 1fr;gap: 28px;}.footer-brand-col{grid-column: span 2;}}@media (max-width: 550px){.footer-grid{grid-template-columns: 1fr;gap: 24px;}.footer-brand-col{grid-column: span 1;}.footer-card{max-width: 100%;}.footer-bottom{flex-direction: column;align-items: flex-start;}}.footer-socials{display: flex;gap: 16px;}.footer-socials a{display: flex;align-items: center;justify-content: center;color: var(--muted);transition: color 0.15s ease;min-width: 36px;min-height: 36px;}.footer-socials a:hover{color: var(--text);}.footer-icon{width: 20px;height: 20px;}.theme-wrap{position: relative;}#theme-toggle{display: flex;align-items: center;justify-content: center;width: 44px;height: 44px;min-width: 44px;min-height: 44px;border: none;border-radius: 10px;background: none;color: var(--muted);cursor: pointer;}#theme-toggle .ico{width: 18px;height: 18px;}#theme-toggle:hover{background: var(--hover-bg);}#theme-menu{display: flex;flex-direction: column;position: absolute;right: 0;top: 46px;width: 215px;max-height: 75vh;overflow-x: hidden;overflow-y: auto;scrollbar-width: thin;scrollbar-color: var(--border) transparent;padding: 8px;border-radius: 16px;background: var(--bg-menu);z-index: 50;opacity: 0;visibility: hidden;transform: translateY(-8px) scale(0.96);transition: opacity 0.2s cubic-bezier(0.16,1,0.3,1),transform 0.2s cubic-bezier(0.16,1,0.3,1),visibility 0.2s;pointer-events: none;box-sizing: border-box;}#theme-menu::-webkit-scrollbar,#theme-seg-menu::-webkit-scrollbar{width: 4px;}#theme-menu::-webkit-scrollbar-thumb,#theme-seg-menu::-webkit-scrollbar-thumb{background: var(--border);border-radius: 4px;}#theme-menu::-webkit-scrollbar-track,#theme-seg-menu::-webkit-scrollbar-track{background: transparent;}#theme-menu.open{opacity: 1;visibility: visible;transform: translateY(0) scale(1);pointer-events: auto;}.theme-menu-divider{height: 1px;margin: 6px 6px;background: var(--border);flex-shrink: 0;}.theme-menu-label{font-size: 11px;font-weight: 700;text-transform: uppercase;letter-spacing: 0.08em;color: var(--muted);padding: 6px 10px 4px;text-align: left;user-select: none;}#theme-menu button{display: flex;align-items: center;justify-content: flex-start;text-align: left;gap: 10px;width: 100%;padding: 8px 10px;border: none;border-radius: 10px;background: none;color: var(--text);;font: inherit;font-size: 13.5px;cursor: pointer;box-sizing: border-box;flex-shrink: 0;}#theme-menu button:hover{background: var(--hover-bg);}#theme-menu button .ico{width: 16px;height: 16px;flex-shrink: 0;color: var(--muted);}#theme-menu button span{flex: 1;text-align: left;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;}#theme-menu .check{margin-left: auto;flex-shrink: 0;font-style: normal;font-size: 13px;visibility: hidden;}#theme-menu button.on{font-weight: 600;color: var(--text);}#theme-menu button.on .ico{color: var(--text);}#theme-menu button.on .check{visibility: visible;}#theme-seg{position: relative;display: none;gap: 4px;}#theme-seg-menu{position: absolute;top: calc(100% + 8px);right: 0;width: 180px;max-height: 320px;overflow-y: auto;padding: 6px;border-radius: 14px;background: var(--bg-menu);border: 1px solid var(--border);box-shadow: 0 10px 30px rgba(0,0,0,0.4);z-index: 250;opacity: 0;visibility: hidden;transform: translateY(-6px) scale(0.96);transition: opacity 0.2s cubic-bezier(0.16,1,0.3,1),transform 0.2s cubic-bezier(0.16,1,0.3,1),visibility 0.2s;pointer-events: none;}#theme-seg-menu.open{opacity: 1;visibility: visible;transform: translateY(0) scale(1);pointer-events: auto;}#theme-seg-menu{position: absolute;top: calc(100% + 8px);right: 0;width: 215px;max-height: 340px;overflow-x: hidden;overflow-y: auto;scrollbar-width: thin;scrollbar-color: var(--border) transparent;padding: 6px;border-radius: 14px;background: var(--bg-menu);border: 1px solid var(--border);box-shadow: 0 10px 30px rgba(0,0,0,0.4);z-index: 250;opacity: 0;visibility: hidden;transform: translateY(-6px) scale(0.96);transition: opacity 0.2s cubic-bezier(0.16,1,0.3,1),transform 0.2s cubic-bezier(0.16,1,0.3,1),visibility 0.2s;pointer-events: none;box-sizing: border-box;}#theme-seg-menu button{display: flex;align-items: center;justify-content: flex-start;text-align: left;gap: 10px;width: 100%;height: auto;min-height: 36px;padding: 8px 10px;border: none;border-radius: 8px;background: none;color: var(--text);;font: inherit;font-size: 13.5px;cursor: pointer;box-sizing: border-box;flex-shrink: 0;}#theme-seg-menu button:hover{background: var(--hover-bg);}#theme-seg-menu button .ico{width: 16px;height: 16px;flex-shrink: 0;color: var(--muted);}#theme-seg-menu button span{display: block;flex: 1;text-align: left;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;color: var(--text);;}#theme-seg-menu button.on span{color: var(--text);font-weight: 600;}#theme-seg-menu button.on .ico{color: var(--text);}#theme-seg-menu button .check{margin-left: auto;flex-shrink: 0;font-style: normal;font-size: 13px;visibility: hidden;}#theme-seg-menu button.on .check{visibility: visible;color: var(--text);}#theme-seg-menu button:hover{background: var(--hover-bg);}#theme-seg-menu button.on{font-weight: 600;color: var(--text);}#theme-seg-menu .check{margin-left: auto;font-style: normal;visibility: hidden;}#theme-seg-menu button.on .check{visibility: visible;}#theme-seg>button{display: flex;align-items: center;justify-content: center;width: 32px;height: 32px;border: none;border-radius: 50%;background: none;color: var(--muted);cursor: pointer;flex-shrink: 0;}#theme-seg>button.on{background: var(--hover-bg);color: var(--text);}#mobile-bar{display: none;position: relative;align-items: center;gap: 8px;padding: 10px 20px;font-size: 14px;color: var(--muted);background: transparent;border-top: 1px solid var(--border-subtle);}#mobile-bar button{display: flex;padding: 0;margin-right: 4px;border: none;background: none;color: inherit;cursor: pointer;flex-shrink: 0;}.mobile-crumbs{display: flex;align-items: center;gap: 7px;min-width: 0;overflow: hidden;white-space: nowrap;}.mobile-crumbs span{flex-shrink: 0;}.mobile-crumbs .crumb-group{color: var(--muted);}.mobile-crumbs .crumb-sep{opacity: 0.55;font-size: 12px;}.mobile-crumbs .crumb-page{color: var(--text);font-weight: 600;cursor: pointer;user-select: none;}.mobile-crumbs .crumb-page:hover{text-decoration: underline;text-underline-offset: 3px;}.mobile-crumbs .crumb-page.muted{color: var(--muted);font-weight: 400;}.mobile-crumb-sub-btn{display: inline-flex;align-items: center;gap: 7px;min-width: 0;overflow: hidden;cursor: pointer;user-select: none;}.mobile-crumb-sub-btn:hover .crumb-heading{text-decoration: underline;text-underline-offset: 3px;}.mobile-crumbs .crumb-heading{color: var(--text);font-weight: 600;overflow: hidden;text-overflow: ellipsis;flex-shrink: 1;}.mobile-tabs{display: none;position: relative;margin-bottom: 20px;}.mt-btn{display: flex;align-items: center;justify-content: space-between;width: 100%;padding: 8px 12px;border: none;background: var(--hover-bg);border-radius: 100px;color: var(--text);font: inherit;font-size: 15px;cursor: pointer;}.mt-btn .ico{color: var(--muted);transition: transform 0.15s ease;}.mobile-tabs.open .mt-btn .ico{transform: rotate(180deg);}.mt-menu{display: block;position: absolute;top: calc(100% + 4px);left: 0;right: 0;z-index: 5;padding: 6px;border-radius: 16px;background: var(--bg-menu);border: 1px solid var(--border);box-shadow: 0 10px 25px rgba(0,0,0,0.4);opacity: 0;visibility: hidden;transform: translateY(-8px) scale(0.97);transition: opacity 0.2s cubic-bezier(0.16,1,0.3,1),transform 0.2s cubic-bezier(0.16,1,0.3,1),visibility 0.2s;pointer-events: none;}.mobile-tabs.open .mt-menu{opacity: 1;visibility: visible;transform: translateY(0) scale(1);pointer-events: auto;}.mt-menu .mt-item{display: flex;align-items: center;justify-content: space-between;width: 100%;padding: 10px 14px;border: none;background: none;border-radius: 10px;font: inherit;font-size: 14px;font-weight: 500;color: var(--muted);cursor: pointer;text-align: left;transition: background 0.15s ease,color 0.15s ease;}.mt-menu .mt-item:hover{background: var(--hover-bg);color: var(--text);}.mt-menu .mt-item.on{color: var(--text);font-weight: 600;}.mt-menu .mt-item svg{display: none;width: 16px;height: 16px;stroke: currentColor;stroke-width: 2.5;fill: none;flex-shrink: 0;}.mt-menu .mt-item.on svg{display: block;}.side-head{display: none;}body.is-home #layout{display: block;width: 100%;max-width: 100%;margin: 0;}body.is-home #content-wrapper{width: 100%;display: flex;justify-content: center;}body.is-home #content-col{display: flex;flex-direction: column;align-items: center;width: 100%;max-width: 1200px;padding: 0 20px 30px;margin: 0 auto;gap: 0;box-sizing: border-box;}body.is-home #main-wrap{width: 100%;max-width: 1100px;margin: 0 auto;background: transparent;backdrop-filter: none;-webkit-backdrop-filter: none;display: flex;flex-direction: column;align-items: center;}body.is-home main.prose{width: 100%;max-width: 100%;display: flex;flex-direction: column;align-items: center;}body.is-home #toc,body.is-home #sidebar,body.is-home #mobile-bar{display: none!important;}@media (max-width: 900px){:root{--header-height: 60px;}#header-container{width: 100%;border-radius: 0px;min-width: 0;top: max(0px,env(safe-area-inset-top));}#navbar .tabs,#theme-toggle{display: none;}#navbar .nav-top{padding-right: 20px;padding-left: 15px;}#navbar .links{order: 1;margin-left: auto;margin-right: 8px;}#mobile-bar{display: flex;}.mobile-tabs{display: block;margin-top: 8px;}#sidebar #theme-seg{display: flex;align-items: center;background: var(--hover-bg);border-radius: 50px;padding: 2px 4px;gap: 2px;}#sidebar #theme-seg>button{display: flex;align-items: center;justify-content: center;width: 28px;height: 28px;border: none;border-radius: 50%;background: none;color: var(--muted);cursor: pointer;padding: 0;flex-shrink: 0;}#sidebar #theme-seg>button.on{color: var(--text);font-weight: 900;}#banner{padding: 10px 40px;font-size: 12.5px;}body.nav-open{overflow: hidden;}#sidebar{position: fixed;left: 0;top: 0;margin-top: 0!important;width: 80%;max-width: 340px;height: 100vh!important;height: 100dvh!important;max-height: 100vh!important;padding: 0 16px 20px;background: var(--bg);transform: translateX(-100%);transition: transform 0.3s cubic-bezier(0.16,1,0.3,1);box-shadow: 4px 0 24px rgba(0,0,0,0.35);border-radius: 0 35px 35px 0;z-index: 200;}#sidebar.open{transform: translateX(0);}#sidebar li a,#sidebar .group-title{font-size: 15px;}#layout{display: block;width: 100%;max-width: 100vw;}#content-col{display: block;width: 100%;max-width: 100%;padding: 16px 20px 30px;gap: 0;box-sizing: border-box;overflow-x: hidden;}#main-wrap{width: 100%;max-width: 100%;padding-top: calc(env(safe-area-inset-top))!important;}footer#site-footer{width: 100%;max-width: 100%;}.side-head{display: flex;align-items: center;justify-content: space-between;height: 60px;margin: 0 -16px 12px;padding: 0 16px;margin-top: max(6px,env(safe-area-inset-top));}#sidebar .side-head .brand{display: flex;align-items: center;}#sidebar .side-head .brand img{height: 28px;width: 28px;border-radius: 50%;display: block;}#sidebar .side-links{display: flex;align-items: center;margin-right: 4px;}}@media (orientation: landscape) and (max-height: 550px){:root{--header-height: 52px;}#header-container{top: max(6px,env(safe-area-inset-top));width: min(600px,88vw);border-radius: 20px;}#navbar .nav-top{height: 46px;}#navbar .tabs{height: 38px;}#navbar .tabs a{padding: 4px 10px;font-size: 13px;}#main-wrap{margin-top: 100px;}#sidebar{top: calc(var(--header-height) + 16px);max-height: calc(100vh - var(--header-height) - 16px);margin-top: 10px;}#mobile-bar{padding: 6px 14px;font-size: 13px;}}:root{--snow-tile: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cg fill='white'%3E%3Ccircle cx='22' cy='38' r='2.4' fill-opacity='.9'/%3E%3Ccircle cx='96' cy='126' r='1.8' fill-opacity='.7'/%3E%3Ccircle cx='168' cy='28' r='3' fill-opacity='.85'/%3E%3Ccircle cx='236' cy='204' r='2' fill-opacity='.75'/%3E%3Ccircle cx='272' cy='92' r='2.8' fill-opacity='.9'/%3E%3Ccircle cx='58' cy='252' r='2.2' fill-opacity='.8'/%3E%3Ccircle cx='196' cy='282' r='1.6' fill-opacity='.7'/%3E%3Ccircle cx='140' cy='190' r='2.4' fill-opacity='.85'/%3E%3C/g%3E%3Cg stroke='white' stroke-opacity='.9' stroke-width='1.3' stroke-linecap='round' fill='none'%3E%3Cpath transform='translate(126 72)' d='M0 -8V8M-6.9 -4L6.9 4M-6.9 4L6.9 -4'/%3E%3Cpath transform='translate(246 150)' d='M0 -6V6M-5.2 -3L5.2 3M-5.2 3L5.2 -3'/%3E%3Cpath transform='translate(40 160)' d='M0 -7V7M-6 -3.5L6 3.5M-6 3.5L6 -3.5'/%3E%3Cpath transform='translate(210 250)' d='M0 -6V6M-5.2 -3L5.2 3M-5.2 3L5.2 -3'/%3E%3C/g%3E%3C/svg%3E");--leaf-tile: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='360' height='360'%3E%3Cg transform='translate(50 60) rotate(25) scale(1.2)' fill='%23e8710a'%3E%3Cpath d='M0 -14C10 -8 12 6 0 16C-12 6 -10 -8 0 -14Z'/%3E%3Cpath d='M0 -12V14' stroke='%23000' stroke-opacity='.25' stroke-width='1'/%3E%3C/g%3E%3Cg transform='translate(190 40) rotate(-40)' fill='%23c2410c'%3E%3Cpath d='M0 -14C10 -8 12 6 0 16C-12 6 -10 -8 0 -14Z'/%3E%3Cpath d='M0 -12V14' stroke='%23000' stroke-opacity='.25' stroke-width='1'/%3E%3C/g%3E%3Cg transform='translate(300 130) rotate(70) scale(1.3)' fill='%23eab308'%3E%3Cpath d='M0 -14C10 -8 12 6 0 16C-12 6 -10 -8 0 -14Z'/%3E%3Cpath d='M0 -12V14' stroke='%23000' stroke-opacity='.25' stroke-width='1'/%3E%3C/g%3E%3Cg transform='translate(120 200) rotate(-15) scale(1.1)' fill='%23b45309'%3E%3Cpath d='M0 -14C10 -8 12 6 0 16C-12 6 -10 -8 0 -14Z'/%3E%3Cpath d='M0 -12V14' stroke='%23000' stroke-opacity='.25' stroke-width='1'/%3E%3C/g%3E%3Cg transform='translate(250 280) rotate(140) scale(1.2)' fill='%23d97706'%3E%3Cpath d='M0 -14C10 -8 12 6 0 16C-12 6 -10 -8 0 -14Z'/%3E%3Cpath d='M0 -12V14' stroke='%23000' stroke-opacity='.25' stroke-width='1'/%3E%3C/g%3E%3Cg transform='translate(40 310) rotate(-80)' fill='%23ca8a04'%3E%3Cpath d='M0 -14C10 -8 12 6 0 16C-12 6 -10 -8 0 -14Z'/%3E%3Cpath d='M0 -12V14' stroke='%23000' stroke-opacity='.25' stroke-width='1'/%3E%3C/g%3E%3C/svg%3E");--lights-tile: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='56'%3E%3Cpath d='M0 4Q40 32 80 4Q120 32 160 4' fill='none' stroke='%23245c3a' stroke-width='1.6'/%3E%3Cg fill='%23222'%3E%3Crect x='18' y='13' width='4' height='4'/%3E%3Crect x='38' y='17' width='4' height='4'/%3E%3Crect x='58' y='13' width='4' height='4'/%3E%3Crect x='98' y='13' width='4' height='4'/%3E%3Crect x='118' y='17' width='4' height='4'/%3E%3Crect x='138' y='13' width='4' height='4'/%3E%3C/g%3E%3Cellipse cx='20' cy='22' rx='4' ry='5.5' fill='%23ff4d4d'/%3E%3Cellipse cx='40' cy='26' rx='4' ry='5.5' fill='%23ffd24d'/%3E%3Cellipse cx='60' cy='22' rx='4' ry='5.5' fill='%234dff88'/%3E%3Cellipse cx='100' cy='22' rx='4' ry='5.5' fill='%234da6ff'/%3E%3Cellipse cx='120' cy='26' rx='4' ry='5.5' fill='%23ff4d4d'/%3E%3Cellipse cx='140' cy='22' rx='4' ry='5.5' fill='%23ffd24d'/%3E%3C/svg%3E");}.snowfall,.leaf-fall{position: fixed;inset: 0;overflow: hidden;pointer-events: none;z-index: 30;}.snowfall{display: var(--snow-display);}.leaf-fall{display: var(--leaf-display);}.snowfall::before,.snowfall::after,.leaf-fall::before,.leaf-fall::after{content: "";position: absolute;background-repeat: repeat;will-change: transform;}.snowfall::before{top: -600px;left: 0;right: 0;bottom: 0;background-image: var(--snow-tile);background-size: 300px 300px;opacity: 0.9;animation: snowFallNear 18s linear infinite;}.snowfall::after{top: -500px;left: 0;right: 0;bottom: 0;background-image: var(--snow-tile);background-size: 500px 500px;opacity: 0.6;animation: snowFallFar 30s linear infinite;}.leaf-fall::before{top: -720px;left: 0;right: -360px;bottom: 0;background-image: var(--leaf-tile);background-size: 360px 360px;opacity: 0.9;animation: leafFallNear 26s linear infinite;}.leaf-fall::after{top: -540px;left: -540px;right: 0;bottom: 0;background-image: var(--leaf-tile);background-size: 540px 540px;opacity: 0.7;animation: leafFallFar 40s linear infinite;}.light-string{display: var(--lights-display);position: fixed;top: 0;left: 0;width: 100%;height: 56px;pointer-events: none;z-index: 100;background-image: var(--lights-tile);background-repeat: repeat-x;background-size: 160px 56px;animation: lightTwinkle 2.6s ease-in-out infinite alternate;}@keyframes snowFallNear{from{transform: translate3d(0,0,0);}to{transform: translate3d(0,600px,0);}}@keyframes snowFallFar{from{transform: translate3d(0,0,0);}to{transform: translate3d(0,500px,0);}}@keyframes leafFallNear{from{transform: translate3d(0,0,0);}to{transform: translate3d(-360px,720px,0);}}@keyframes leafFallFar{from{transform: translate3d(0,0,0);}to{transform: translate3d(540px,540px,0);}}@keyframes lightTwinkle{from{opacity: 0.65;filter: drop-shadow(0 0 3px rgba(255,214,120,0.5));}to{opacity: 1;filter: drop-shadow(0 0 8px rgba(255,214,120,0.9));}}@media (prefers-reduced-motion: reduce){.snowfall::before,.snowfall::after,.leaf-fall::before,.leaf-fall::after,.light-string{animation: none;}}#navbar .brand{position: relative;}#navbar .brand::after{content: "";position: absolute;top: -9px;right: -9px;font-size: 14px;line-height: 1;pointer-events: none;}:root[data-theme="halloween"] #navbar .brand::after{content: "πŸŽƒ";}:root[data-theme="autumn"] #navbar .brand::after{content: "πŸ‚";}:root[data-theme="winter"] #navbar .brand::after{content: "❄️";}:root[data-theme="christmas"] #navbar .brand::after{content: "πŸŽ„";}.st-themes{padding: 14px 16px 16px;}.st-sub{margin: 0 0 8px;font-size: 11px;font-weight: 700;letter-spacing: 0.08em;text-transform: uppercase;color: var(--muted);}.st-theme-grid{display: grid;grid-template-columns: repeat(2,minmax(0,1fr));gap: 8px;margin-bottom: 16px;}.st-theme-grid:last-child{margin-bottom: 0;}.st-theme{display: flex;align-items: center;gap: 10px;min-width: 0;height: 40px;padding: 0 14px;border: 1px solid transparent;border-radius: 100px;background: var(--search-bg);color: var(--muted);font: inherit;font-size: 13.5px;font-weight: 500;cursor: pointer;transition: background 0.15s ease,color 0.15s ease,border-color 0.15s ease;}.st-theme .ico{width: 16px;height: 16px;flex-shrink: 0;}.st-theme span{min-width: 0;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;}.st-theme:hover{color: var(--text);}.st-theme.on{background: var(--hover-bg);color: var(--text);font-weight: 600;}.ico{width: 16px;height: 16px;flex-shrink: 0;}#search-trigger{position: absolute;left: 50%;transform: translateX(-50%);display: flex;align-items: center;gap: 10px;background: var(--search-bg);width: min(440px,40vw);height: 36px;padding: 0 12px;border: none;border-radius: 100px;color: var(--muted);font: inherit;font-size: 14px;cursor: pointer;}#search-trigger kbd{margin-left: auto;font: 600 11px var(--font);color: inherit;}.code-wrap{position: relative;}.code-wrap .copy-btn{position: absolute;top: 12px;right: 12px;display: flex;padding: 6px;border: none;border-radius: 8px;background: none;color: var(--muted);cursor: pointer;}.code-wrap .copy-btn:hover{background: var(--hover-bg);}.code-group{position: relative;margin: 16px 0;border-radius: 20px;background: var(--code-group-bg);padding: 6px 4px 4px;}.code-group-tabs{display: flex;align-items: center;gap: 16px;padding: 4px 6px 6px;}.code-group-tab{position: relative;padding: 6px 2px 8px;font-family: var(--font);font-size: 13px;font-weight: 600;line-height: 16px;border: none;background: none;cursor: pointer;color: var(--muted);}.code-group-tab.active{color: var(--code-tab-active);}.code-group-tab.active::after{content: "";position: absolute;left: 0;right: 0;bottom: 0;height: 2px;background: var(--code-tab-active);border-radius: 2px;}.code-group-panels{background: var(--code-group-panel-bg);border-radius: 14px;overflow: hidden;}.cg-copy-btn{position: absolute;top: 10px;right: 14px;display: flex;align-items: center;justify-content: center;padding: 4px;border: none;border-radius: 6px;background: none;color: var(--muted);cursor: pointer;}.cg-copy-btn:hover{color: var(--text);}.code-group-panel{display: none;}.code-group-panel.active{display: block;}main.prose .code-group pre{margin: 0;padding: 16px 20px;border: none;border-radius: 0;background: transparent;color: inherit;}main.prose .code-group pre code{color: inherit;}main.prose blockquote{margin: 16px 0;padding: 4px 0 4px 16px;border-left: 3px solid var(--border);color: var(--muted);}main.prose blockquote p{margin: 0;color: inherit;}.skeleton-wrap{width: 100%;}.skeleton-line,.skeleton-media{background: linear-gradient(90deg,var(--skeleton-pulse-1) 25%,var(--skeleton-pulse-2) 37%,var(--skeleton-pulse-1) 63%);background-size: 400% 100%;animation: skeletonPulse 1.3s cubic-bezier(0.4,0,0.6,1) infinite;border-radius: 8px;}@keyframes skeletonPulse{0%{background-position: 100% 50%;}100%{background-position: 0 50%;}}.skeleton-eyebrow{width: 90px;height: 16px;margin-bottom: 12px;}.skeleton-title{width: 65%;height: 38px;margin-bottom: 18px;border-radius: 10px;}.skeleton-desc{width: 85%;height: 22px;margin-bottom: 24px;}.skeleton-media{width: 100%;height: 320px;border-radius: 24px;margin: 24px 0;}.skeleton-text{height: 16px;margin: 12px 0;}.w-100{width: 100%;}.w-90{width: 90%;}.w-85{width: 85%;}.w-75{width: 75%;}.theme-ambient{position: absolute;top: 0;left: 0;right: 0;height: 520px;z-index: -1;pointer-events: none;overflow: hidden;opacity: 0;}.theme-ambient.is-in{animation: themeAmbientIn 1s cubic-bezier(0.22,1,0.36,1) both;}.theme-ambient-media{position: absolute;inset: -12% 0;width: 100%;height: 124%;object-fit: cover;filter: blur(70px) saturate(1.4) brightness(0.8);transform: scale(1.15);-webkit-mask-image: linear-gradient(to bottom,#000 0%,transparent 85%);mask-image: linear-gradient(to bottom,#000 0%,transparent 85%);}@keyframes themeAmbientIn{from{opacity: 0;}to{opacity: 1;}}@media (prefers-reduced-motion: reduce){.theme-ambient.is-in{animation: none;opacity: 1;}}body.is-home .theme-ambient,body.is-404 .theme-ambient{display: none;}.content-animate>*{animation: smoothBlurReveal 0.44s cubic-bezier(0.22,1,0.36,1) both;will-change: filter,opacity,transform;}.content-animate>*:nth-child(1){animation-delay: 0ms;}.content-animate>*:nth-child(2){animation-delay: 35ms;}.content-animate>*:nth-child(3){animation-delay: 70ms;}.content-animate>*:nth-child(4){animation-delay: 105ms;}.content-animate>*:nth-child(5){animation-delay: 140ms;}.content-animate>*:nth-child(6){animation-delay: 175ms;}.content-animate>*:nth-child(7){animation-delay: 210ms;}.content-animate>*:nth-child(8){animation-delay: 245ms;}.content-animate>*:nth-child(9){animation-delay: 280ms;}.content-animate>*:nth-child(n+10){animation-delay: 315ms;}.content-animate.caught-up>*{animation: none!important;opacity: 1!important;filter: none!important;transform: none!important;}@keyframes smoothBlurReveal{0%{opacity: 0;filter: blur(8px);transform: translateY(6px);}100%{opacity: 1;filter: blur(0px);transform: translateY(0);}}@media (prefers-reduced-motion: reduce){.content-animate>*{animation: none!important;}.skeleton-line,.skeleton-media{animation: none!important;}}@media (max-width: 900px){#search-trigger{order: 2;position: static;transform: none;width: auto;padding: 8px;background: transparent;}#search-trigger .ico{font-weight: 900;width: 1.53rem;height: 1.3rem;}#search-trigger span,#search-trigger kbd{display: none;}}main.prose h1,main.prose h2,main.prose h3,main.prose h4{cursor: pointer;}.eyebrow-actions{display: inline-flex;align-items: center;gap: 4px;}.copy-md-btn{display: flex;align-items: center;justify-content: center;width: 30px;height: 30px;padding: 0;border: none;border-radius: 50%;background: none;color: var(--muted);cursor: pointer;transition: color 0.15s ease,background 0.15s ease;}.copy-md-btn .ico{width: 17px;height: 17px;}.copy-md-btn:hover{background: var(--hover-bg);color: var(--text);}.copy-md-btn.copied{color: var(--muted);}.bm-btn{display: flex;align-items: center;justify-content: center;width: 30px;height: 30px;padding: 0;border: none;border-radius: 50%;background: none;color: var(--muted);cursor: pointer;transition: color 0.15s ease,background 0.15s ease;}.bm-btn .ico{width: 18px;height: 18px;}.bm-btn:hover{background: var(--hover-bg);color: var(--text);}.bm-btn.on{color: var(--text);}.bm-btn.on .ico{fill: currentColor;}.personal-card{margin-top: 20px;margin-bottom: 50px;border-radius: 22px;}.personal-card label{display: block;margin-bottom: 10px;font-size: 14px;font-weight: 600;color: var(--text);}.pc-row{display: flex;gap: 8px;}.pc-row input{flex: 1;min-width: 0;height: 36px;padding: 0 14px;border: none;border-radius: 100px;background: var(--search-bg);color: var(--text);font: inherit;font-size: 13.5px;outline: none;}.pc-row input.bad{border-color: #ef4444;}.pc-btn{height: 36px;padding: 0 18px;border: none;border-radius: 100px;background: var(--btn-primary-bg);color: var(--btn-primary-text);font: inherit;font-size: 13.5px;font-weight: 600;cursor: pointer;}main.prose .pc-hint{margin: 8px 0 0;font-size: 12.5px;line-height: 1.5;color: var(--muted);}.rec-badge{display: inline-flex;align-items: center;margin-left: 8px;padding: 2px 10px;border-radius: 100px;background: var(--btn-primary-bg);color: var(--btn-primary-text);font-size: 11.5px;font-weight: 700;letter-spacing: 0.02em;vertical-align: middle;white-space: nowrap;}tbody tr.rec-row td{background: var(--hover-bg);}tbody tr.rec-row td:first-child{padding-left: 12px;border-top-left-radius: 12px;border-bottom-left-radius: 12px;}tbody tr.rec-row td:last-child{padding-right: 12px;border-top-right-radius: 12px;border-bottom-right-radius: 12px;}#footer-note{margin: 0 0 16px;font-size: 13.5px;color: var(--muted);}.changelog,.contributors{margin: 20px 0;}.contributors{display: flex;flex-wrap: wrap;gap: 10px;}main.prose .muted-line{margin: 0;color: var(--muted);}.cl-item{padding: 16px 0;border-bottom: 1px solid var(--border-subtle);}.cl-meta{display: flex;flex-wrap: wrap;align-items: center;gap: 10px;font-size: 12.5px;color: var(--muted);}.cl-tag{padding: 2px 10px;border-radius: 100px;background: var(--hover-bg);color: var(--text);font-weight: 600;}.cl-title{margin-top: 8px;font-size: 16px;font-weight: 700;color: var(--text);}main.prose .cl-notes{margin: 6px 0 0;font-size: 14px;}.cl-link{display: inline-block;margin-top: 8px;font-size: 13px;}.ct-chip{display: inline-flex;align-items: center;gap: 8px;padding: 0px 14px 0px 5px;border-radius: 100px;background: var(--hover-bg);color: var(--text);;font-size: 13.5px;margin-right: 10px;height: 40px;align-items: center;}.ct-chip em{font-style: normal;font-size: 12px;color: var(--muted);}.ct-avatar{display: flex;align-items: center;justify-content: center;border-radius: 50%;background: var(--btn-primary-bg);color: var(--btn-primary-text);font-size: 12px;font-weight: 700;}.ct-avatar-img{width: 26px;height: 26px;}.confetti-canvas{position: fixed;inset: 0;width: 100%;height: 100%;pointer-events: none;z-index: 3000;}body:not(.is-home) main.prose{zoom: var(--text-scale,1);}body.no-deco .cobweb,body.no-deco .spider-container,body.no-deco .snowfall,body.no-deco .leaf-fall,body.no-deco .light-string{display: none!important;}body.no-video .video-bg,body.no-video .body-blurred-video,body.no-video .header-video{display: none!important;}body.no-motion *,body.no-motion *::before,body.no-motion *::after{animation: none!important;transition: none!important;scroll-behavior: auto!important;}@media (max-width: 900px){.rec-badge{margin-left: 0!important;margin-top: 10px!important;}}#search-modal{position: fixed;inset: 0;z-index: 100;display: none;}#search-modal.open{display: block;}.search-panel{position: relative;width: min(640px,calc(100vw - 24px));margin: 52px auto 0;border-radius: 20px;overflow: hidden;background: var(--search-panel-bg)!important;box-shadow: 0 20px 60px rgba(0,0,0,0.4);backdrop-filter: blur(10px);-webkit-backdrop-filter: blur(10px);}.search-input-row{display: flex;align-items: center;gap: 12px;padding: 18px 20px;}.search-input-row .ico{width: 18px;height: 18px;color: var(--muted);}#search-input{flex: 1;border: none;outline: none;background: transparent;color: var(--text);font: inherit;font-size: 18px;}#search-results{max-height: 40vh;overflow-y: auto;padding: 0 6px 8px;}.search-label{padding: 8px 14px;font-size: 12px;color: var(--muted);}.sr{display: flex;align-items: flex-start;gap: 12px;padding: 8px 12px;border-radius: 12px;}.sr>.ico{margin-top: 3px;color: var(--muted);}.sr.on{background: var(--hover-bg);}.sr-body{min-width: 0;}.sr .t{font-size: 14px;font-weight: 600;line-height: 1.35;color: var(--text);}.sr .s{display: -webkit-box;margin-top: 2px;font-size: 12.5px;line-height: 1.4;color: var(--muted);overflow: hidden;-webkit-line-clamp: 2;line-clamp: 2;-webkit-box-orient: vertical;}.sr .p{margin-top: 2px;font-size: 12px;line-height: 1.35;color: var(--muted);white-space: nowrap;overflow: hidden;text-overflow: ellipsis;}.sr .sep{margin: 0 6px;opacity: 0.7;}.sr .hit{font-weight: 700;color: var(--text);}.search-footer{display: flex;gap: 18px;padding: 12px 20px;font-size: 12px;color: var(--muted);border-top: 1px solid var(--border-subtle);}.search-footer .close-hint{margin-left: auto;}.search-footer kbd{margin-right: 4px;padding: 1px 5px;border-radius: 4px;font: 11px var(--font);}@media (max-width: 900px){.search-panel{margin-top: 50px;border-radius: 30px;}.search-footer{display: none;}}.sheet-overlay{position: fixed;inset: 0;z-index: 1000;display: flex;align-items: center;justify-content: center;opacity: 0;pointer-events: none;transition: opacity 0.35s cubic-bezier(0.16,1,0.3,1);}.sheet-overlay.active{opacity: 1;pointer-events: auto;}.sheet-backdrop{position: absolute;inset: 0;background: rgba(0,0,0,0.65);backdrop-filter: blur(8px);-webkit-backdrop-filter: blur(8px);}.sheet-panel{position: relative;width: min(500px,calc(100vw - 32px));background: var(--bg-modal);border-radius: 28px;backdrop-filter: blur(24px);-webkit-backdrop-filter: blur(24px);padding: 32px 28px 28px;box-sizing: border-box;transform: scale(0.92) translateY(16px);transition: transform 0.4s cubic-bezier(0.16,1,0.3,1);display: flex;flex-direction: column;}.sheet-overlay.active .sheet-panel{transform: scale(1) translateY(0);}.sheet-handle-bar{display: none;}.sheet-title{font-size: 22px;font-weight: 700;color: var(--text);margin: 0 0 10px;line-height: 1.3;text-align: center;}.sheet-desc{font-size: 14.5px;color: var(--muted);line-height: 1.6;margin: 0 0 24px;text-align: center;}.sheet-actions{display: flex;align-items: center;gap: 12px;justify-content: center;}.sheet-btn-primary{display: inline-flex;align-items: center;justify-content: center;padding: 10px 22px;border-radius: 100px;background: var(--btn-primary-bg);color: var(--btn-primary-text)!important;font-size: 14px;font-weight: 600;text-decoration: none!important;transition: transform 0.15s ease,opacity 0.15s ease;}.sheet-btn-primary:hover{opacity: 0.9;transform: translateY(-1px);}.sheet-btn-never{padding: 10px 18px;border: none;background: none;color: var(--muted);font: inherit;font-size: 13.5px;font-weight: 500;cursor: pointer;border-radius: 100px;transition: color 0.15s ease,background 0.15s ease;}.sheet-btn-never:hover{color: var(--text);background: var(--hover-bg);}@media (max-width: 900px){.sheet-overlay{align-items: flex-end;}.sheet-panel{width: 100%;max-width: 100%;border-radius: 28px 28px 0 0;border-bottom: none;padding: 14px 22px 32px;transform: translateY(100%);transition: transform 0.45s cubic-bezier(0.32,0.72,0,1);touch-action: none;max-height: 90vh;}.sheet-panel.dragging{transition: none!important;}.sheet-overlay.active .sheet-panel{transform: translateY(0);}.sheet-handle-bar{display: flex;align-items: center;justify-content: center;width: 100%;padding: 6px 0 16px;cursor: grab;}.sheet-handle{width: 40px;height: 5px;border-radius: 999px;background: var(--muted);opacity: 0.45;}.sheet-actions{flex-direction: column;width: 100%;gap: 8px;}.sheet-btn-primary{width: 100%;}.sheet-btn-never{width: 100%;text-align: center;}}@media (orientation: landscape) and (max-height: 550px){.sheet-panel{max-height: 94vh;overflow-y: auto;padding: 10px max(24px,env(safe-area-inset-right)) 16px max(24px,env(safe-area-inset-left));}.sheet-title{font-size: 18px;margin-bottom: 6px;}.sheet-desc{font-size: 13px;margin-bottom: 12px;line-height: 1.45;}.sheet-actions{flex-direction: row;gap: 10px;}.sheet-btn-primary,.sheet-btn-never{width: auto;padding: 8px 18px;font-size: 13px;}}.image-lightbox{position: fixed;inset: 0;z-index: 2000;background: transparent;backdrop-filter: blur(0px);-webkit-backdrop-filter: blur(0px);opacity: 0;pointer-events: none;transition: background 0.42s cubic-bezier(0.2,0.9,0.3,1),backdrop-filter 0.42s cubic-bezier(0.2,0.9,0.3,1),opacity 0.25s ease;}.image-lightbox.active{background: var(--bg-modal);backdrop-filter: blur(24px);-webkit-backdrop-filter: blur(24px);opacity: 1;pointer-events: auto;}.lightbox-controls{position: fixed;top: max(16px,env(safe-area-inset-top));right: max(16px,env(safe-area-inset-right));display: flex;align-items: center;gap: 3px;z-index: 2003;border-radius: 100px;padding: 3px 6px;backdrop-filter: blur(16px) saturate(5);-webkit-backdrop-filter: blur(16px) saturate(5);opacity: 0;transform: translateY(-8px) scale(0.96);transition: opacity 0.3s cubic-bezier(0.16,1,0.3,1) 0.08s,transform 0.3s cubic-bezier(0.16,1,0.3,1) 0.08s;}.image-lightbox.active .lightbox-controls{opacity: 1;transform: translateY(0) scale(1);}.lightbox-btn{display: flex;align-items: center;justify-content: center;width: 32px;height: 32px;border: none;border-radius: 50%;background: transparent;color: var(--muted);font-family: var(--font);font-size: 16px;line-height: 1;cursor: pointer;transition: background 0.15s ease,color 0.15s ease;}.lightbox-btn:hover{background: var(--hover-bg);color: var(--text);}.lightbox-btn svg{display: block;width: 16px;height: 16px;fill: currentColor;flex-shrink: 0;}.lightbox-img{position: fixed;object-fit: contain;border-radius: 16px;transition: top 0.44s cubic-bezier(0.2,0.9,0.3,1),left 0.44s cubic-bezier(0.2,0.9,0.3,1),width 0.44s cubic-bezier(0.2,0.9,0.3,1),height 0.44s cubic-bezier(0.2,0.9,0.3,1),border-radius 0.44s cubic-bezier(0.2,0.9,0.3,1),transform 0.25s ease;z-index: 2002;transform-origin: center center;will-change: top,left,width,height,transform;}main.prose img{cursor: zoom-in;transition: opacity 0.2s ease,transform 0.2s ease;}main.prose img:hover{opacity: 0.95;}#settings-trigger,.side-settings{display: flex;align-items: center;justify-content: center;width: 36px;height: 36px;padding: 0;border: none;border-radius: 10px;background: none;color: var(--muted);cursor: pointer;}#settings-trigger .ico,.side-settings .ico{width: 18px;height: 18px;}#settings-trigger:hover,.side-settings:hover{background: var(--hover-bg);color: var(--text);}.settings-panel{position: relative;display: flex;flex-direction: column;padding: 0;overflow: hidden;}.st-top,.st-bottom{position: absolute;left: 0;right: 0;z-index: 3;isolation: isolate;}.st-top::before,.st-bottom::before{content: "";position: absolute;inset: 0;z-index: -1;pointer-events: none;backdrop-filter: blur(18px) saturate(1.2);-webkit-backdrop-filter: blur(18px) saturate(1.2);}.st-top{top: 0;padding: 26px 28px 30px;}.st-top::before{background: linear-gradient(to bottom,var(--bg-menu) 40%,transparent);background: linear-gradient(to bottom,color-mix(in srgb,var(--bg-menu) 94%,transparent),color-mix(in srgb,var(--bg-menu) 80%,transparent) 60%,transparent);-webkit-mask-image: linear-gradient(to bottom,#000 55%,transparent);mask-image: linear-gradient(to bottom,#000 55%,transparent);}.st-top .sheet-title{margin: 0 0 6px;font-size: 20px;}.st-top .sheet-desc{margin: 0;font-size: 13.5px;line-height: 1.5;}.st-bottom{bottom: 0;display: flex;align-items: center;justify-content: flex-end;gap: 10px;padding: 36px 28px calc(20px + env(safe-area-inset-bottom));}.st-bottom::before{background: linear-gradient(to top,var(--bg-menu) 40%,transparent);background: linear-gradient(to top,color-mix(in srgb,var(--bg-menu) 94%,transparent),color-mix(in srgb,var(--bg-menu) 80%,transparent) 60%,transparent);-webkit-mask-image: linear-gradient(to top,#000 55%,transparent);mask-image: linear-gradient(to top,#000 55%,transparent);}.st-bottom .sheet-btn-primary{border: none;font-family: inherit;cursor: pointer;}.st-bottom .sheet-btn-primary.done{opacity: 0.85;}.st-scroll{flex: 1;min-height: 0;padding: var(--st-top,110px) 28px var(--st-bottom,84px);overflow-y: auto;overscroll-behavior: contain;touch-action: pan-y;scrollbar-width: thin;scrollbar-color: var(--border) transparent;}.st-group{margin-bottom: 18px;}.st-heading{margin: 0 0 8px 6px;font-size: 11px;font-weight: 700;letter-spacing: 0.08em;text-transform: uppercase;color: var(--muted);}.st-card{border-radius: 25px;background: var(--hover-bg);overflow: hidden;}.st-row,.st-field{display: flex;gap: 14px;padding: 14px 16px;border-top: 1px solid var(--border-subtle);cursor: default;}.st-card>:first-child{border-top: none;}.st-row{align-items: center;justify-content: space-between;}.st-row.stack{flex-direction: column;align-items: stretch;}label.st-row{cursor: pointer;}.st-field{flex-direction: column;align-items: stretch;gap: 8px;}.st-text{display: flex;flex-direction: column;gap: 2px;min-width: 0;}.st-label{font-size: 14px;font-weight: 600;line-height: 1.35;color: var(--text);}.st-hint{font-size: 12.5px;line-height: 1.45;color: var(--muted);}.st-hint.err{color: #ef4444;}.st-input{width: 100%;height: 40px;padding: 0 16px;border: none;border-radius: 100px;background: var(--search-bg);color: var(--text);font: inherit;font-size: 14px;outline: none;transition: border-color 0.15s ease;}.st-input::placeholder{color: var(--muted);opacity: 0.8;}.st-input:focus{border-color: var(--text);}.st-input.bad{border-color: #ef4444;}.st-swatches{display: flex;flex-wrap: wrap;align-items: center;gap: 12px;}.st-swatch{display: block;position: relative;flex-shrink: 0;width: 26px;height: 26px;padding: 0;border: none;border-radius: 50%;background: var(--sw,var(--hover-bg));cursor: pointer;transition: transform 0.15s ease,box-shadow 0.15s ease;}.st-swatch:hover{transform: scale(1.12);}.st-swatch.on{box-shadow: 0 0 0 2px var(--bg-menu),0 0 0 4px var(--text);;}.st-swatch.reset{background: linear-gradient(135deg,transparent 46%,var(--muted) 46%,var(--muted) 54%,transparent 54%),var(--search-bg);box-shadow: inset 0 0 0 1.5px var(--muted);}.st-swatch.reset.on{box-shadow: inset 0 0 0 1.5px var(--muted),0 0 0 2px var(--bg-menu),0 0 0 4px var(--text);;}.st-swatch.custom{background: conic-gradient(from 0deg,#ff5c5c,#f4b942,#5fd68f,#8ad1ff,#c084fc,#ff5c5c);}.st-swatch.custom input{position: absolute;inset: 0;width: 100%;height: 100%;padding: 0;border: none;opacity: 0;cursor: pointer;}.st-seg{display: flex;gap: 2px;padding: 3px;border-radius: 100px;background: var(--search-bg);}.st-seg button{flex: 1;height: 32px;padding: 0 10px;border: none;border-radius: 100px;background: none;color: var(--muted);font: inherit;font-size: 13px;font-weight: 600;cursor: pointer;transition: background 0.15s ease,color 0.15s ease;}.st-seg button:hover{color: var(--text);}.st-seg button.on{background: var(--btn-primary-bg);color: var(--btn-primary-text);}.st-switch{position: relative;flex-shrink: 0;width: 44px;height: 26px;}.st-switch input{position: absolute;inset: 0;z-index: 1;width: 100%;height: 100%;margin: 0;opacity: 0;cursor: pointer;}.st-track{position: absolute;inset: 0;border: 1px solid var(--border);border-radius: 100px;background: var(--search-bg);transition: background 0.2s ease,border-color 0.2s ease;}.st-track::after{content: "";position: absolute;top: 2px;left: 2px;width: 20px;height: 20px;border-radius: 50%;background: var(--muted);transition: transform 0.25s cubic-bezier(0.16,1,0.3,1),background 0.2s ease;}.st-switch input:checked+.st-track{border-color: transparent;background: var(--btn-primary-bg);}.st-switch input:checked+.st-track::after{transform: translateX(18px);background: var(--btn-primary-text);}.st-switch input:focus-visible+.st-track{outline: 2px solid var(--text);outline-offset: 2px;}@media (min-width: 901px){.settings-panel{width: min(540px,calc(100vw - 32px));max-height: min(88vh,780px);}}@media (max-width: 900px){.st-top{padding: 8px 22px 28px;}.st-scroll{padding-left: 22px;padding-right: 22px;}.st-bottom{padding: 36px 22px calc(18px + env(safe-area-inset-bottom));}.st-bottom .sheet-btn-primary{flex: 1;width: auto;}.st-bottom .sheet-btn-never{flex: 0 0 auto;width: auto;}}@media (orientation: landscape) and (max-height: 550px){.settings-panel{max-height: 94vh;}.st-top{padding: 14px 24px 22px;}.st-top .sheet-title{font-size: 17px;margin-bottom: 0;}.st-top .sheet-desc{display: none;}}main.prose{flex: 1;min-width: 0;max-width: 100%;width: 100%;box-sizing: border-box;}main.prose .eyebrow{font-size: 14px;font-weight: 600;margin: 0 0 8px;color: var(--text);display: flex;align-items: center;justify-content: space-between;gap: 12px;}main.prose h1{font-size: 30px;font-weight: 700;letter-spacing: 0;margin: 0 0 6px;color: var(--text);}main.prose .page-description{color: var(--muted);font-size: 18px;margin: 0 0 32px;}main.prose h2{font-size: 22px;font-weight: 700;margin: 40px 0 14px;padding-top: 6px;}main.prose h2:first-child{border-top: none;padding-top: 0;}main.prose h3{font-size: 17px;font-weight: 700;margin: 26px 0 10px;}main.prose h2,main.prose h3{scroll-margin-top: 130px;color: var(--text);}main.prose p,main.prose li{color: var(--muted);line-height: 1.75;}main.prose strong{color: var(--text);}main.prose a{color: var(--text);;font-weight: 600;text-decoration: underline;}main.prose ul,main.prose ol{padding-left: 22px;}main.prose li{margin: 4px 0;}main.prose img{max-width: 100%;border-radius: 16px;display: block;margin: 20px 0;}main.prose img.vyla-banner{width: 100%;}main.prose hr{border: none;}main.prose code{background: var(--code-inline-bg);color: var(--text);font-family: var(--mono);font-size: 13px;padding: 2px 6px;border-radius: 5px;}main.prose pre{margin: 16px 0;padding: 16px 20px;border-radius: 25px;overflow-x: auto;background: var(--bg-code);color: var(--code-text);--fade-l: 0px;--fade-r: 0px;scrollbar-width: none;-webkit-mask-image: linear-gradient(to right,transparent 0,#000 var(--fade-l),#000 calc(100% - var(--fade-r)),transparent 100%);mask-image: linear-gradient(to right,transparent 0,#000 var(--fade-l),#000 calc(100% - var(--fade-r)),transparent 100%);}main.prose pre code{background: none;padding: 0;font-size: 13px;color: inherit;}.table-wrap{--fade-l: 0px;--fade-r: 0px;max-width: 100%;margin: 20px 0;overflow-x: auto;scrollbar-width: thin;border-radius: 14px;-webkit-mask-image: linear-gradient(to right,transparent 0,#000 var(--fade-l),#000 calc(100% - var(--fade-r)),transparent 100%);mask-image: linear-gradient(to right,transparent 0,#000 var(--fade-l),#000 calc(100% - var(--fade-r)),transparent 100%);}.table-wrap table{margin: 0;}table{width: 100%;border-collapse: separate;border-spacing: 0;margin: 0;font-size: 13.5px;line-height: 1.55;text-align: left;}th{padding: 12px 5px;font-size: 11.5px;font-weight: 600;text-transform: uppercase;letter-spacing: 0.05em;color: var(--muted);white-space: nowrap;}td{padding: 14px 5px;vertical-align: top;border-bottom: 1px solid var(--border-subtle);color: var(--text);;}tbody tr:last-child td{border-bottom: none;}tbody tr{transition: background 0.15s ease;}tbody tr:hover{background: var(--hover-bg);}td code{white-space: nowrap;font-size: 12.5px;}.callout{display: flex;gap: 12px;padding: 14px 11px;border-radius: 25px;font-size: 14px;}.callout-content{flex: 1;}.callout-content>:first-child{margin-top: 0;}.callout-content>:last-child{margin-bottom: 0;}.callout-note{background: var(--callout-note-bg);}.callout-info{background: var(--callout-info-bg);}.callout-warning{background: var(--callout-warning-bg)!important;color: var(--callout-warning-text)!important;}.callout-warning p,.callout-warning strong{color: inherit!important;}aside#toc{width: var(--toc-width);flex-shrink: 0;display: none;border-radius: 12px;padding-left: 10px;height: fit-content;max-height: calc(100vh - var(--header-height) - 40px);padding-bottom: 10px;overflow-y: auto;position: sticky;top: calc(var(--header-height) + 40px);}@media (min-width: 1100px){aside#toc{display: block;}}aside#toc .toc-title{display: flex;align-items: center;gap: 8px;font-size: 14px;font-weight: 600;line-height: 20px;color: var(--text);margin-bottom: 2px;}aside#toc .toc-title::before{content: "";width: 16px;height: 16px;background: currentColor;-webkit-mask: var(--ico-toc-mask) center / contain no-repeat;mask: var(--ico-toc-mask) center / contain no-repeat;}aside#toc ul{list-style: none;margin: 0;padding: 0;}aside#toc li a{display: block;padding: 6px 0;font-size: 14px;line-height: 20px;color: var(--muted);}aside#toc li a:hover{color: var(--text);}aside#toc li a.active{color: var(--text);font-weight: 600;}@media (max-width: 900px){aside#toc{display: none;}}@supports (-webkit-touch-callout: none){#main-wrap{margin-top: max(130px,env(safe-area-inset-top));}body.is-home{margin-top: 0px!important;}}pre[class*="language-"],code[class*="language-"]{color: var(--code-text);}.token.comment,.token.prolog,.token.doctype,.token.cdata{color: var(--hl-comment)!important;font-style: italic;}.token.punctuation{color: var(--hl-punct)!important;}.token.namespace{opacity: 0.7;}.token.property,.token.tag,.token.boolean,.token.number,.token.constant,.token.symbol,.token.deleted{color: var(--hl-num)!important;}.token.selector,.token.attr-name,.token.string,.token.char,.token.builtin,.token.inserted{color: var(--hl-string)!important;}.token.operator,.token.entity,.token.url,.language-css .token.string,.style .token.string{color: var(--hl-op)!important;}.token.atrule,.token.attr-value,.token.keyword{color: var(--hl-keyword)!important;font-weight: 600;}.token.function,.token.function-name,.token.class-name{color: var(--hl-func)!important;font-weight: 500;}.token.regex,.token.important,.token.variable,.token.parameter{color: var(--hl-var)!important;}.token.bold{font-weight: 700;}.token.italic{font-style: italic;}body.is-404 #sidebar,body.is-404 #toc,body.is-404 #mobile-bar,body.is-404 .footer-nav{display: none!important;}body.is-404 #content-wrapper{padding: 0!important;margin: 0 auto!important;max-width: 100%!important;width: 100%!important;}body.is-404 #content-col,body.is-404 #main-wrap,body.is-404 #main-content{max-width: 100%!important;width: 100%!important;margin: 0!important;}body.is-404 .error-container{display: flex;flex-direction: column;align-items: center;justify-content: center;min-height: calc(80vh - 120px);padding: 40px 20px;box-sizing: border-box;text-align: center;}body.is-404 .error-code{margin: 0 0 16px;color: var(--text);font-size: clamp(74px,14vw,112px);font-weight: 700;line-height: 1;letter-spacing: -2px;}body.is-404 .error-title{margin: 0 0 24px;color: var(--text);font-size: 18px;font-weight: 800;letter-spacing: 0.12em;text-transform: uppercase;}body.is-404 .error-desc{max-width: 440px;margin: 0 0 32px;color: var(--muted);font-size: 15.5px;line-height: 1.6;}body.is-404 .btn-home{display: inline-flex;align-items: center;justify-content: center;padding: 10px 28px;border-radius: 9999px;background: var(--btn-home-bg);color: var(--btn-home-text)!important;font-size: 14.5px;font-weight: 500;text-decoration: none!important;transition: background 0.2s ease,border-color 0.2s ease,color 0.2s ease;} \ No newline at end of file diff --git a/src/css/features.css b/src/css/features.css index 7ffb7f9..dfcb8c1 100644 --- a/src/css/features.css +++ b/src/css/features.css @@ -30,7 +30,7 @@ } .copy-md-btn.copied { - color: #10b981; + color: var(--muted); } .bm-btn { diff --git a/src/js/prism.js b/src/js/prism.js index 031abbf..2d916f7 100644 --- a/src/js/prism.js +++ b/src/js/prism.js @@ -1,17 +1,17 @@ -var _self="undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{},Prism=function(l){var n=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,e={},j={manual:l.Prism&&l.Prism.manual,disableWorkerMessageHandler:l.Prism&&l.Prism.disableWorkerMessageHandler,util:{encode:function e(t){return t instanceof C?new C(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/=i.reach);y+=b.value.length,b=b.next){var v=b.value;if(n.length>t.length)return;if(!(v instanceof C)){var F,x=1;if(m){if(!(F=L(f,y,t,p))||F.index>=t.length)break;var k=F.index,w=F.index+F[0].length,A=y;for(A+=b.value.length;A<=k;)b=b.next,A+=b.value.length;if(A-=b.value.length,y=A,b.value instanceof C)continue;for(var P=b;P!==n.tail&&(Ai.reach&&(i.reach=v),b.prev),S=(S&&(_=z(n,_,S),y+=S.length),O(n,_,x),new C(o,d?j.tokenize($,d):$,h,$));b=z(n,_,S),E&&z(n,b,E),1i.reach&&(i.reach=$.reach))}}}}}(e,r,t,r.head,0),r),i=[],o=s.head.next;o!==s.tail;)i.push(o.value),o=o.next;return i},hooks:{all:{},add:function(e,t){var n=j.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=j.hooks.all[e];if(n&&n.length)for(var a,r=0;a=n[r++];)a(t)}},Token:C};function C(e,t,n,a){this.type=e,this.content=t,this.alias=n,this.length=0|(a||"").length}function L(e,t,n,a){e.lastIndex=t;t=e.exec(n);return t&&a&&t[1]&&(e=t[1].length,t.index+=e,t[0]=t[0].slice(e)),t}function u(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function z(e,t,n){var a=t.next,n={value:n,prev:t,next:a};return t.next=n,a.prev=n,e.length++,n}function O(e,t,n){for(var a=t.next,r=0;r"+s.content+""},!l.document)return l.addEventListener&&(j.disableWorkerMessageHandler||l.addEventListener("message",function(e){var e=JSON.parse(e.data),t=e.language,n=e.code,e=e.immediateClose;l.postMessage(j.highlight(n,j.languages[t],t)),e&&l.close()},!1)),j;var a,e=j.util.currentScript();function r(){j.manual||j.highlightAll()}return e&&(j.filename=e.src,e.hasAttribute("data-manual")&&(j.manual=!0)),j.manual||("loading"===(a=document.readyState)||"interactive"===a&&e&&e.defer?document.addEventListener("DOMContentLoaded",r):window.requestAnimationFrame?window.requestAnimationFrame(r):window.setTimeout(r,16)),j}(_self);"undefined"!=typeof module&&module.exports&&(module.exports=Prism),"undefined"!=typeof global&&(global.Prism=Prism),Prism.languages.markup={comment:{pattern://,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},Prism.languages.markup.tag.inside["attr-value"].inside.entity=Prism.languages.markup.entity,Prism.languages.markup.doctype.inside["internal-subset"].inside=Prism.languages.markup,Prism.hooks.add("wrap",function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))}),Object.defineProperty(Prism.languages.markup.tag,"addInlined",{value:function(e,t){var n={},n=(n["language-"+t]={pattern:/(^$)/i,lookbehind:!0,inside:Prism.languages[t]},n.cdata=/^$/i,{"included-cdata":{pattern://i,inside:n}}),t=(n["language-"+t]={pattern:/[\s\S]+/,inside:Prism.languages[t]},{});t[e]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,function(){return e}),"i"),lookbehind:!0,greedy:!0,inside:n},Prism.languages.insertBefore("markup","cdata",t)}}),Object.defineProperty(Prism.languages.markup.tag,"addAttribute",{value:function(e,t){Prism.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:Prism.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),Prism.languages.html=Prism.languages.markup,Prism.languages.mathml=Prism.languages.markup,Prism.languages.svg=Prism.languages.markup,Prism.languages.xml=Prism.languages.extend("markup",{}),Prism.languages.ssml=Prism.languages.xml,Prism.languages.atom=Prism.languages.xml,Prism.languages.rss=Prism.languages.xml,function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/,t=(e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+t.source+")*?"+/(?:;|(?=\s*\{))/.source),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css,e.languages.markup);t&&(t.tag.addInlined("style","css"),t.tag.addAttribute("style","css"))}(Prism),Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},Prism.languages.javascript=Prism.languages.extend("clike",{"class-name":[Prism.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),Prism.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:Prism.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:Prism.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),Prism.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:Prism.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),Prism.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),Prism.languages.markup&&(Prism.languages.markup.tag.addInlined("script","javascript"),Prism.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),Prism.languages.js=Prism.languages.javascript,function(){var l,u,g,c,e;void 0!==Prism&&"undefined"!=typeof document&&(Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector),l={js:"javascript",py:"python",rb:"ruby",ps1:"powershell",psm1:"powershell",sh:"bash",bat:"batch",h:"c",tex:"latex"},c="pre[data-src]:not(["+(u="data-src-status")+'="loaded"]):not(['+u+'="'+(g="loading")+'"])',Prism.hooks.add("before-highlightall",function(e){e.selector+=", "+c}),Prism.hooks.add("before-sanity-check",function(e){var r,t,n,a,s,i,o=e.element;o.matches(c)&&(e.code="",o.setAttribute(u,g),(r=o.appendChild(document.createElement("CODE"))).textContent="Loading…",t=o.getAttribute("data-src"),"none"===(e=e.language)&&(n=(/\.(\w+)$/.exec(t)||[,"none"])[1],e=l[n]||n),Prism.util.setLanguage(r,e),Prism.util.setLanguage(o,e),(n=Prism.plugins.autoloader)&&n.loadLanguages(e),n=t,a=function(e){o.setAttribute(u,"loaded");var t,n,a=function(e){var t,n;if(e=/^\s*(\d+)\s*(?:(,)\s*(?:(\d+)\s*)?)?$/.exec(e||""))return t=Number(e[1]),n=e[2],e=e[3],n?e?[t,Number(e)]:[t,void 0]:[t,t]}(o.getAttribute("data-range"));a&&(t=e.split(/\r\n?|\n/g),n=a[0],a=null==a[1]?t.length:a[1],n<0&&(n+=t.length),n=Math.max(0,Math.min(n-1,t.length)),a<0&&(a+=t.length),a=Math.max(0,Math.min(a,t.length)),e=t.slice(n,a).join("\n"),o.hasAttribute("data-start")||o.setAttribute("data-start",String(n+1))),r.textContent=e,Prism.highlightElement(r)},s=function(e){o.setAttribute(u,"failed"),r.textContent=e},(i=new XMLHttpRequest).open("GET",n,!0),i.onreadystatechange=function(){4==i.readyState&&(i.status<400&&i.responseText?a(i.responseText):400<=i.status?s("βœ– Error "+i.status+" while fetching file: "+i.statusText):s("βœ– Error: File does not exist or is empty"))},i.send(null))}),e=!(Prism.plugins.fileHighlight={highlight:function(e){for(var t,n=(e||document).querySelectorAll(c),a=0;t=n[a++];)Prism.highlightElement(t)}}),Prism.fileHighlight=function(){e||(console.warn("Prism.fileHighlight is deprecated. Use `Prism.plugins.fileHighlight.highlight` instead."),e=!0),Prism.plugins.fileHighlight.highlight.apply(this,arguments)})}();; -!function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",a={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},n={bash:a,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?:\.\w+)*(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},parameter:{pattern:/(^|\s)-{1,2}(?:\w+:[+-]?)?\w+(?:\.\w+)*(?=[=\s]|$)/,alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:n},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:a}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:n},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:n.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:n.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cargo|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|java|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|sysctl|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},a.inside=e.languages.bash;for(var s=["comment","function-name","for-or-select","assign-left","parameter","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],o=n.variable[1].inside,i=0;i/,lookbehind:!0},{pattern:/(^|[^`])#.*/,lookbehind:!0}],string:[{pattern:/"(?:`[\s\S]|[^`"])*"/,greedy:!0,inside:null},{pattern:/'(?:[^']|'')*'/,greedy:!0}],namespace:/\[[a-z](?:\[(?:\[[^\]]*\]|[^\[\]])*\]|[^\[\]])*\]/i,boolean:/\$(?:false|true)\b/i,variable:/\$\w+\b/,function:[/\b(?:Add|Approve|Assert|Backup|Block|Checkpoint|Clear|Close|Compare|Complete|Compress|Confirm|Connect|Convert|ConvertFrom|ConvertTo|Copy|Debug|Deny|Disable|Disconnect|Dismount|Edit|Enable|Enter|Exit|Expand|Export|Find|ForEach|Format|Get|Grant|Group|Hide|Import|Initialize|Install|Invoke|Join|Limit|Lock|Measure|Merge|Move|New|Open|Optimize|Out|Ping|Pop|Protect|Publish|Push|Read|Receive|Redo|Register|Remove|Rename|Repair|Request|Reset|Resize|Resolve|Restart|Restore|Resume|Revoke|Save|Search|Select|Send|Set|Show|Skip|Sort|Split|Start|Step|Stop|Submit|Suspend|Switch|Sync|Tee|Test|Trace|Unblock|Undo|Uninstall|Unlock|Unprotect|Unpublish|Unregister|Update|Use|Wait|Watch|Where|Write)-[a-z]+\b/i,/\b(?:ac|cat|chdir|clc|cli|clp|clv|compare|copy|cp|cpi|cpp|cvpa|dbp|del|diff|dir|ebp|echo|epal|epcsv|epsn|erase|fc|fl|ft|fw|gal|gbp|gc|gci|gcs|gdr|gi|gl|gm|gp|gps|group|gsv|gu|gv|gwmi|iex|ii|ipal|ipcsv|ipsn|irm|iwmi|iwr|kill|lp|ls|measure|mi|mount|move|mp|mv|nal|ndr|ni|nv|ogv|popd|ps|pushd|pwd|rbp|rd|rdr|ren|ri|rm|rmdir|rni|rnp|rp|rv|rvpa|rwmi|sal|saps|sasv|sbp|sc|select|set|shcm|si|sl|sleep|sls|sort|sp|spps|spsv|start|sv|swmi|tee|trcm|type|write)\b/i],keyword:/\b(?:Begin|Break|Catch|Class|Continue|Data|Define|Do|DynamicParam|Else|ElseIf|End|Exit|Filter|Finally|For|ForEach|From|Function|If|InlineScript|Parallel|Param|Process|Return|Sequence|Switch|Throw|Trap|Try|Until|Using|Var|While|Workflow)\b/i,operator:{pattern:/(^|\W)(?:!|-(?:b?(?:and|x?or)|as|(?:Not)?(?:Contains|In|Like|Match)|eq|ge|gt|is(?:Not)?|Join|le|lt|ne|not|Replace|sh[lr])\b|-[-=]?|\+[+=]?|[*\/%]=?)/i,lookbehind:!0},punctuation:/[|{}[\];(),.]/};i.string[0].inside={function:{pattern:/(^|[^`])\$\((?:\$\([^\r\n()]*\)|(?!\$\()[^\r\n)])*\)/,lookbehind:!0,inside:i},boolean:i.boolean,variable:i.variable}}(Prism);; -!function(e){e.languages.typescript=e.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var s=e.languages.extend("typescript",{});delete s["class-name"],e.languages.typescript["class-name"].inside=s,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:s}}}}),e.languages.ts=e.languages.typescript}(Prism);; -Prism.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},Prism.languages.webmanifest=Prism.languages.json;; -!function(e){var n=/[*&][^\s[\]{},]+/,r=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,t="(?:"+r.source+"(?:[ \t]+"+n.source+")?|"+n.source+"(?:[ \t]+"+r.source+")?)",a="(?:[^\\s\\x00-\\x08\\x0e-\\x1f!\"#%&'*,\\-:>?@[\\]`{|}\\x7f-\\x84\\x86-\\x9f\\ud800-\\udfff\\ufffe\\uffff]|[?:-])(?:[ \t]*(?:(?![#:])|:))*".replace(//g,(function(){return"[^\\s\\x00-\\x08\\x0e-\\x1f,[\\]{}\\x7f-\\x84\\x86-\\x9f\\ud800-\\udfff\\ufffe\\uffff]"})),d="\"(?:[^\"\\\\\r\n]|\\\\.)*\"|'(?:[^'\\\\\r\n]|\\\\.)*'";function o(e,n){n=(n||"").replace(/m/g,"")+"m";var r="([:\\-,[{]\\s*(?:\\s<>[ \t]+)?)(?:<>)(?=[ \t]*(?:$|,|\\]|\\}|(?:[\r\n]\\s*)?#))".replace(/<>/g,(function(){return t})).replace(/<>/g,(function(){return e}));return RegExp(r,n)}e.languages.yaml={scalar:{pattern:RegExp("([\\-:]\\s*(?:\\s<>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\\S[^\r\n]*(?:\\2[^\r\n]+)*)".replace(/<>/g,(function(){return t}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp("((?:^|[:\\-,[{\r\n?])[ \t]*(?:<>[ \t]+)?)<>(?=\\s*:\\s)".replace(/<>/g,(function(){return t})).replace(/<>/g,(function(){return"(?:"+a+"|"+d+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:o("\\d{4}-\\d\\d?-\\d\\d?(?:[tT]|[ \t]+)\\d\\d?:\\d{2}:\\d{2}(?:\\.\\d*)?(?:[ \t]*(?:Z|[-+]\\d\\d?(?::\\d{2})?))?|\\d{4}-\\d{2}-\\d{2}|\\d\\d?:\\d{2}(?::\\d{2}(?:\\.\\d*)?)?"),lookbehind:!0,alias:"number"},boolean:{pattern:o("false|true","i"),lookbehind:!0,alias:"important"},null:{pattern:o("null|~","i"),lookbehind:!0,alias:"important"},string:{pattern:o(d),lookbehind:!0,greedy:!0},number:{pattern:o("[+-]?(?:0x[\\da-f]+|0o[0-7]+|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?|\\.inf|\\.nan)","i"),lookbehind:!0},tag:r,important:n,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(Prism);; -!function(n){function e(n){return n=n.replace(//g,(function(){return"(?:\\\\.|[^\\\\\n\r]|(?:\n|\r\n?)(?![\r\n]))"})),RegExp("((?:^|[^\\\\])(?:\\\\{2})*)(?:"+n+")")}var t="(?:\\\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\\\|\r\n`])+",a="\\|?__(?:\\|__)+\\|?(?:(?:\n|\r\n?)|(?![^]))".replace(/__/g,(function(){return t})),i="\\|?[ \t]*:?-{3,}:?[ \t]*(?:\\|[ \t]*:?-{3,}:?[ \t]*)+\\|?(?:\n|\r\n?)";n.languages.markdown=n.languages.extend("markup",{}),n.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:n.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+a+i+"(?:"+a+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+a+i+")(?:"+a+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(t),inside:n.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+a+")"+i+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+a+"$"),inside:{"table-header":{pattern:RegExp(t),alias:"important",inside:n.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:e("\\b__(?:(?!_)|_(?:(?!_))+_)+__\\b|\\*\\*(?:(?!\\*)|\\*(?:(?!\\*))+\\*)+\\*\\*"),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:e("\\b_(?:(?!_)|__(?:(?!_))+__)+_\\b|\\*(?:(?!\\*)|\\*\\*(?:(?!\\*))+\\*\\*)+\\*"),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:e("(~~?)(?:(?!~))+\\2"),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:e('!?\\[(?:(?!\\]))+\\](?:\\([^\\s)]+(?:[\t ]+"(?:\\\\.|[^"\\\\])*")?\\)|[ \t]?\\[(?:(?!\\]))+\\])'),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(e){["url","bold","italic","strike","code-snippet"].forEach((function(t){e!==t&&(n.languages.markdown[e].inside.content.inside[t]=n.languages.markdown[t])}))})),n.hooks.add("after-tokenize",(function(n){"markdown"!==n.language&&"md"!==n.language||function n(e){if(e&&"string"!=typeof e)for(var t=0,a=e.length;t",quot:'"'},l=String.fromCodePoint||String.fromCharCode;n.languages.md=n.languages.markdown}(Prism);; -!function(t){function a(t){return RegExp("(^(?:"+t+"):[ \t]*(?![ \t]))[^]+","i")}t.languages.http={"request-line":{pattern:/^(?:CONNECT|DELETE|GET|HEAD|OPTIONS|PATCH|POST|PRI|PUT|SEARCH|TRACE)\s(?:https?:\/\/|\/)\S*\sHTTP\/[\d.]+/m,inside:{method:{pattern:/^[A-Z]+\b/,alias:"property"},"request-target":{pattern:/^(\s)(?:https?:\/\/|\/)\S*(?=\s)/,lookbehind:!0,alias:"url",inside:t.languages.uri},"http-version":{pattern:/^(\s)HTTP\/[\d.]+/,lookbehind:!0,alias:"property"}}},"response-status":{pattern:/^HTTP\/[\d.]+ \d+ .+/m,inside:{"http-version":{pattern:/^HTTP\/[\d.]+/,alias:"property"},"status-code":{pattern:/^(\s)\d+(?=\s)/,lookbehind:!0,alias:"number"},"reason-phrase":{pattern:/^(\s).+/,lookbehind:!0,alias:"string"}}},header:{pattern:/^[\w-]+:.+(?:(?:\r\n?|\n)[ \t].+)*/m,inside:{"header-value":[{pattern:a("Content-Security-Policy"),lookbehind:!0,alias:["csp","languages-csp"],inside:t.languages.csp},{pattern:a("Public-Key-Pins(?:-Report-Only)?"),lookbehind:!0,alias:["hpkp","languages-hpkp"],inside:t.languages.hpkp},{pattern:a("Strict-Transport-Security"),lookbehind:!0,alias:["hsts","languages-hsts"],inside:t.languages.hsts},{pattern:a("[^:]+"),lookbehind:!0}],"header-name":{pattern:/^[^:]+/,alias:"keyword"},punctuation:/^:/}}};var e,n=t.languages,s={"application/javascript":n.javascript,"application/json":n.json||n.javascript,"application/xml":n.xml,"text/xml":n.xml,"text/html":n.html,"text/css":n.css,"text/plain":n.plain},i={"application/json":!0,"application/xml":!0};function r(t){var a=t.replace(/^[a-z]+\//,"");return"(?:"+t+"|\\w+/(?:[\\w.-]+\\+)+"+a+"(?![+\\w.-]))"}for(var p in s)if(s[p]){e=e||{};var l=i[p]?r(p):p;e[p.replace(/\//g,"-")]={pattern:RegExp("(content-type:\\s*"+l+"(?:(?:\r\n?|\n)[\\w-].*)*(?:\r(?:\n|(?!\n))|\n))[^ \t\\w-][^]*","i"),lookbehind:!0,inside:s[p]}}e&&t.languages.insertBefore("http","header",e)}(Prism);; -Prism.languages.ini={comment:{pattern:/(^[ \f\t\v]*)[#;][^\n\r]*/m,lookbehind:!0},section:{pattern:/(^[ \f\t\v]*)\[[^\n\r\]]*\]?/m,lookbehind:!0,inside:{"section-name":{pattern:/(^\[[ \f\t\v]*)[^ \f\t\v\]]+(?:[ \f\t\v]+[^ \f\t\v\]]+)*/,lookbehind:!0,alias:"selector"},punctuation:/\[|\]/}},key:{pattern:/(^[ \f\t\v]*)[^ \f\n\r\t\v=]+(?:[ \f\t\v]+[^ \f\n\r\t\v=]+)*(?=[ \f\t\v]*=)/m,lookbehind:!0,alias:"attr-name"},value:{pattern:/(=[ \f\t\v]*)[^ \f\n\r\t\v]+(?:[ \f\t\v]+[^ \f\n\r\t\v]+)*/,lookbehind:!0,alias:"attr-value",inside:{"inner-value":{pattern:/^("|').+(?=\1$)/,lookbehind:!0}}},punctuation:/=/};; -Prism.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},Prism.languages.python["string-interpolation"].inside.interpolation.inside.rest=Prism.languages.python,Prism.languages.py=Prism.languages.python;; -!function(e){for(var a="/\\*(?:[^*/]|\\*(?!/)|/(?!\\*)|)*\\*/",t=0;t<2;t++)a=a.replace(//g,(function(){return a}));a=a.replace(//g,(function(){return"[^\\s\\S]"})),e.languages.rust={comment:[{pattern:RegExp("(^|[^\\\\])"+a),lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/b?"(?:\\[\s\S]|[^\\"])*"|b?r(#*)"(?:[^"]|"(?!\1))*"\1/,greedy:!0},char:{pattern:/b?'(?:\\(?:x[0-7][\da-fA-F]|u\{(?:[\da-fA-F]_*){1,6}\}|.)|[^\\\r\n\t'])'/,greedy:!0},attribute:{pattern:/#!?\[(?:[^\[\]"]|"(?:\\[\s\S]|[^\\"])*")*\]/,greedy:!0,alias:"attr-name",inside:{string:null}},"closure-params":{pattern:/([=(,:]\s*|\bmove\s*)\|[^|]*\||\|[^|]*\|(?=\s*(?:\{|->))/,lookbehind:!0,greedy:!0,inside:{"closure-punctuation":{pattern:/^\||\|$/,alias:"punctuation"},rest:null}},"lifetime-annotation":{pattern:/'\w+/,alias:"symbol"},"fragment-specifier":{pattern:/(\$\w+:)[a-z]+/,lookbehind:!0,alias:"punctuation"},variable:/\$\w+/,"function-definition":{pattern:/(\bfn\s+)\w+/,lookbehind:!0,alias:"function"},"type-definition":{pattern:/(\b(?:enum|struct|trait|type|union)\s+)\w+/,lookbehind:!0,alias:"class-name"},"module-declaration":[{pattern:/(\b(?:crate|mod)\s+)[a-z][a-z_\d]*/,lookbehind:!0,alias:"namespace"},{pattern:/(\b(?:crate|self|super)\s*)::\s*[a-z][a-z_\d]*\b(?:\s*::(?:\s*[a-z][a-z_\d]*\s*::)*)?/,lookbehind:!0,alias:"namespace",inside:{punctuation:/::/}}],keyword:[/\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/,/\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\b/],function:/\b[a-z_]\w*(?=\s*(?:::\s*<|\())/,macro:{pattern:/\b\w+!/,alias:"property"},constant:/\b[A-Z_][A-Z_\d]+\b/,"class-name":/\b[A-Z]\w*\b/,namespace:{pattern:/(?:\b[a-z][a-z_\d]*\s*::\s*)*\b[a-z][a-z_\d]*\s*::(?!\s*<)/,inside:{punctuation:/::/}},number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\b/,boolean:/\b(?:false|true)\b/,punctuation:/->|\.\.=|\.{1,3}|::|[{}[\];(),:]/,operator:/[-+*\/%!^]=?|=[=>]?|&[&=]?|\|[|=]?|<>?=?|[@?]/},e.languages.rust["closure-params"].inside.rest=e.languages.rust,e.languages.rust.attribute.inside.string=e.languages.rust.string}(Prism);; -!function(n){n.languages.kotlin=n.languages.extend("clike",{keyword:{pattern:/(^|[^.])\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\b/,lookbehind:!0},function:[{pattern:/(?:`[^\r\n`]+`|\b\w+)(?=\s*\()/,greedy:!0},{pattern:/(\.)(?:`[^\r\n`]+`|\w+)(?=\s*\{)/,lookbehind:!0,greedy:!0}],number:/\b(?:0[xX][\da-fA-F]+(?:_[\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?[fFL]?)\b/,operator:/\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\/*%<>]=?|[?:]:?|\.\.|&&|\|\||\b(?:and|inv|or|shl|shr|ushr|xor)\b/}),delete n.languages.kotlin["class-name"];var e={"interpolation-punctuation":{pattern:/^\$\{?|\}$/,alias:"punctuation"},expression:{pattern:/[\s\S]+/,inside:n.languages.kotlin}};n.languages.insertBefore("kotlin","string",{"string-literal":[{pattern:/"""(?:[^$]|\$(?:(?!\{)|\{[^{}]*\}))*?"""/,alias:"multiline",inside:{interpolation:{pattern:/\$(?:[a-z_]\w*|\{[^{}]*\})/i,inside:e},string:/[\s\S]+/}},{pattern:/"(?:[^"\\\r\n$]|\\.|\$(?:(?!\{)|\{[^{}]*\}))*"/,alias:"singleline",inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:[a-z_]\w*|\{[^{}]*\})/i,lookbehind:!0,inside:e},string:/[\s\S]+/}}],char:{pattern:/'(?:[^'\\\r\n]|\\(?:.|u[a-fA-F0-9]{0,4}))'/,greedy:!0}}),delete n.languages.kotlin.string,n.languages.insertBefore("kotlin","keyword",{annotation:{pattern:/\B@(?:\w+:)?(?:[A-Z]\w*|\[[^\]]+\])/,alias:"builtin"}}),n.languages.insertBefore("kotlin","function",{label:{pattern:/\b\w+@|@\w+\b/,alias:"symbol"}}),n.languages.kt=n.languages.kotlin,n.languages.kts=n.languages.kotlin}(Prism);; -!function(e){var n="(?:[ \t]+(?![ \t])(?:)?|)".replace(//g,(function(){return"\\\\[\r\n](?:\\s|\\\\[\r\n]|#.*(?!.))*(?![\\s#]|\\\\[\r\n])"})),r="\"(?:[^\"\\\\\r\n]|\\\\(?:\r\n|[^]))*\"|'(?:[^'\\\\\r\n]|\\\\(?:\r\n|[^]))*'",t="--[\\w-]+=(?:|(?![\"'])(?:[^\\s\\\\]|\\\\.)+)".replace(//g,(function(){return r})),o={pattern:RegExp(r),greedy:!0},i={pattern:/(^[ \t]*)#.*/m,lookbehind:!0,greedy:!0};function a(e,r){return e=e.replace(//g,(function(){return t})).replace(//g,(function(){return n})),RegExp(e,r)}e.languages.docker={instruction:{pattern:/(^[ \t]*)(?:ADD|ARG|CMD|COPY|ENTRYPOINT|ENV|EXPOSE|FROM|HEALTHCHECK|LABEL|MAINTAINER|ONBUILD|RUN|SHELL|STOPSIGNAL|USER|VOLUME|WORKDIR)(?=\s)(?:\\.|[^\r\n\\])*(?:\\$(?:\s|#.*$)*(?![\s#])(?:\\.|[^\r\n\\])*)*/im,lookbehind:!0,greedy:!0,inside:{options:{pattern:a("(^(?:ONBUILD)?\\w+)(?:)*","i"),lookbehind:!0,greedy:!0,inside:{property:{pattern:/(^|\s)--[\w-]+/,lookbehind:!0},string:[o,{pattern:/(=)(?!["'])(?:[^\s\\]|\\.)+/,lookbehind:!0}],operator:/\\$/m,punctuation:/=/}},keyword:[{pattern:a("(^(?:ONBUILD)?HEALTHCHECK(?:)*)(?:CMD|NONE)\\b","i"),lookbehind:!0,greedy:!0},{pattern:a("(^(?:ONBUILD)?FROM(?:)*(?!--)[^ \t\\\\]+)AS","i"),lookbehind:!0,greedy:!0},{pattern:a("(^ONBUILD)\\w+","i"),lookbehind:!0,greedy:!0},{pattern:/^\w+/,greedy:!0}],comment:i,string:o,variable:/\$(?:\w+|\{[^{}"'\\]*\})/,operator:/\\$/m}},comment:i},e.languages.dockerfile=e.languages.docker}(Prism);; -!function(e){var n=/\$(?:\w[a-z\d]*(?:_[^\x00-\x1F\s"'\\()$]*)?|\{[^}\s"'\\]+\})/i;e.languages.nginx={comment:{pattern:/(^|[\s{};])#.*/,lookbehind:!0,greedy:!0},directive:{pattern:/(^|\s)\w(?:[^;{}"'\\\s]|\\.|"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'|\s+(?:#.*(?!.)|(?![#\s])))*?(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:{string:{pattern:/((?:^|[^\\])(?:\\\\)*)(?:"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*')/,lookbehind:!0,greedy:!0,inside:{escape:{pattern:/\\["'\\nrt]/,alias:"entity"},variable:n}},comment:{pattern:/(\s)#.*/,lookbehind:!0,greedy:!0},keyword:{pattern:/^\S+/,greedy:!0},boolean:{pattern:/(\s)(?:off|on)(?!\S)/,lookbehind:!0},number:{pattern:/(\s)\d+[a-z]*(?!\S)/i,lookbehind:!0},variable:n}},punctuation:/[{};]/}}(Prism);; +var _self = "undefined" != typeof window ? window : "undefined" != typeof WorkerGlobalScope && self instanceof WorkerGlobalScope ? self : {}, Prism = function (l) { var n = /(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i, t = 0, e = {}, j = { manual: l.Prism && l.Prism.manual, disableWorkerMessageHandler: l.Prism && l.Prism.disableWorkerMessageHandler, util: { encode: function e(t) { return t instanceof C ? new C(t.type, e(t.content), t.alias) : Array.isArray(t) ? t.map(e) : t.replace(/&/g, "&").replace(/= i.reach); y += b.value.length, b = b.next) { var v = b.value; if (n.length > t.length) return; if (!(v instanceof C)) { var F, x = 1; if (m) { if (!(F = L(f, y, t, p)) || F.index >= t.length) break; var k = F.index, w = F.index + F[0].length, A = y; for (A += b.value.length; A <= k;)b = b.next, A += b.value.length; if (A -= b.value.length, y = A, b.value instanceof C) continue; for (var P = b; P !== n.tail && (A < w || "string" == typeof P.value); P = P.next)x++, A += P.value.length; x--, v = t.slice(y, A), F.index -= y } else if (!(F = L(f, 0, v, p))) continue; var k = F.index, $ = F[0], S = v.slice(0, k), E = v.slice(k + $.length), v = y + v.length, _ = (i && v > i.reach && (i.reach = v), b.prev), S = (S && (_ = z(n, _, S), y += S.length), O(n, _, x), new C(o, d ? j.tokenize($, d) : $, h, $)); b = z(n, _, S), E && z(n, b, E), 1 < x && ($ = { cause: o + "," + u, reach: v }, e(t, n, a, b.prev, y, $), i && $.reach > i.reach && (i.reach = $.reach)) } } } } }(e, r, t, r.head, 0), r), i = [], o = s.head.next; o !== s.tail;)i.push(o.value), o = o.next; return i }, hooks: { all: {}, add: function (e, t) { var n = j.hooks.all; n[e] = n[e] || [], n[e].push(t) }, run: function (e, t) { var n = j.hooks.all[e]; if (n && n.length) for (var a, r = 0; a = n[r++];)a(t) } }, Token: C }; function C(e, t, n, a) { this.type = e, this.content = t, this.alias = n, this.length = 0 | (a || "").length } function L(e, t, n, a) { e.lastIndex = t; t = e.exec(n); return t && a && t[1] && (e = t[1].length, t.index += e, t[0] = t[0].slice(e)), t } function u() { var e = { value: null, prev: null, next: null }, t = { value: null, prev: e, next: null }; e.next = t, this.head = e, this.tail = t, this.length = 0 } function z(e, t, n) { var a = t.next, n = { value: n, prev: t, next: a }; return t.next = n, a.prev = n, e.length++, n } function O(e, t, n) { for (var a = t.next, r = 0; r < n && a !== e.tail; r++)a = a.next; (t.next = a).prev = t, e.length -= r } if (l.Prism = j, C.stringify = function t(e, n) { if ("string" == typeof e) return e; var a; if (Array.isArray(e)) return a = "", e.forEach(function (e) { a += t(e, n) }), a; var r, s = { type: e.type, content: t(e.content, n), tag: "span", classes: ["token", e.type], attributes: {}, language: n }, e = e.alias, i = (e && (Array.isArray(e) ? Array.prototype.push.apply(s.classes, e) : s.classes.push(e)), j.hooks.run("wrap", s), ""); for (r in s.attributes) i += " " + r + '="' + (s.attributes[r] || "").replace(/"/g, """) + '"'; return "<" + s.tag + ' class="' + s.classes.join(" ") + '"' + i + ">" + s.content + "" }, !l.document) return l.addEventListener && (j.disableWorkerMessageHandler || l.addEventListener("message", function (e) { var e = JSON.parse(e.data), t = e.language, n = e.code, e = e.immediateClose; l.postMessage(j.highlight(n, j.languages[t], t)), e && l.close() }, !1)), j; var a, e = j.util.currentScript(); function r() { j.manual || j.highlightAll() } return e && (j.filename = e.src, e.hasAttribute("data-manual") && (j.manual = !0)), j.manual || ("loading" === (a = document.readyState) || "interactive" === a && e && e.defer ? document.addEventListener("DOMContentLoaded", r) : window.requestAnimationFrame ? window.requestAnimationFrame(r) : window.setTimeout(r, 16)), j }(_self); "undefined" != typeof module && module.exports && (module.exports = Prism), "undefined" != typeof global && (global.Prism = Prism), Prism.languages.markup = { comment: { pattern: //, greedy: !0 }, prolog: { pattern: /<\?[\s\S]+?\?>/, greedy: !0 }, doctype: { pattern: /"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i, greedy: !0, inside: { "internal-subset": { pattern: /(^[^\[]*\[)[\s\S]+(?=\]>$)/, lookbehind: !0, greedy: !0, inside: null }, string: { pattern: /"[^"]*"|'[^']*'/, greedy: !0 }, punctuation: /^$|[[\]]/, "doctype-tag": /^DOCTYPE/i, name: /[^\s<>'"]+/ } }, cdata: { pattern: //i, greedy: !0 }, tag: { pattern: /<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/, greedy: !0, inside: { tag: { pattern: /^<\/?[^\s>\/]+/, inside: { punctuation: /^<\/?/, namespace: /^[^\s>\/:]+:/ } }, "special-attr": [], "attr-value": { pattern: /=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/, inside: { punctuation: [{ pattern: /^=/, alias: "attr-equals" }, { pattern: /^(\s*)["']|["']$/, lookbehind: !0 }] } }, punctuation: /\/?>/, "attr-name": { pattern: /[^\s>\/]+/, inside: { namespace: /^[^\s>\/:]+:/ } } } }, entity: [{ pattern: /&[\da-z]{1,8};/i, alias: "named-entity" }, /&#x?[\da-f]{1,8};/i] }, Prism.languages.markup.tag.inside["attr-value"].inside.entity = Prism.languages.markup.entity, Prism.languages.markup.doctype.inside["internal-subset"].inside = Prism.languages.markup, Prism.hooks.add("wrap", function (e) { "entity" === e.type && (e.attributes.title = e.content.replace(/&/, "&")) }), Object.defineProperty(Prism.languages.markup.tag, "addInlined", { value: function (e, t) { var n = {}, n = (n["language-" + t] = { pattern: /(^$)/i, lookbehind: !0, inside: Prism.languages[t] }, n.cdata = /^$/i, { "included-cdata": { pattern: //i, inside: n } }), t = (n["language-" + t] = { pattern: /[\s\S]+/, inside: Prism.languages[t] }, {}); t[e] = { pattern: RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g, function () { return e }), "i"), lookbehind: !0, greedy: !0, inside: n }, Prism.languages.insertBefore("markup", "cdata", t) } }), Object.defineProperty(Prism.languages.markup.tag, "addAttribute", { value: function (e, t) { Prism.languages.markup.tag.inside["special-attr"].push({ pattern: RegExp(/(^|["'\s])/.source + "(?:" + e + ")" + /\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source, "i"), lookbehind: !0, inside: { "attr-name": /^[^\s=]+/, "attr-value": { pattern: /=[\s\S]+/, inside: { value: { pattern: /(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/, lookbehind: !0, alias: [t, "language-" + t], inside: Prism.languages[t] }, punctuation: [{ pattern: /^=/, alias: "attr-equals" }, /"|'/] } } } }) } }), Prism.languages.html = Prism.languages.markup, Prism.languages.mathml = Prism.languages.markup, Prism.languages.svg = Prism.languages.markup, Prism.languages.xml = Prism.languages.extend("markup", {}), Prism.languages.ssml = Prism.languages.xml, Prism.languages.atom = Prism.languages.xml, Prism.languages.rss = Prism.languages.xml, function (e) { var t = /(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/, t = (e.languages.css = { comment: /\/\*[\s\S]*?\*\//, atrule: { pattern: RegExp("@[\\w-](?:" + /[^;{\s"']|\s+(?!\s)/.source + "|" + t.source + ")*?" + /(?:;|(?=\s*\{))/.source), inside: { rule: /^@[\w-]+/, "selector-function-argument": { pattern: /(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/, lookbehind: !0, alias: "selector" }, keyword: { pattern: /(^|[^\w-])(?:and|not|only|or)(?![\w-])/, lookbehind: !0 } } }, url: { pattern: RegExp("\\burl\\((?:" + t.source + "|" + /(?:[^\\\r\n()"']|\\[\s\S])*/.source + ")\\)", "i"), greedy: !0, inside: { function: /^url/i, punctuation: /^\(|\)$/, string: { pattern: RegExp("^" + t.source + "$"), alias: "url" } } }, selector: { pattern: RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|" + t.source + ")*(?=\\s*\\{)"), lookbehind: !0 }, string: { pattern: t, greedy: !0 }, property: { pattern: /(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i, lookbehind: !0 }, important: /!important\b/i, function: { pattern: /(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i, lookbehind: !0 }, punctuation: /[(){};:,]/ }, e.languages.css.atrule.inside.rest = e.languages.css, e.languages.markup); t && (t.tag.addInlined("style", "css"), t.tag.addAttribute("style", "css")) }(Prism), Prism.languages.clike = { comment: [{ pattern: /(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/, lookbehind: !0, greedy: !0 }, { pattern: /(^|[^\\:])\/\/.*/, lookbehind: !0, greedy: !0 }], string: { pattern: /(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/, greedy: !0 }, "class-name": { pattern: /(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i, lookbehind: !0, inside: { punctuation: /[.\\]/ } }, keyword: /\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/, boolean: /\b(?:false|true)\b/, function: /\b\w+(?=\()/, number: /\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i, operator: /[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/, punctuation: /[{}[\];(),.:]/ }, Prism.languages.javascript = Prism.languages.extend("clike", { "class-name": [Prism.languages.clike["class-name"], { pattern: /(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/, lookbehind: !0 }], keyword: [{ pattern: /((?:^|\})\s*)catch\b/, lookbehind: !0 }, { pattern: /(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/, lookbehind: !0 }], function: /#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/, number: { pattern: RegExp(/(^|[^\w$])/.source + "(?:" + /NaN|Infinity/.source + "|" + /0[bB][01]+(?:_[01]+)*n?/.source + "|" + /0[oO][0-7]+(?:_[0-7]+)*n?/.source + "|" + /0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source + "|" + /\d+(?:_\d+)*n/.source + "|" + /(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source + ")" + /(?![\w$])/.source), lookbehind: !0 }, operator: /--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/ }), Prism.languages.javascript["class-name"][0].pattern = /(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/, Prism.languages.insertBefore("javascript", "keyword", { regex: { pattern: RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source + /\//.source + "(?:" + /(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source + "|" + /(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source + ")" + /(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source), lookbehind: !0, greedy: !0, inside: { "regex-source": { pattern: /^(\/)[\s\S]+(?=\/[a-z]*$)/, lookbehind: !0, alias: "language-regex", inside: Prism.languages.regex }, "regex-delimiter": /^\/|\/$/, "regex-flags": /^[a-z]+$/ } }, "function-variable": { pattern: /#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/, alias: "function" }, parameter: [{ pattern: /(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/, lookbehind: !0, inside: Prism.languages.javascript }, { pattern: /(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i, lookbehind: !0, inside: Prism.languages.javascript }, { pattern: /(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/, lookbehind: !0, inside: Prism.languages.javascript }, { pattern: /((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/, lookbehind: !0, inside: Prism.languages.javascript }], constant: /\b[A-Z](?:[A-Z_]|\dx?)*\b/ }), Prism.languages.insertBefore("javascript", "string", { hashbang: { pattern: /^#!.*/, greedy: !0, alias: "comment" }, "template-string": { pattern: /`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/, greedy: !0, inside: { "template-punctuation": { pattern: /^`|`$/, alias: "string" }, interpolation: { pattern: /((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/, lookbehind: !0, inside: { "interpolation-punctuation": { pattern: /^\$\{|\}$/, alias: "punctuation" }, rest: Prism.languages.javascript } }, string: /[\s\S]+/ } }, "string-property": { pattern: /((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m, lookbehind: !0, greedy: !0, alias: "property" } }), Prism.languages.insertBefore("javascript", "operator", { "literal-property": { pattern: /((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m, lookbehind: !0, alias: "property" } }), Prism.languages.markup && (Prism.languages.markup.tag.addInlined("script", "javascript"), Prism.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source, "javascript")), Prism.languages.js = Prism.languages.javascript, function () { var l, u, g, c, e; void 0 !== Prism && "undefined" != typeof document && (Element.prototype.matches || (Element.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector), l = { js: "javascript", py: "python", rb: "ruby", ps1: "powershell", psm1: "powershell", sh: "bash", bat: "batch", h: "c", tex: "latex" }, c = "pre[data-src]:not([" + (u = "data-src-status") + '="loaded"]):not([' + u + '="' + (g = "loading") + '"])', Prism.hooks.add("before-highlightall", function (e) { e.selector += ", " + c }), Prism.hooks.add("before-sanity-check", function (e) { var r, t, n, a, s, i, o = e.element; o.matches(c) && (e.code = "", o.setAttribute(u, g), (r = o.appendChild(document.createElement("CODE"))).textContent = "Loading…", t = o.getAttribute("data-src"), "none" === (e = e.language) && (n = (/\.(\w+)$/.exec(t) || [, "none"])[1], e = l[n] || n), Prism.util.setLanguage(r, e), Prism.util.setLanguage(o, e), (n = Prism.plugins.autoloader) && n.loadLanguages(e), n = t, a = function (e) { o.setAttribute(u, "loaded"); var t, n, a = function (e) { var t, n; if (e = /^\s*(\d+)\s*(?:(,)\s*(?:(\d+)\s*)?)?$/.exec(e || "")) return t = Number(e[1]), n = e[2], e = e[3], n ? e ? [t, Number(e)] : [t, void 0] : [t, t] }(o.getAttribute("data-range")); a && (t = e.split(/\r\n?|\n/g), n = a[0], a = null == a[1] ? t.length : a[1], n < 0 && (n += t.length), n = Math.max(0, Math.min(n - 1, t.length)), a < 0 && (a += t.length), a = Math.max(0, Math.min(a, t.length)), e = t.slice(n, a).join("\n"), o.hasAttribute("data-start") || o.setAttribute("data-start", String(n + 1))), r.textContent = e, Prism.highlightElement(r) }, s = function (e) { o.setAttribute(u, "failed"), r.textContent = e }, (i = new XMLHttpRequest).open("GET", n, !0), i.onreadystatechange = function () { 4 == i.readyState && (i.status < 400 && i.responseText ? a(i.responseText) : 400 <= i.status ? s("βœ– Error " + i.status + " while fetching file: " + i.statusText) : s("βœ– Error: File does not exist or is empty")) }, i.send(null)) }), e = !(Prism.plugins.fileHighlight = { highlight: function (e) { for (var t, n = (e || document).querySelectorAll(c), a = 0; t = n[a++];)Prism.highlightElement(t) } }), Prism.fileHighlight = function () { e || (console.warn("Prism.fileHighlight is deprecated. Use `Prism.plugins.fileHighlight.highlight` instead."), e = !0), Prism.plugins.fileHighlight.highlight.apply(this, arguments) }) }();; +!function (e) { var t = "\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b", a = { pattern: /(^(["']?)\w+\2)[ \t]+\S.*/, lookbehind: !0, alias: "punctuation", inside: null }, n = { bash: a, environment: { pattern: RegExp("\\$" + t), alias: "constant" }, variable: [{ pattern: /\$?\(\([\s\S]+?\)\)/, greedy: !0, inside: { variable: [{ pattern: /(^\$\(\([\s\S]+)\)\)/, lookbehind: !0 }, /^\$\(\(/], number: /\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/, operator: /--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/, punctuation: /\(\(?|\)\)?|,|;/ } }, { pattern: /\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/, greedy: !0, inside: { variable: /^\$\(|^`|\)$|`$/ } }, { pattern: /\$\{[^}]+\}/, greedy: !0, inside: { operator: /:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/, punctuation: /[\[\]]/, environment: { pattern: RegExp("(\\{)" + t), lookbehind: !0, alias: "constant" } } }, /\$(?:\w+|[#?*!@$])/], entity: /\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/ }; e.languages.bash = { shebang: { pattern: /^#!\s*\/.*/, alias: "important" }, comment: { pattern: /(^|[^"{\\$])#.*/, lookbehind: !0 }, "function-name": [{ pattern: /(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/, lookbehind: !0, alias: "function" }, { pattern: /\b[\w-]+(?=\s*\(\s*\)\s*\{)/, alias: "function" }], "for-or-select": { pattern: /(\b(?:for|select)\s+)\w+(?=\s+in\s)/, alias: "variable", lookbehind: !0 }, "assign-left": { pattern: /(^|[\s;|&]|[<>]\()\w+(?:\.\w+)*(?=\+?=)/, inside: { environment: { pattern: RegExp("(^|[\\s;|&]|[<>]\\()" + t), lookbehind: !0, alias: "constant" } }, alias: "variable", lookbehind: !0 }, parameter: { pattern: /(^|\s)-{1,2}(?:\w+:[+-]?)?\w+(?:\.\w+)*(?=[=\s]|$)/, alias: "variable", lookbehind: !0 }, string: [{ pattern: /((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/, lookbehind: !0, greedy: !0, inside: n }, { pattern: /((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/, lookbehind: !0, greedy: !0, inside: { bash: a } }, { pattern: /(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/, lookbehind: !0, greedy: !0, inside: n }, { pattern: /(^|[^$\\])'[^']*'/, lookbehind: !0, greedy: !0 }, { pattern: /\$'(?:[^'\\]|\\[\s\S])*'/, greedy: !0, inside: { entity: n.entity } }], environment: { pattern: RegExp("\\$?" + t), alias: "constant" }, variable: n.variable, function: { pattern: /(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cargo|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|java|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|sysctl|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/, lookbehind: !0 }, keyword: { pattern: /(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/, lookbehind: !0 }, builtin: { pattern: /(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/, lookbehind: !0, alias: "class-name" }, boolean: { pattern: /(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/, lookbehind: !0 }, "file-descriptor": { pattern: /\B&\d\b/, alias: "important" }, operator: { pattern: /\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/, inside: { "file-descriptor": { pattern: /^\d/, alias: "important" } } }, punctuation: /\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/, number: { pattern: /(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/, lookbehind: !0 } }, a.inside = e.languages.bash; for (var s = ["comment", "function-name", "for-or-select", "assign-left", "parameter", "string", "environment", "function", "keyword", "builtin", "boolean", "file-descriptor", "operator", "punctuation", "number"], o = n.variable[1].inside, i = 0; i < s.length; i++)o[s[i]] = e.languages.bash[s[i]]; e.languages.sh = e.languages.bash, e.languages.shell = e.languages.bash }(Prism);; +!function (e) { var i = e.languages.powershell = { comment: [{ pattern: /(^|[^`])<#[\s\S]*?#>/, lookbehind: !0 }, { pattern: /(^|[^`])#.*/, lookbehind: !0 }], string: [{ pattern: /"(?:`[\s\S]|[^`"])*"/, greedy: !0, inside: null }, { pattern: /'(?:[^']|'')*'/, greedy: !0 }], namespace: /\[[a-z](?:\[(?:\[[^\]]*\]|[^\[\]])*\]|[^\[\]])*\]/i, boolean: /\$(?:false|true)\b/i, variable: /\$\w+\b/, function: [/\b(?:Add|Approve|Assert|Backup|Block|Checkpoint|Clear|Close|Compare|Complete|Compress|Confirm|Connect|Convert|ConvertFrom|ConvertTo|Copy|Debug|Deny|Disable|Disconnect|Dismount|Edit|Enable|Enter|Exit|Expand|Export|Find|ForEach|Format|Get|Grant|Group|Hide|Import|Initialize|Install|Invoke|Join|Limit|Lock|Measure|Merge|Move|New|Open|Optimize|Out|Ping|Pop|Protect|Publish|Push|Read|Receive|Redo|Register|Remove|Rename|Repair|Request|Reset|Resize|Resolve|Restart|Restore|Resume|Revoke|Save|Search|Select|Send|Set|Show|Skip|Sort|Split|Start|Step|Stop|Submit|Suspend|Switch|Sync|Tee|Test|Trace|Unblock|Undo|Uninstall|Unlock|Unprotect|Unpublish|Unregister|Update|Use|Wait|Watch|Where|Write)-[a-z]+\b/i, /\b(?:ac|cat|chdir|clc|cli|clp|clv|compare|copy|cp|cpi|cpp|cvpa|dbp|del|diff|dir|ebp|echo|epal|epcsv|epsn|erase|fc|fl|ft|fw|gal|gbp|gc|gci|gcs|gdr|gi|gl|gm|gp|gps|group|gsv|gu|gv|gwmi|iex|ii|ipal|ipcsv|ipsn|irm|iwmi|iwr|kill|lp|ls|measure|mi|mount|move|mp|mv|nal|ndr|ni|nv|ogv|popd|ps|pushd|pwd|rbp|rd|rdr|ren|ri|rm|rmdir|rni|rnp|rp|rv|rvpa|rwmi|sal|saps|sasv|sbp|sc|select|set|shcm|si|sl|sleep|sls|sort|sp|spps|spsv|start|sv|swmi|tee|trcm|type|write)\b/i], keyword: /\b(?:Begin|Break|Catch|Class|Continue|Data|Define|Do|DynamicParam|Else|ElseIf|End|Exit|Filter|Finally|For|ForEach|From|Function|If|InlineScript|Parallel|Param|Process|Return|Sequence|Switch|Throw|Trap|Try|Until|Using|Var|While|Workflow)\b/i, operator: { pattern: /(^|\W)(?:!|-(?:b?(?:and|x?or)|as|(?:Not)?(?:Contains|In|Like|Match)|eq|ge|gt|is(?:Not)?|Join|le|lt|ne|not|Replace|sh[lr])\b|-[-=]?|\+[+=]?|[*\/%]=?)/i, lookbehind: !0 }, punctuation: /[|{}[\];(),.]/ }; i.string[0].inside = { function: { pattern: /(^|[^`])\$\((?:\$\([^\r\n()]*\)|(?!\$\()[^\r\n)])*\)/, lookbehind: !0, inside: i }, boolean: i.boolean, variable: i.variable } }(Prism);; +!function (e) { e.languages.typescript = e.languages.extend("javascript", { "class-name": { pattern: /(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/, lookbehind: !0, greedy: !0, inside: null }, builtin: /\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/ }), e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/, /\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/, /\btype\b(?=\s*(?:[\{*]|$))/), delete e.languages.typescript.parameter, delete e.languages.typescript["literal-property"]; var s = e.languages.extend("typescript", {}); delete s["class-name"], e.languages.typescript["class-name"].inside = s, e.languages.insertBefore("typescript", "function", { decorator: { pattern: /@[$\w\xA0-\uFFFF]+/, inside: { at: { pattern: /^@/, alias: "operator" }, function: /^[\s\S]+/ } }, "generic-function": { pattern: /#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/, greedy: !0, inside: { function: /^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/, generic: { pattern: /<[\s\S]+/, alias: "class-name", inside: s } } } }), e.languages.ts = e.languages.typescript }(Prism);; +Prism.languages.json = { property: { pattern: /(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/, lookbehind: !0, greedy: !0 }, string: { pattern: /(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/, lookbehind: !0, greedy: !0 }, comment: { pattern: /\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/, greedy: !0 }, number: /-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i, punctuation: /[{}[\],]/, operator: /:/, boolean: /\b(?:false|true)\b/, null: { pattern: /\bnull\b/, alias: "keyword" } }, Prism.languages.webmanifest = Prism.languages.json;; +!function (e) { var n = /[*&][^\s[\]{},]+/, r = /!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/, t = "(?:" + r.source + "(?:[ \t]+" + n.source + ")?|" + n.source + "(?:[ \t]+" + r.source + ")?)", a = "(?:[^\\s\\x00-\\x08\\x0e-\\x1f!\"#%&'*,\\-:>?@[\\]`{|}\\x7f-\\x84\\x86-\\x9f\\ud800-\\udfff\\ufffe\\uffff]|[?:-])(?:[ \t]*(?:(?![#:])|:))*".replace(//g, (function () { return "[^\\s\\x00-\\x08\\x0e-\\x1f,[\\]{}\\x7f-\\x84\\x86-\\x9f\\ud800-\\udfff\\ufffe\\uffff]" })), d = "\"(?:[^\"\\\\\r\n]|\\\\.)*\"|'(?:[^'\\\\\r\n]|\\\\.)*'"; function o(e, n) { n = (n || "").replace(/m/g, "") + "m"; var r = "([:\\-,[{]\\s*(?:\\s<>[ \t]+)?)(?:<>)(?=[ \t]*(?:$|,|\\]|\\}|(?:[\r\n]\\s*)?#))".replace(/<>/g, (function () { return t })).replace(/<>/g, (function () { return e })); return RegExp(r, n) } e.languages.yaml = { scalar: { pattern: RegExp("([\\-:]\\s*(?:\\s<>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\\S[^\r\n]*(?:\\2[^\r\n]+)*)".replace(/<>/g, (function () { return t }))), lookbehind: !0, alias: "string" }, comment: /#.*/, key: { pattern: RegExp("((?:^|[:\\-,[{\r\n?])[ \t]*(?:<>[ \t]+)?)<>(?=\\s*:\\s)".replace(/<>/g, (function () { return t })).replace(/<>/g, (function () { return "(?:" + a + "|" + d + ")" }))), lookbehind: !0, greedy: !0, alias: "atrule" }, directive: { pattern: /(^[ \t]*)%.+/m, lookbehind: !0, alias: "important" }, datetime: { pattern: o("\\d{4}-\\d\\d?-\\d\\d?(?:[tT]|[ \t]+)\\d\\d?:\\d{2}:\\d{2}(?:\\.\\d*)?(?:[ \t]*(?:Z|[-+]\\d\\d?(?::\\d{2})?))?|\\d{4}-\\d{2}-\\d{2}|\\d\\d?:\\d{2}(?::\\d{2}(?:\\.\\d*)?)?"), lookbehind: !0, alias: "number" }, boolean: { pattern: o("false|true", "i"), lookbehind: !0, alias: "important" }, null: { pattern: o("null|~", "i"), lookbehind: !0, alias: "important" }, string: { pattern: o(d), lookbehind: !0, greedy: !0 }, number: { pattern: o("[+-]?(?:0x[\\da-f]+|0o[0-7]+|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?|\\.inf|\\.nan)", "i"), lookbehind: !0 }, tag: r, important: n, punctuation: /---|[:[\]{}\-,|>?]|\.\.\./ }, e.languages.yml = e.languages.yaml }(Prism);; +!function (n) { function e(n) { return n = n.replace(//g, (function () { return "(?:\\\\.|[^\\\\\n\r]|(?:\n|\r\n?)(?![\r\n]))" })), RegExp("((?:^|[^\\\\])(?:\\\\{2})*)(?:" + n + ")") } var t = "(?:\\\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\\\|\r\n`])+", a = "\\|?__(?:\\|__)+\\|?(?:(?:\n|\r\n?)|(?![^]))".replace(/__/g, (function () { return t })), i = "\\|?[ \t]*:?-{3,}:?[ \t]*(?:\\|[ \t]*:?-{3,}:?[ \t]*)+\\|?(?:\n|\r\n?)"; n.languages.markdown = n.languages.extend("markup", {}), n.languages.insertBefore("markdown", "prolog", { "front-matter-block": { pattern: /(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/, lookbehind: !0, greedy: !0, inside: { punctuation: /^---|---$/, "front-matter": { pattern: /\S+(?:\s+\S+)*/, alias: ["yaml", "language-yaml"], inside: n.languages.yaml } } }, blockquote: { pattern: /^>(?:[\t ]*>)*/m, alias: "punctuation" }, table: { pattern: RegExp("^" + a + i + "(?:" + a + ")*", "m"), inside: { "table-data-rows": { pattern: RegExp("^(" + a + i + ")(?:" + a + ")*$"), lookbehind: !0, inside: { "table-data": { pattern: RegExp(t), inside: n.languages.markdown }, punctuation: /\|/ } }, "table-line": { pattern: RegExp("^(" + a + ")" + i + "$"), lookbehind: !0, inside: { punctuation: /\||:?-{3,}:?/ } }, "table-header-row": { pattern: RegExp("^" + a + "$"), inside: { "table-header": { pattern: RegExp(t), alias: "important", inside: n.languages.markdown }, punctuation: /\|/ } } } }, code: [{ pattern: /((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/, lookbehind: !0, alias: "keyword" }, { pattern: /^```[\s\S]*?^```$/m, greedy: !0, inside: { "code-block": { pattern: /^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m, lookbehind: !0 }, "code-language": { pattern: /^(```).+/, lookbehind: !0 }, punctuation: /```/ } }], title: [{ pattern: /\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m, alias: "important", inside: { punctuation: /==+$|--+$/ } }, { pattern: /(^\s*)#.+/m, lookbehind: !0, alias: "important", inside: { punctuation: /^#+|#+$/ } }], hr: { pattern: /(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m, lookbehind: !0, alias: "punctuation" }, list: { pattern: /(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m, lookbehind: !0, alias: "punctuation" }, "url-reference": { pattern: /!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/, inside: { variable: { pattern: /^(!?\[)[^\]]+/, lookbehind: !0 }, string: /(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/, punctuation: /^[\[\]!:]|[<>]/ }, alias: "url" }, bold: { pattern: e("\\b__(?:(?!_)|_(?:(?!_))+_)+__\\b|\\*\\*(?:(?!\\*)|\\*(?:(?!\\*))+\\*)+\\*\\*"), lookbehind: !0, greedy: !0, inside: { content: { pattern: /(^..)[\s\S]+(?=..$)/, lookbehind: !0, inside: {} }, punctuation: /\*\*|__/ } }, italic: { pattern: e("\\b_(?:(?!_)|__(?:(?!_))+__)+_\\b|\\*(?:(?!\\*)|\\*\\*(?:(?!\\*))+\\*\\*)+\\*"), lookbehind: !0, greedy: !0, inside: { content: { pattern: /(^.)[\s\S]+(?=.$)/, lookbehind: !0, inside: {} }, punctuation: /[*_]/ } }, strike: { pattern: e("(~~?)(?:(?!~))+\\2"), lookbehind: !0, greedy: !0, inside: { content: { pattern: /(^~~?)[\s\S]+(?=\1$)/, lookbehind: !0, inside: {} }, punctuation: /~~?/ } }, "code-snippet": { pattern: /(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/, lookbehind: !0, greedy: !0, alias: ["code", "keyword"] }, url: { pattern: e('!?\\[(?:(?!\\]))+\\](?:\\([^\\s)]+(?:[\t ]+"(?:\\\\.|[^"\\\\])*")?\\)|[ \t]?\\[(?:(?!\\]))+\\])'), lookbehind: !0, greedy: !0, inside: { operator: /^!/, content: { pattern: /(^\[)[^\]]+(?=\])/, lookbehind: !0, inside: {} }, variable: { pattern: /(^\][ \t]?\[)[^\]]+(?=\]$)/, lookbehind: !0 }, url: { pattern: /(^\]\()[^\s)]+/, lookbehind: !0 }, string: { pattern: /(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/, lookbehind: !0 } } } }), ["url", "bold", "italic", "strike"].forEach((function (e) { ["url", "bold", "italic", "strike", "code-snippet"].forEach((function (t) { e !== t && (n.languages.markdown[e].inside.content.inside[t] = n.languages.markdown[t]) })) })), n.hooks.add("after-tokenize", (function (n) { "markdown" !== n.language && "md" !== n.language || function n(e) { if (e && "string" != typeof e) for (var t = 0, a = e.length; t < a; t++) { var i = e[t]; if ("code" === i.type) { var r = i.content[1], o = i.content[3]; if (r && o && "code-language" === r.type && "code-block" === o.type && "string" == typeof r.content) { var l = r.content.replace(/\b#/g, "sharp").replace(/\b\+\+/g, "pp"), s = "language-" + (l = (/[a-z][\w-]*/i.exec(l) || [""])[0].toLowerCase()); o.alias ? "string" == typeof o.alias ? o.alias = [o.alias, s] : o.alias.push(s) : o.alias = [s] } } else n(i.content) } }(n.tokens) })), n.hooks.add("wrap", (function (e) { if ("code-block" === e.type) { for (var t = "", a = 0, i = e.classes.length; a < i; a++) { var s = e.classes[a], d = /language-(.+)/.exec(s); if (d) { t = d[1]; break } } var p = n.languages[t]; if (p) e.content = n.highlight(e.content.replace(r, "").replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi, (function (n, e) { var t; return "#" === (e = e.toLowerCase())[0] ? (t = "x" === e[1] ? parseInt(e.slice(2), 16) : Number(e.slice(1)), l(t)) : o[e] || n })), p, t); else if (t && "none" !== t && n.plugins.autoloader) { var u = "md-" + (new Date).valueOf() + "-" + Math.floor(1e16 * Math.random()); e.attributes.id = u, n.plugins.autoloader.loadLanguages(t, (function () { var e = document.getElementById(u); e && (e.innerHTML = n.highlight(e.textContent, n.languages[t], t)) })) } } })); var r = RegExp(n.languages.markup.tag.pattern.source, "gi"), o = { amp: "&", lt: "<", gt: ">", quot: '"' }, l = String.fromCodePoint || String.fromCharCode; n.languages.md = n.languages.markdown }(Prism);; +!function (t) { function a(t) { return RegExp("(^(?:" + t + "):[ \t]*(?![ \t]))[^]+", "i") } t.languages.http = { "request-line": { pattern: /^(?:CONNECT|DELETE|GET|HEAD|OPTIONS|PATCH|POST|PRI|PUT|SEARCH|TRACE)\s(?:https?:\/\/|\/)\S*\sHTTP\/[\d.]+/m, inside: { method: { pattern: /^[A-Z]+\b/, alias: "property" }, "request-target": { pattern: /^(\s)(?:https?:\/\/|\/)\S*(?=\s)/, lookbehind: !0, alias: "url", inside: t.languages.uri }, "http-version": { pattern: /^(\s)HTTP\/[\d.]+/, lookbehind: !0, alias: "property" } } }, "response-status": { pattern: /^HTTP\/[\d.]+ \d+ .+/m, inside: { "http-version": { pattern: /^HTTP\/[\d.]+/, alias: "property" }, "status-code": { pattern: /^(\s)\d+(?=\s)/, lookbehind: !0, alias: "number" }, "reason-phrase": { pattern: /^(\s).+/, lookbehind: !0, alias: "string" } } }, header: { pattern: /^[\w-]+:.+(?:(?:\r\n?|\n)[ \t].+)*/m, inside: { "header-value": [{ pattern: a("Content-Security-Policy"), lookbehind: !0, alias: ["csp", "languages-csp"], inside: t.languages.csp }, { pattern: a("Public-Key-Pins(?:-Report-Only)?"), lookbehind: !0, alias: ["hpkp", "languages-hpkp"], inside: t.languages.hpkp }, { pattern: a("Strict-Transport-Security"), lookbehind: !0, alias: ["hsts", "languages-hsts"], inside: t.languages.hsts }, { pattern: a("[^:]+"), lookbehind: !0 }], "header-name": { pattern: /^[^:]+/, alias: "keyword" }, punctuation: /^:/ } } }; var e, n = t.languages, s = { "application/javascript": n.javascript, "application/json": n.json || n.javascript, "application/xml": n.xml, "text/xml": n.xml, "text/html": n.html, "text/css": n.css, "text/plain": n.plain }, i = { "application/json": !0, "application/xml": !0 }; function r(t) { var a = t.replace(/^[a-z]+\//, ""); return "(?:" + t + "|\\w+/(?:[\\w.-]+\\+)+" + a + "(?![+\\w.-]))" } for (var p in s) if (s[p]) { e = e || {}; var l = i[p] ? r(p) : p; e[p.replace(/\//g, "-")] = { pattern: RegExp("(content-type:\\s*" + l + "(?:(?:\r\n?|\n)[\\w-].*)*(?:\r(?:\n|(?!\n))|\n))[^ \t\\w-][^]*", "i"), lookbehind: !0, inside: s[p] } } e && t.languages.insertBefore("http", "header", e) }(Prism);; +Prism.languages.ini = { comment: { pattern: /(^[ \f\t\v]*)[#;][^\n\r]*/m, lookbehind: !0 }, section: { pattern: /(^[ \f\t\v]*)\[[^\n\r\]]*\]?/m, lookbehind: !0, inside: { "section-name": { pattern: /(^\[[ \f\t\v]*)[^ \f\t\v\]]+(?:[ \f\t\v]+[^ \f\t\v\]]+)*/, lookbehind: !0, alias: "selector" }, punctuation: /\[|\]/ } }, key: { pattern: /(^[ \f\t\v]*)[^ \f\n\r\t\v=]+(?:[ \f\t\v]+[^ \f\n\r\t\v=]+)*(?=[ \f\t\v]*=)/m, lookbehind: !0, alias: "attr-name" }, value: { pattern: /(=[ \f\t\v]*)[^ \f\n\r\t\v]+(?:[ \f\t\v]+[^ \f\n\r\t\v]+)*/, lookbehind: !0, alias: "attr-value", inside: { "inner-value": { pattern: /^("|').+(?=\1$)/, lookbehind: !0 } } }, punctuation: /=/ };; +Prism.languages.python = { comment: { pattern: /(^|[^\\])#.*/, lookbehind: !0, greedy: !0 }, "string-interpolation": { pattern: /(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i, greedy: !0, inside: { interpolation: { pattern: /((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/, lookbehind: !0, inside: { "format-spec": { pattern: /(:)[^:(){}]+(?=\}$)/, lookbehind: !0 }, "conversion-option": { pattern: /![sra](?=[:}]$)/, alias: "punctuation" }, rest: null } }, string: /[\s\S]+/ } }, "triple-quoted-string": { pattern: /(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i, greedy: !0, alias: "string" }, string: { pattern: /(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i, greedy: !0 }, function: { pattern: /((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g, lookbehind: !0 }, "class-name": { pattern: /(\bclass\s+)\w+/i, lookbehind: !0 }, decorator: { pattern: /(^[\t ]*)@\w+(?:\.\w+)*/m, lookbehind: !0, alias: ["annotation", "punctuation"], inside: { punctuation: /\./ } }, keyword: /\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/, builtin: /\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/, boolean: /\b(?:False|None|True)\b/, number: /\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i, operator: /[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/, punctuation: /[{}[\];(),.:]/ }, Prism.languages.python["string-interpolation"].inside.interpolation.inside.rest = Prism.languages.python, Prism.languages.py = Prism.languages.python;; +!function (e) { for (var a = "/\\*(?:[^*/]|\\*(?!/)|/(?!\\*)|)*\\*/", t = 0; t < 2; t++)a = a.replace(//g, (function () { return a })); a = a.replace(//g, (function () { return "[^\\s\\S]" })), e.languages.rust = { comment: [{ pattern: RegExp("(^|[^\\\\])" + a), lookbehind: !0, greedy: !0 }, { pattern: /(^|[^\\:])\/\/.*/, lookbehind: !0, greedy: !0 }], string: { pattern: /b?"(?:\\[\s\S]|[^\\"])*"|b?r(#*)"(?:[^"]|"(?!\1))*"\1/, greedy: !0 }, char: { pattern: /b?'(?:\\(?:x[0-7][\da-fA-F]|u\{(?:[\da-fA-F]_*){1,6}\}|.)|[^\\\r\n\t'])'/, greedy: !0 }, attribute: { pattern: /#!?\[(?:[^\[\]"]|"(?:\\[\s\S]|[^\\"])*")*\]/, greedy: !0, alias: "attr-name", inside: { string: null } }, "closure-params": { pattern: /([=(,:]\s*|\bmove\s*)\|[^|]*\||\|[^|]*\|(?=\s*(?:\{|->))/, lookbehind: !0, greedy: !0, inside: { "closure-punctuation": { pattern: /^\||\|$/, alias: "punctuation" }, rest: null } }, "lifetime-annotation": { pattern: /'\w+/, alias: "symbol" }, "fragment-specifier": { pattern: /(\$\w+:)[a-z]+/, lookbehind: !0, alias: "punctuation" }, variable: /\$\w+/, "function-definition": { pattern: /(\bfn\s+)\w+/, lookbehind: !0, alias: "function" }, "type-definition": { pattern: /(\b(?:enum|struct|trait|type|union)\s+)\w+/, lookbehind: !0, alias: "class-name" }, "module-declaration": [{ pattern: /(\b(?:crate|mod)\s+)[a-z][a-z_\d]*/, lookbehind: !0, alias: "namespace" }, { pattern: /(\b(?:crate|self|super)\s*)::\s*[a-z][a-z_\d]*\b(?:\s*::(?:\s*[a-z][a-z_\d]*\s*::)*)?/, lookbehind: !0, alias: "namespace", inside: { punctuation: /::/ } }], keyword: [/\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/, /\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\b/], function: /\b[a-z_]\w*(?=\s*(?:::\s*<|\())/, macro: { pattern: /\b\w+!/, alias: "property" }, constant: /\b[A-Z_][A-Z_\d]+\b/, "class-name": /\b[A-Z]\w*\b/, namespace: { pattern: /(?:\b[a-z][a-z_\d]*\s*::\s*)*\b[a-z][a-z_\d]*\s*::(?!\s*<)/, inside: { punctuation: /::/ } }, number: /\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\b/, boolean: /\b(?:false|true)\b/, punctuation: /->|\.\.=|\.{1,3}|::|[{}[\];(),:]/, operator: /[-+*\/%!^]=?|=[=>]?|&[&=]?|\|[|=]?|<>?=?|[@?]/ }, e.languages.rust["closure-params"].inside.rest = e.languages.rust, e.languages.rust.attribute.inside.string = e.languages.rust.string }(Prism);; +!function (n) { n.languages.kotlin = n.languages.extend("clike", { keyword: { pattern: /(^|[^.])\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\b/, lookbehind: !0 }, function: [{ pattern: /(?:`[^\r\n`]+`|\b\w+)(?=\s*\()/, greedy: !0 }, { pattern: /(\.)(?:`[^\r\n`]+`|\w+)(?=\s*\{)/, lookbehind: !0, greedy: !0 }], number: /\b(?:0[xX][\da-fA-F]+(?:_[\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?[fFL]?)\b/, operator: /\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\/*%<>]=?|[?:]:?|\.\.|&&|\|\||\b(?:and|inv|or|shl|shr|ushr|xor)\b/ }), delete n.languages.kotlin["class-name"]; var e = { "interpolation-punctuation": { pattern: /^\$\{?|\}$/, alias: "punctuation" }, expression: { pattern: /[\s\S]+/, inside: n.languages.kotlin } }; n.languages.insertBefore("kotlin", "string", { "string-literal": [{ pattern: /"""(?:[^$]|\$(?:(?!\{)|\{[^{}]*\}))*?"""/, alias: "multiline", inside: { interpolation: { pattern: /\$(?:[a-z_]\w*|\{[^{}]*\})/i, inside: e }, string: /[\s\S]+/ } }, { pattern: /"(?:[^"\\\r\n$]|\\.|\$(?:(?!\{)|\{[^{}]*\}))*"/, alias: "singleline", inside: { interpolation: { pattern: /((?:^|[^\\])(?:\\{2})*)\$(?:[a-z_]\w*|\{[^{}]*\})/i, lookbehind: !0, inside: e }, string: /[\s\S]+/ } }], char: { pattern: /'(?:[^'\\\r\n]|\\(?:.|u[a-fA-F0-9]{0,4}))'/, greedy: !0 } }), delete n.languages.kotlin.string, n.languages.insertBefore("kotlin", "keyword", { annotation: { pattern: /\B@(?:\w+:)?(?:[A-Z]\w*|\[[^\]]+\])/, alias: "builtin" } }), n.languages.insertBefore("kotlin", "function", { label: { pattern: /\b\w+@|@\w+\b/, alias: "symbol" } }), n.languages.kt = n.languages.kotlin, n.languages.kts = n.languages.kotlin }(Prism);; +!function (e) { var n = "(?:[ \t]+(?![ \t])(?:)?|)".replace(//g, (function () { return "\\\\[\r\n](?:\\s|\\\\[\r\n]|#.*(?!.))*(?![\\s#]|\\\\[\r\n])" })), r = "\"(?:[^\"\\\\\r\n]|\\\\(?:\r\n|[^]))*\"|'(?:[^'\\\\\r\n]|\\\\(?:\r\n|[^]))*'", t = "--[\\w-]+=(?:|(?![\"'])(?:[^\\s\\\\]|\\\\.)+)".replace(//g, (function () { return r })), o = { pattern: RegExp(r), greedy: !0 }, i = { pattern: /(^[ \t]*)#.*/m, lookbehind: !0, greedy: !0 }; function a(e, r) { return e = e.replace(//g, (function () { return t })).replace(//g, (function () { return n })), RegExp(e, r) } e.languages.docker = { instruction: { pattern: /(^[ \t]*)(?:ADD|ARG|CMD|COPY|ENTRYPOINT|ENV|EXPOSE|FROM|HEALTHCHECK|LABEL|MAINTAINER|ONBUILD|RUN|SHELL|STOPSIGNAL|USER|VOLUME|WORKDIR)(?=\s)(?:\\.|[^\r\n\\])*(?:\\$(?:\s|#.*$)*(?![\s#])(?:\\.|[^\r\n\\])*)*/im, lookbehind: !0, greedy: !0, inside: { options: { pattern: a("(^(?:ONBUILD)?\\w+)(?:)*", "i"), lookbehind: !0, greedy: !0, inside: { property: { pattern: /(^|\s)--[\w-]+/, lookbehind: !0 }, string: [o, { pattern: /(=)(?!["'])(?:[^\s\\]|\\.)+/, lookbehind: !0 }], operator: /\\$/m, punctuation: /=/ } }, keyword: [{ pattern: a("(^(?:ONBUILD)?HEALTHCHECK(?:)*)(?:CMD|NONE)\\b", "i"), lookbehind: !0, greedy: !0 }, { pattern: a("(^(?:ONBUILD)?FROM(?:)*(?!--)[^ \t\\\\]+)AS", "i"), lookbehind: !0, greedy: !0 }, { pattern: a("(^ONBUILD)\\w+", "i"), lookbehind: !0, greedy: !0 }, { pattern: /^\w+/, greedy: !0 }], comment: i, string: o, variable: /\$(?:\w+|\{[^{}"'\\]*\})/, operator: /\\$/m } }, comment: i }, e.languages.dockerfile = e.languages.docker }(Prism);; +!function (e) { var n = /\$(?:\w[a-z\d]*(?:_[^\x00-\x1F\s"'\\()$]*)?|\{[^}\s"'\\]+\})/i; e.languages.nginx = { comment: { pattern: /(^|[\s{};])#.*/, lookbehind: !0, greedy: !0 }, directive: { pattern: /(^|\s)\w(?:[^;{}"'\\\s]|\\.|"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'|\s+(?:#.*(?!.)|(?![#\s])))*?(?=\s*[;{])/, lookbehind: !0, greedy: !0, inside: { string: { pattern: /((?:^|[^\\])(?:\\\\)*)(?:"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*')/, lookbehind: !0, greedy: !0, inside: { escape: { pattern: /\\["'\\nrt]/, alias: "entity" }, variable: n } }, comment: { pattern: /(\s)#.*/, lookbehind: !0, greedy: !0 }, keyword: { pattern: /^\S+/, greedy: !0 }, boolean: { pattern: /(\s)(?:off|on)(?!\S)/, lookbehind: !0 }, number: { pattern: /(\s)\d+[a-z]*(?!\S)/i, lookbehind: !0 }, variable: n } }, punctuation: /[{};]/ } }(Prism);; if (typeof Prism !== 'undefined' && Prism.languages) { Prism.languages.sh = Prism.languages.bash; Prism.languages.shell = Prism.languages.bash;