@charset "UTF-8";.docs-demo{--docs-sidebar-width: 272px;--docs-aside-width: 220px;--docs-content-max-width: 768px;--docs-sidebar-bg: color-mix( in srgb, var(--penna-c-text-3) 5%, var(--penna-c-bg) );--docs-border: color-mix(in srgb, var(--penna-c-text-3) 16%, transparent);overflow:hidden}.docs-demo .subtitle{font-size:12px;color:var(--penna-c-text-3);font-weight:400;max-width:min(420px,40vw);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.docs-demo .docs-shell{flex:1;min-height:0;display:grid;grid-template-columns:var(--docs-sidebar-width) minmax(0,1fr) var(--docs-aside-width)}.docs-demo .docs-sidebar{background:var(--docs-sidebar-bg);border-right:1px solid var(--docs-border);overflow-x:hidden;overflow-y:auto;padding:20px 0 80px}.docs-demo .doc-tree{padding:0 8px}.docs-demo .doc-tree-list,.docs-demo .doc-tree-group-items{list-style:none;margin:0;padding:0}.docs-demo .doc-tree-group{margin-bottom:12px}.docs-demo .doc-tree-group-title{margin:0 0 4px;padding:6px 12px 4px 16px;font-size:13px;font-weight:700;line-height:1.4;color:var(--penna-c-text-1);letter-spacing:.01em}.docs-demo .doc-tree-group-title--link{cursor:pointer;border-radius:0 4px 4px 0}.docs-demo .doc-tree-group-title--link:hover{color:var(--penna-c-brand-1);background:color-mix(in srgb,var(--penna-c-brand-soft) 40%,transparent)}.docs-demo .doc-tree-link{display:block;width:100%;text-align:left;margin:1px 0;padding:6px 12px 6px 16px;border:none;border-left:2px solid transparent;border-radius:0 4px 4px 0;background:transparent;color:var(--penna-c-text-2);font-size:14px;line-height:1.5;cursor:pointer;transition:color .15s,border-color .15s,background .15s}.docs-demo .doc-tree-link:hover{color:var(--penna-c-text-1)}.docs-demo .doc-tree-link.is-active{color:var(--penna-c-brand-1);border-left-color:var(--penna-c-brand-1);font-weight:600;background:color-mix(in srgb,var(--penna-c-brand-soft) 55%,transparent)}.docs-demo .doc-tree-group-items .doc-tree-link{padding-left:20px;font-size:13px}.docs-demo .doc-tree-group .doc-tree-group{margin-bottom:0}.docs-demo .doc-tree-group .doc-tree-group .doc-tree-group-title{padding-left:20px;font-size:12px;font-weight:600;color:var(--penna-c-text-2)}.docs-demo .doc-tree-empty,.docs-demo .docs-demo-hint{margin:0;padding:12px 16px;color:var(--penna-c-text-3);font-size:13px;line-height:1.6}.docs-demo .docs-main{min-width:0;min-height:0;background:var(--penna-c-bg)}.docs-demo .docs-content-scroll{height:100%;overflow-x:hidden;overflow-y:auto;scroll-behavior:smooth}.docs-demo .docs-content{box-sizing:content-box;max-width:var(--docs-content-max-width);margin:0 auto;padding:32px 32px 96px}.docs-demo #preview.penna-render{display:block;height:auto;min-height:0;padding:0;overflow:visible;background:transparent}.docs-demo .docs-demo-error{margin:0;color:var(--penna-c-danger);font-size:14px;line-height:1.6}.docs-demo .docs-aside{border-left:1px solid var(--docs-border);background:var(--penna-c-bg);padding:0;min-height:0}.docs-demo .docs-aside-sticky{position:sticky;top:0;max-height:100%;overflow-x:hidden;overflow-y:auto;padding:24px 16px 80px}.docs-demo .docs-aside-title{margin:0 0 10px;padding:0 0 0 12px;font-size:12px;font-weight:700;line-height:1.4;letter-spacing:.04em;text-transform:uppercase;color:var(--penna-c-text-3)}.docs-demo .docs-toc{display:flex;flex-direction:column;gap:0}.docs-demo .docs-toc-link{display:block;padding:4px 0 4px 12px;border-left:2px solid transparent;color:var(--penna-c-text-3);font-size:13px;line-height:1.45;text-decoration:none;transition:color .15s,border-color .15s}.docs-demo .docs-toc-link:hover{color:var(--penna-c-text-1)}.docs-demo .docs-toc-link.is-active{color:var(--penna-c-brand-1);border-left-color:var(--penna-c-brand-1)}.docs-demo .docs-toc-link.toc-h2{padding-left:12px}.docs-demo .docs-toc-link.toc-h3{padding-left:20px;font-size:12px}.docs-demo .docs-toc-link.toc-h4{padding-left:28px;font-size:12px}.docs-demo .docs-toc-link.toc-h5{padding-left:36px;font-size:12px}.docs-demo .docs-toc-link.toc-h6{padding-left:44px;font-size:12px}.docs-demo .docs-toc-empty{margin:0;padding:0 0 0 12px;color:var(--penna-c-text-3);font-size:12px;line-height:1.5}@media(max-width:1180px){.docs-demo{--docs-aside-width: 200px;--docs-content-max-width: 100%}.docs-demo .docs-content{padding:28px 24px 80px}}@media(max-width:960px){.docs-demo .docs-shell{grid-template-columns:var(--docs-sidebar-width) minmax(0,1fr)}.docs-demo .docs-aside{display:none}}@media(max-width:768px){.docs-demo{--docs-sidebar-width: 240px}.docs-demo .docs-content{padding:24px 20px 64px}}@media(max-width:640px){.docs-demo .docs-shell{grid-template-columns:1fr;grid-template-rows:auto 1fr}.docs-demo .docs-sidebar{max-height:200px;border-right:none;border-bottom:1px solid var(--docs-border);padding-bottom:12px}}.penna{--penna-c-logo-paper: #edebe7;--penna-c-logo-ink: #0c1c25;--penna-c-logo-cyan: #0ac1e3;--penna-c-logo-blue: #008dee;--penna-c-logo-green: #16bf73;--penna-c-logo-yellow: #fec933;--penna-c-logo-orange: #fe9138;--penna-c-logo-red: #f33a3c;--penna-c-stroke: #0c1c25;--penna-c-brand-1: #008dee;--penna-c-brand-2: #0099e8;--penna-c-brand-3: #0ac1e3;--penna-c-brand-soft: rgba(0, 141, 238, .16);--penna-c-brand-on-bg: #ffffff;--penna-c-text-1: #0c1c25;--penna-c-text-2: rgba(12, 28, 37, .78);--penna-c-text-3: rgba(12, 28, 37, .56);--penna-c-bg: #fafaf8;--penna-c-bg-elevated: #ffffff;--penna-c-contrast-light: #fff;--penna-c-contrast-dark: #000;--penna-c-brand-mark: #0ac1e3;--penna-c-code-fg: #f33a3c;--penna-c-note: #008dee;--penna-c-note-mark: #fec933;--penna-c-note-on-bg: color-mix( in srgb, #008dee 20%, #fff );--penna-c-alert-note-text: #008dee;--penna-c-alert-note-bg: color-mix( in srgb, #008dee 10%, transparent );--penna-c-alert-note-border: color-mix( in srgb, #008dee 30%, transparent );--penna-c-tip: #16bf73;--penna-c-tip-mark: #fec933;--penna-c-tip-on-bg: color-mix( in srgb, #16bf73 20%, #fff );--penna-c-alert-tip-text: #16bf73;--penna-c-alert-tip-bg: color-mix( in srgb, #16bf73 10%, transparent );--penna-c-alert-tip-border: color-mix( in srgb, #16bf73 30%, transparent );--penna-c-warning: #fe9138;--penna-c-warning-mark: #fec933;--penna-c-warning-on-bg: color-mix( in srgb, #fe9138 20%, #fff );--penna-c-alert-warning-text: #fe9138;--penna-c-alert-warning-bg: color-mix( in srgb, #fe9138 10%, transparent );--penna-c-alert-warning-border: color-mix( in srgb, #fe9138 30%, transparent );--penna-c-caution: #f33a3c;--penna-c-caution-mark: #fe9138;--penna-c-caution-on-bg: color-mix( in srgb, #f33a3c 20%, #fff );--penna-c-alert-caution-text: #f33a3c;--penna-c-alert-caution-bg: color-mix( in srgb, #f33a3c 10%, transparent );--penna-c-alert-caution-border: color-mix( in srgb, #f33a3c 30%, transparent );--penna-c-danger: #f33a3c;--penna-c-danger-mark: #fe9138;--penna-c-danger-on-bg: color-mix( in srgb, #f33a3c 20%, #fff );--penna-c-alert-danger-text: #f33a3c;--penna-c-alert-danger-bg: color-mix( in srgb, #f33a3c 10%, transparent );--penna-c-alert-danger-border: color-mix( in srgb, #f33a3c 30%, transparent );--penna-c-important: #0ac1e3;--penna-c-important-mark: #008dee;--penna-c-important-on-bg: color-mix( in srgb, #0ac1e3 20%, #fff );--penna-c-alert-important-text: #0ac1e3;--penna-c-alert-important-bg: color-mix( in srgb, #0ac1e3 10%, transparent );--penna-c-alert-important-border: color-mix( in srgb, #0ac1e3 30%, transparent );--penna-c-image-card-info-fg: var(--penna-c-contrast-light);--penna-c-image-card-scrim: var(--penna-c-contrast-dark);--penna-c-image-card-info-bg: linear-gradient( 180deg, transparent 0%, color-mix(in srgb, var(--penna-c-image-card-scrim) 45%, transparent) 55%, color-mix(in srgb, var(--penna-c-image-card-scrim) 72%, transparent) 100% );--penna-c-image-card-info-bg-hover: linear-gradient( 180deg, transparent 0%, color-mix(in srgb, var(--penna-c-image-card-scrim) 55%, transparent) 35%, color-mix(in srgb, var(--penna-c-image-card-scrim) 82%, transparent) 100% );--penna-c-media-player-bg: var(--penna-c-bg);--penna-c-media-shade: var(--penna-c-bg);--penna-c-on-brand: var(--penna-c-contrast-light);--penna-c-code-block-header-bg: color-mix( in srgb, var(--penna-c-text-3) 6%, var(--penna-c-bg-elevated) );--penna-c-code-block-code-bg: color-mix( in srgb, var(--penna-c-text-3) 4%, var(--penna-c-bg) );--penna-c-code-block-shadow: 0 1px 2px color-mix(in srgb, var(--penna-c-text-3) 8%, transparent), 0 8px 24px color-mix(in srgb, var(--penna-c-text-3) 6%, transparent)}.penna.penna-dark{--penna-c-logo-paper: #edebe7;--penna-c-logo-ink: #0c1c25;--penna-c-logo-cyan: #0ac1e3;--penna-c-logo-blue: #008dee;--penna-c-logo-green: #16bf73;--penna-c-logo-yellow: #fec933;--penna-c-logo-orange: #fe9138;--penna-c-logo-red: #f33a3c;--penna-c-stroke: #edebe7;--penna-c-brand-1: #0ac1e3;--penna-c-brand-2: #3dcee9;--penna-c-brand-3: #6dd8ee;--penna-c-brand-soft: rgba(10, 193, 227, .22);--penna-c-brand-on-bg: #0c1c25;--penna-c-text-1: rgba(237, 235, 231, .92);--penna-c-text-2: rgba(237, 235, 231, .68);--penna-c-text-3: rgba(237, 235, 231, .42);--penna-c-bg: #0c1c25;--penna-c-bg-elevated: #152836;--penna-c-contrast-light: #fff;--penna-c-contrast-dark: #000;--penna-c-brand-mark: color-mix( in srgb, #6dd8ee 48%, #0c1c25 );--penna-c-code-fg: #ff7a72;--penna-c-note: #4db4f5;--penna-c-note-mark: color-mix( in srgb, #fec933 50%, #0c1c25 );--penna-c-note-on-bg: color-mix( in srgb, #4db4f5 20%, #000 );--penna-c-alert-note-text: #4db4f5;--penna-c-alert-note-bg: color-mix( in srgb, #4db4f5 15%, transparent );--penna-c-alert-note-border: color-mix( in srgb, #4db4f5 40%, transparent );--penna-c-tip: #3dd48a;--penna-c-tip-mark: color-mix( in srgb, #16bf73 50%, #0c1c25 );--penna-c-tip-on-bg: color-mix( in srgb, #3dd48a 20%, #000 );--penna-c-alert-tip-text: #3dd48a;--penna-c-alert-tip-bg: color-mix( in srgb, #3dd48a 15%, transparent );--penna-c-alert-tip-border: color-mix( in srgb, #3dd48a 40%, transparent );--penna-c-warning: #ffb04a;--penna-c-warning-mark: color-mix( in srgb, #fec933 50%, #0c1c25 );--penna-c-warning-on-bg: color-mix( in srgb, #ffb04a 20%, #000 );--penna-c-alert-warning-text: #ffb04a;--penna-c-alert-warning-bg: color-mix( in srgb, #ffb04a 15%, transparent );--penna-c-alert-warning-border: color-mix( in srgb, #ffb04a 40%, transparent );--penna-c-caution: #ff7a72;--penna-c-caution-mark: color-mix( in srgb, #fe9138 50%, #0c1c25 );--penna-c-caution-on-bg: color-mix( in srgb, #ff7a72 20%, #000 );--penna-c-alert-caution-text: #ff7a72;--penna-c-alert-caution-bg: color-mix( in srgb, #ff7a72 15%, transparent );--penna-c-alert-caution-border: color-mix( in srgb, #ff7a72 40%, transparent );--penna-c-danger: #ff6b66;--penna-c-danger-mark: color-mix( in srgb, #f33a3c 50%, #0c1c25 );--penna-c-danger-on-bg: color-mix( in srgb, #ff6b66 20%, #000 );--penna-c-alert-danger-text: #ff6b66;--penna-c-alert-danger-bg: color-mix( in srgb, #ff6b66 15%, transparent );--penna-c-alert-danger-border: color-mix( in srgb, #ff6b66 40%, transparent );--penna-c-important: #3dcee9;--penna-c-important-mark: color-mix( in srgb, #0ac1e3 50%, #0c1c25 );--penna-c-important-on-bg: color-mix( in srgb, #3dcee9 20%, #000 );--penna-c-alert-important-text: #3dcee9;--penna-c-alert-important-bg: color-mix( in srgb, #3dcee9 15%, transparent );--penna-c-alert-important-border: color-mix( in srgb, #3dcee9 40%, transparent );--penna-c-image-card-scrim: var(--penna-c-contrast-dark);--penna-c-image-card-info-bg: linear-gradient( 180deg, transparent 0%, color-mix(in srgb, var(--penna-c-image-card-scrim) 45%, transparent) 55%, color-mix(in srgb, var(--penna-c-image-card-scrim) 72%, transparent) 100% );--penna-c-image-card-info-bg-hover: linear-gradient( 180deg, transparent 0%, color-mix(in srgb, var(--penna-c-image-card-scrim) 55%, transparent) 35%, color-mix(in srgb, var(--penna-c-image-card-scrim) 82%, transparent) 100% );--penna-c-media-player-bg: var(--penna-c-bg);--penna-c-media-shade: var(--penna-c-bg);--penna-c-on-brand: var(--penna-c-contrast-light);--penna-c-code-block-header-bg: color-mix( in srgb, var(--penna-c-text-3) 6%, var(--penna-c-bg-elevated) );--penna-c-code-block-code-bg: color-mix( in srgb, var(--penna-c-text-3) 4%, var(--penna-c-bg) );--penna-c-code-block-shadow: 0 1px 2px color-mix(in srgb, var(--penna-c-text-3) 8%, transparent), 0 8px 24px color-mix(in srgb, var(--penna-c-text-3) 6%, transparent);--penna-c-image-card-info-fg: var(--penna-c-contrast-light);--penna-c-image-card-info-bg: linear-gradient( 180deg, transparent 0%, color-mix(in srgb, var(--penna-c-image-card-scrim) 58%, transparent) 55%, color-mix(in srgb, var(--penna-c-image-card-scrim) 88%, transparent) 100% );--penna-c-image-card-info-bg-hover: linear-gradient( 180deg, transparent 0%, color-mix(in srgb, var(--penna-c-image-card-scrim) 68%, transparent) 35%, color-mix(in srgb, var(--penna-c-image-card-scrim) 92%, transparent) 100% );--penna-c-code-block-header-bg: color-mix( in srgb, var(--penna-c-contrast-light) 4%, var(--penna-c-bg-elevated) );--penna-c-code-block-code-bg: color-mix( in srgb, var(--penna-c-contrast-dark) 22%, var(--penna-c-bg-elevated) );--penna-c-code-block-shadow: 0 1px 2px color-mix(in srgb, var(--penna-c-contrast-dark) 35%, transparent)}.penna-render{--penna-c-logo-paper: #edebe7;--penna-c-logo-ink: #0c1c25;--penna-c-logo-cyan: #0ac1e3;--penna-c-logo-blue: #008dee;--penna-c-logo-green: #16bf73;--penna-c-logo-yellow: #fec933;--penna-c-logo-orange: #fe9138;--penna-c-logo-red: #f33a3c;--penna-c-stroke: #0c1c25;--penna-c-brand-1: #008dee;--penna-c-brand-2: #0099e8;--penna-c-brand-3: #0ac1e3;--penna-c-brand-soft: rgba(0, 141, 238, .16);--penna-c-brand-on-bg: #ffffff;--penna-c-text-1: #0c1c25;--penna-c-text-2: rgba(12, 28, 37, .78);--penna-c-text-3: rgba(12, 28, 37, .56);--penna-c-bg: #fafaf8;--penna-c-bg-elevated: #ffffff;--penna-c-contrast-light: #fff;--penna-c-contrast-dark: #000;--penna-c-brand-mark: #0ac1e3;--penna-c-code-fg: #f33a3c;--penna-c-note: #008dee;--penna-c-note-mark: #fec933;--penna-c-note-on-bg: color-mix( in srgb, #008dee 20%, #fff );--penna-c-alert-note-text: #008dee;--penna-c-alert-note-bg: color-mix( in srgb, #008dee 10%, transparent );--penna-c-alert-note-border: color-mix( in srgb, #008dee 30%, transparent );--penna-c-tip: #16bf73;--penna-c-tip-mark: #fec933;--penna-c-tip-on-bg: color-mix( in srgb, #16bf73 20%, #fff );--penna-c-alert-tip-text: #16bf73;--penna-c-alert-tip-bg: color-mix( in srgb, #16bf73 10%, transparent );--penna-c-alert-tip-border: color-mix( in srgb, #16bf73 30%, transparent );--penna-c-warning: #fe9138;--penna-c-warning-mark: #fec933;--penna-c-warning-on-bg: color-mix( in srgb, #fe9138 20%, #fff );--penna-c-alert-warning-text: #fe9138;--penna-c-alert-warning-bg: color-mix( in srgb, #fe9138 10%, transparent );--penna-c-alert-warning-border: color-mix( in srgb, #fe9138 30%, transparent );--penna-c-caution: #f33a3c;--penna-c-caution-mark: #fe9138;--penna-c-caution-on-bg: color-mix( in srgb, #f33a3c 20%, #fff );--penna-c-alert-caution-text: #f33a3c;--penna-c-alert-caution-bg: color-mix( in srgb, #f33a3c 10%, transparent );--penna-c-alert-caution-border: color-mix( in srgb, #f33a3c 30%, transparent );--penna-c-danger: #f33a3c;--penna-c-danger-mark: #fe9138;--penna-c-danger-on-bg: color-mix( in srgb, #f33a3c 20%, #fff );--penna-c-alert-danger-text: #f33a3c;--penna-c-alert-danger-bg: color-mix( in srgb, #f33a3c 10%, transparent );--penna-c-alert-danger-border: color-mix( in srgb, #f33a3c 30%, transparent );--penna-c-important: #0ac1e3;--penna-c-important-mark: #008dee;--penna-c-important-on-bg: color-mix( in srgb, #0ac1e3 20%, #fff );--penna-c-alert-important-text: #0ac1e3;--penna-c-alert-important-bg: color-mix( in srgb, #0ac1e3 10%, transparent );--penna-c-alert-important-border: color-mix( in srgb, #0ac1e3 30%, transparent );--penna-c-image-card-info-fg: var(--penna-c-contrast-light);--penna-c-image-card-scrim: var(--penna-c-contrast-dark);--penna-c-image-card-info-bg: linear-gradient( 180deg, transparent 0%, color-mix(in srgb, var(--penna-c-image-card-scrim) 45%, transparent) 55%, color-mix(in srgb, var(--penna-c-image-card-scrim) 72%, transparent) 100% );--penna-c-image-card-info-bg-hover: linear-gradient( 180deg, transparent 0%, color-mix(in srgb, var(--penna-c-image-card-scrim) 55%, transparent) 35%, color-mix(in srgb, var(--penna-c-image-card-scrim) 82%, transparent) 100% );--penna-c-media-player-bg: var(--penna-c-bg);--penna-c-media-shade: var(--penna-c-bg);--penna-c-on-brand: var(--penna-c-contrast-light);--penna-c-code-block-header-bg: color-mix( in srgb, var(--penna-c-text-3) 6%, var(--penna-c-bg-elevated) );--penna-c-code-block-code-bg: color-mix( in srgb, var(--penna-c-text-3) 4%, var(--penna-c-bg) );--penna-c-code-block-shadow: 0 1px 2px color-mix(in srgb, var(--penna-c-text-3) 8%, transparent), 0 8px 24px color-mix(in srgb, var(--penna-c-text-3) 6%, transparent)}.penna-render .penna-code-block .hljs,.penna-render pre:not(.penna-code-block__pre) .hljs{background:transparent;color:#24292e}.penna-render .penna-code-block .hljs-doctag,.penna-render .penna-code-block .hljs-keyword,.penna-render .penna-code-block .hljs-meta .hljs-keyword,.penna-render .penna-code-block .hljs-template-tag,.penna-render .penna-code-block .hljs-template-variable,.penna-render .penna-code-block .hljs-type,.penna-render .penna-code-block .hljs-variable.language_,.penna-render pre:not(.penna-code-block__pre) .hljs-doctag,.penna-render pre:not(.penna-code-block__pre) .hljs-keyword,.penna-render pre:not(.penna-code-block__pre) .hljs-meta .hljs-keyword,.penna-render pre:not(.penna-code-block__pre) .hljs-template-tag,.penna-render pre:not(.penna-code-block__pre) .hljs-template-variable,.penna-render pre:not(.penna-code-block__pre) .hljs-type,.penna-render pre:not(.penna-code-block__pre) .hljs-variable.language_{color:#d73a49}.penna-render .penna-code-block .hljs-title,.penna-render .penna-code-block .hljs-title.class_,.penna-render .penna-code-block .hljs-title.class_.inherited__,.penna-render .penna-code-block .hljs-title.function_,.penna-render pre:not(.penna-code-block__pre) .hljs-title,.penna-render pre:not(.penna-code-block__pre) .hljs-title.class_,.penna-render pre:not(.penna-code-block__pre) .hljs-title.class_.inherited__,.penna-render pre:not(.penna-code-block__pre) .hljs-title.function_{color:#6f42c1}.penna-render .penna-code-block .hljs-attr,.penna-render .penna-code-block .hljs-attribute,.penna-render .penna-code-block .hljs-literal,.penna-render .penna-code-block .hljs-meta,.penna-render .penna-code-block .hljs-number,.penna-render .penna-code-block .hljs-operator,.penna-render .penna-code-block .hljs-selector-attr,.penna-render .penna-code-block .hljs-selector-class,.penna-render .penna-code-block .hljs-selector-id,.penna-render .penna-code-block .hljs-variable,.penna-render pre:not(.penna-code-block__pre) .hljs-attr,.penna-render pre:not(.penna-code-block__pre) .hljs-attribute,.penna-render pre:not(.penna-code-block__pre) .hljs-literal,.penna-render pre:not(.penna-code-block__pre) .hljs-meta,.penna-render pre:not(.penna-code-block__pre) .hljs-number,.penna-render pre:not(.penna-code-block__pre) .hljs-operator,.penna-render pre:not(.penna-code-block__pre) .hljs-selector-attr,.penna-render pre:not(.penna-code-block__pre) .hljs-selector-class,.penna-render pre:not(.penna-code-block__pre) .hljs-selector-id,.penna-render pre:not(.penna-code-block__pre) .hljs-variable{color:#005cc5}.penna-render .penna-code-block .hljs-meta .hljs-string,.penna-render .penna-code-block .hljs-regexp,.penna-render .penna-code-block .hljs-string,.penna-render pre:not(.penna-code-block__pre) .hljs-meta .hljs-string,.penna-render pre:not(.penna-code-block__pre) .hljs-regexp,.penna-render pre:not(.penna-code-block__pre) .hljs-string{color:#032f62}.penna-render .penna-code-block .hljs-built_in,.penna-render .penna-code-block .hljs-symbol,.penna-render pre:not(.penna-code-block__pre) .hljs-built_in,.penna-render pre:not(.penna-code-block__pre) .hljs-symbol{color:#e36209}.penna-render .penna-code-block .hljs-code,.penna-render .penna-code-block .hljs-comment,.penna-render .penna-code-block .hljs-formula,.penna-render pre:not(.penna-code-block__pre) .hljs-code,.penna-render pre:not(.penna-code-block__pre) .hljs-comment,.penna-render pre:not(.penna-code-block__pre) .hljs-formula{color:#6a737d}.penna-render .penna-code-block .hljs-name,.penna-render .penna-code-block .hljs-quote,.penna-render .penna-code-block .hljs-selector-pseudo,.penna-render .penna-code-block .hljs-selector-tag,.penna-render pre:not(.penna-code-block__pre) .hljs-name,.penna-render pre:not(.penna-code-block__pre) .hljs-quote,.penna-render pre:not(.penna-code-block__pre) .hljs-selector-pseudo,.penna-render pre:not(.penna-code-block__pre) .hljs-selector-tag{color:#22863a}.penna-render .penna-code-block .hljs-subst,.penna-render pre:not(.penna-code-block__pre) .hljs-subst{color:#24292e}.penna-render .penna-code-block .hljs-section,.penna-render pre:not(.penna-code-block__pre) .hljs-section{color:#005cc5;font-weight:700}.penna-render .penna-code-block .hljs-bullet,.penna-render pre:not(.penna-code-block__pre) .hljs-bullet{color:#735c0f}.penna-render .penna-code-block .hljs-emphasis,.penna-render pre:not(.penna-code-block__pre) .hljs-emphasis{color:#24292e;font-style:italic}.penna-render .penna-code-block .hljs-strong,.penna-render pre:not(.penna-code-block__pre) .hljs-strong{color:#24292e;font-weight:700}.penna-render .penna-code-block .hljs-addition,.penna-render pre:not(.penna-code-block__pre) .hljs-addition{color:#22863a;background-color:#f0fff4}.penna-render .penna-code-block .hljs-deletion,.penna-render pre:not(.penna-code-block__pre) .hljs-deletion{color:#b31d28;background-color:#ffeef0}.penna-render ::-webkit-scrollbar{width:12px;height:12px}.penna-render ::-webkit-scrollbar-track{background:transparent}.penna-render ::-webkit-scrollbar-thumb{background:var(--penna-c-text-4);border-radius:6px;background-clip:padding-box;border:3px solid transparent}.penna-render ::-webkit-scrollbar-thumb:hover{background:var(--penna-c-text-3);background-clip:padding-box;border:3px solid transparent}.penna-render *{scrollbar-width:thin;scrollbar-color:var(--penna-c-text-4) transparent}.penna-render{color:var(--penna-c-text-1);font-size:1rem;line-height:1.6;word-wrap:break-word}.penna-render :first-child{margin-top:0!important}.penna-render :last-child{margin-bottom:0!important}.penna-render h1,.penna-render h2,.penna-render h3,.penna-render h4,.penna-render h5,.penna-render h6{margin:1.25rem 0 .5rem;font-weight:600;line-height:1.25;color:var(--penna-c-text-1)}.penna-render h1{margin-top:2rem;font-size:2rem;padding-bottom:.6rem;border-bottom:.0625rem solid color-mix(in srgb,var(--penna-c-text-3) 35%,transparent)}.penna-render h2{margin-top:1.75rem;font-size:1.5rem;padding-bottom:.375rem;border-bottom:.0625rem solid color-mix(in srgb,var(--penna-c-text-3) 25%,transparent)}.penna-render h3{font-size:1.25rem}.penna-render h4{font-size:1rem}.penna-render h5{font-size:.875rem}.penna-render h6{font-size:.85rem;color:var(--penna-c-text-2)}.penna-render p{margin:0 0 1rem}.penna-render a{color:var(--penna-c-brand-1);text-decoration:none}.penna-render a:hover{text-decoration:underline}.penna-render strong{font-weight:600}.penna-render em{font-style:italic}.penna-render del{color:var(--penna-c-text-3);text-decoration:line-through}.penna-render blockquote{margin:0 0 1rem;padding:1rem;color:var(--penna-c-text-2);background:color-mix(in srgb,var(--penna-c-text-3) 10%,transparent);border-left:.25rem solid var(--penna-c-brand-2);border-radius:0 .25rem .25rem 0}.penna-render blockquote>*{margin-bottom:0!important}.penna-render hr{height:0;margin:1.5rem 0;border:0;border-top:.0625rem solid color-mix(in srgb,var(--penna-c-text-3) 35%,transparent)}.penna-render ul,.penna-render ol{margin:0 0 1rem;padding-left:2rem}.penna-render li+li{margin-top:.25rem}.penna-render li>ul,.penna-render li>ol{margin-top:.25rem;margin-bottom:0}.penna-render img{max-width:100%;height:auto;border-radius:.25rem}.penna-render pre{margin:0 0 1rem;padding:.75rem 1rem;overflow:auto;font-size:.875rem;line-height:1.45;background:var(--penna-c-bg-elevated);border:.0625rem solid color-mix(in srgb,var(--penna-c-text-3) 25%,transparent);border-radius:.5rem}.penna-render pre code{padding:0;font-size:inherit;background:transparent;border:0;border-radius:0}.penna-render :not(pre)>code{padding:.2em .4em;font-size:.9em;color:var(--penna-c-code-fg);background:color-mix(in srgb,var(--penna-c-text-3) 12%,transparent);border:.0625rem solid color-mix(in srgb,var(--penna-c-text-3) 20%,transparent);border-radius:.25rem}.penna-render table{--penna-table-border: color-mix( in srgb, var(--penna-c-text-3) 32%, transparent );--penna-table-head-bg: var(--penna-c-bg-elevated);--penna-table-row-bg: var(--penna-c-bg);--penna-table-stripe-bg: color-mix( in srgb, var(--penna-c-text-3) 5.5%, var(--penna-c-bg-elevated) );width:max-content;max-width:100%;margin:0 0 1rem;border-collapse:collapse;border-spacing:0;display:block;overflow-x:auto;background:var(--penna-table-row-bg)}.penna-render thead tr{background:var(--penna-table-head-bg)}.penna-render th,.penna-render td{padding:.5rem 1rem;border:.0625rem solid var(--penna-table-border);text-align:left;vertical-align:top}.penna-render th{font-weight:600;background:var(--penna-table-head-bg)}.penna-render tbody tr{background:var(--penna-table-row-bg);transition:background-color .2s ease}.penna-render tbody tr:nth-child(2n){background:var(--penna-table-stripe-bg)}.penna-render tbody tr:hover{background:color-mix(in srgb,var(--penna-c-text-3) 8%,var(--penna-table-row-bg))}.penna-render tbody td{background:inherit}.penna-render table tr:nth-child(odd) td{background:var(--penna-table-row-bg)}.penna-render table tr:nth-child(2n) td{background:var(--penna-table-stripe-bg)}.penna-render table tr:hover td{background:color-mix(in srgb,var(--penna-c-text-3) 8%,var(--penna-table-row-bg))}.penna-render table tr:first-child th{background:var(--penna-table-head-bg)}.penna-render .penna-mark{--penna-mark-text: currentcolor;--penna-mark-accent: var(--penna-c-brand-mark);--penna-mark-strength: 68%;--penna-mark-linear-color: color-mix( in srgb, var(--penna-mark-accent) var(--penna-mark-strength), transparent );--penna-mark-bg-height: 42%;--penna-mark-bg-shift: 100%;--penna-mark-wave-offset: .18em;--penna-mark-wave-thickness: .1em;color:var(--penna-mark-text);padding:.0625rem .125rem;border-radius:.125rem;box-decoration-break:clone;-webkit-box-decoration-break:clone;text-decoration:none;background-color:transparent;background-image:linear-gradient(var(--penna-mark-linear-color),var(--penna-mark-linear-color));background-repeat:no-repeat;background-size:100% var(--penna-mark-bg-height);background-position:0 var(--penna-mark-bg-shift)}.penna-render .penna-mark.note{--penna-mark-accent: var(--penna-c-note-mark)}.penna-render .penna-mark.tip{--penna-mark-accent: var(--penna-c-tip-mark)}.penna-render .penna-mark.warning{--penna-mark-accent: var(--penna-c-warning-mark)}.penna-render .penna-mark.caution{--penna-mark-accent: var(--penna-c-caution-mark)}.penna-render .penna-mark.danger{--penna-mark-accent: var(--penna-c-danger-mark)}.penna-render .penna-mark.important{--penna-mark-accent: var(--penna-c-important-mark)}.penna-render .penna-spoiler{cursor:pointer;transition:color .2s ease,text-shadow .2s ease;color:transparent;text-shadow:0 0 .375rem var(--penna-c-text-1);background:color-mix(in srgb,var(--penna-c-text-3) 15%,transparent);border-radius:.25rem;padding:0 .25rem}.penna-render .penna-spoiler:hover{color:inherit;text-shadow:none}.penna-render .penna-spoiler.click{cursor:pointer;color:inherit;text-shadow:none}.penna-render .penna-spoiler.click .penna-spoiler__text{color:transparent;text-shadow:0 0 .375rem var(--penna-c-text-1);transition:color .2s ease,text-shadow .2s ease}.penna-render .penna-spoiler.click:has(.penna-spoiler__toggle:checked) .penna-spoiler__text{color:inherit;text-shadow:none}.penna-render .penna-spoiler__toggle{position:absolute;opacity:0;pointer-events:none}.penna-render .penna-alert{--alert-text: var(--penna-c-text-1);--alert-bg: var(--penna-c-bg-elevated);--alert-border: var(--penna-c-brand-2);--alert-icon: none;font-size:.875rem;line-height:1.6;color:var(--alert-text);background-color:var(--alert-bg);border:.0625rem solid var(--alert-border);border-radius:.5rem;margin:1rem 0;padding:1rem 1rem .5rem}.penna-render .penna-alert__title{display:flex;align-items:center;gap:.5rem;margin:0 0 .5rem;font-weight:600;font-size:.875rem;line-height:1.4;color:var(--alert-text)}.penna-render .penna-alert__title:before{content:"";width:1rem;height:1rem;flex-shrink:0;background-color:var(--alert-text);-webkit-mask:var(--alert-icon) no-repeat center/contain;mask:var(--alert-icon) no-repeat center/contain}.penna-render .penna-alert--note{--alert-text: var(--penna-c-alert-note-text);--alert-bg: var(--penna-c-alert-note-bg);--alert-border: var(--penna-c-alert-note-border);--alert-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23000' d='M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z'/%3E%3C/svg%3E")}.penna-render .penna-alert--tip{--alert-text: var(--penna-c-alert-tip-text);--alert-bg: var(--penna-c-alert-tip-bg);--alert-border: var(--penna-c-alert-tip-border);--alert-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23000' d='M8 1.5c-2.363 0-4 1.69-4 3.75 0 .984.424 1.625.984 2.304l.214.253c.223.264.47.556.673.848.284.411.537.896.621 1.49a.75.75 0 0 1-1.484.211c-.04-.282-.163-.547-.37-.847a8.456 8.456 0 0 0-.542-.68c-.084-.1-.173-.205-.268-.32C3.201 7.75 2.5 6.766 2.5 5.25 2.5 2.31 4.863 0 8 0s5.5 2.31 5.5 5.25c0 1.516-.701 2.5-1.328 3.259-.095.115-.184.22-.268.319-.207.245-.383.453-.541.681-.208.3-.33.565-.37.847a.751.751 0 0 1-1.485-.212c.084-.593.337-1.078.621-1.489.203-.292.45-.584.673-.848.075-.088.147-.173.213-.253.561-.679.985-1.32.985-2.304 0-2.06-1.637-3.75-4-3.75ZM5.75 12h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1 0-1.5ZM6 15.25a.75.75 0 0 1 .75-.75h2.5a.75.75 0 0 1 0 1.5h-2.5a.75.75 0 0 1-.75-.75Z'/%3E%3C/svg%3E")}.penna-render .penna-alert--important{--alert-text: var(--penna-c-alert-important-text);--alert-bg: var(--penna-c-alert-important-bg);--alert-border: var(--penna-c-alert-important-border);--alert-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23000' d='M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v9.5A1.75 1.75 0 0 1 14.25 13H8.06l-2.573 2.573A1.458 1.458 0 0 1 3 14.543V13H1.75A1.75 1.75 0 0 1 0 11.25Zm1.75-.25a.25.25 0 0 0-.25.25v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25Zm7 2.25v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 9a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z'/%3E%3C/svg%3E")}.penna-render .penna-alert--warning{--alert-text: var(--penna-c-alert-warning-text);--alert-bg: var(--penna-c-alert-warning-bg);--alert-border: var(--penna-c-alert-warning-border);--alert-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23000' d='M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z'/%3E%3C/svg%3E")}.penna-render .penna-alert--caution{--alert-text: var(--penna-c-alert-caution-text);--alert-bg: var(--penna-c-alert-caution-bg);--alert-border: var(--penna-c-alert-caution-border);--alert-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23000' d='M4.47.22A.749.749 0 0 1 5 0h6c.199 0 .389.079.53.22l4.25 4.25c.141.14.22.331.22.53v6a.749.749 0 0 1-.22.53l-4.25 4.25A.749.749 0 0 1 11 16H5a.749.749 0 0 1-.53-.22L.22 11.53A.749.749 0 0 1 0 11V5c0-.199.079-.389.22-.53Zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5ZM8 4a.75.75 0 0 1 .75.75v3.5a.75.75 0 0 1-1.5 0v-3.5A.75.75 0 0 1 8 4Zm0 8a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z'/%3E%3C/svg%3E")}.penna-render .penna-alert--danger{--alert-text: var(--penna-c-alert-danger-text);--alert-bg: var(--penna-c-alert-danger-bg);--alert-border: var(--penna-c-alert-danger-border);--alert-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23000' d='M2.343 2.343a8 8 0 1 1 11.314 11.314A8 8 0 0 1 2.343 2.343ZM8 4a.75.75 0 0 0-.75.75v4a.75.75 0 0 0 1.5 0v-4A.75.75 0 0 0 8 4Zm0 8a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z'/%3E%3C/svg%3E")}.penna-render .penna-alert--info{--alert-text: var(--penna-c-brand-1);--alert-bg: var(--penna-c-brand-soft);--alert-border: color-mix( in srgb, var(--penna-c-brand-2) 40%, transparent );--alert-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23000' d='M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z'/%3E%3C/svg%3E")}.penna-render .penna-align{margin:1rem 0;font-size:.875rem;line-height:1.6}.penna-render .penna-align--left{text-align:left}.penna-render .penna-align--center{text-align:center}.penna-render .penna-align--right{text-align:right}.penna-render .penna-align--justify{text-align:justify}.penna-render .penna-align__title{margin:0 0 .5rem;font-weight:600;color:var(--penna-c-text-2)}.penna-render .task-list{list-style:none;padding-left:1.5rem}.penna-render .task-list .task-item{list-style:none;margin:.25rem 0}.penna-render .task-list .task-item.cancelled{color:var(--penna-c-text-3);text-decoration:line-through;text-decoration-color:color-mix(in srgb,var(--penna-c-text-3) 60%,transparent)}.penna-render .task-list .task-item.urgent{font-weight:600}.penna-render .task-list .task-item .marker{--marker-color: var(--penna-c-text-2);--marker-icon: none;display:inline-block;width:1.25rem;height:1.25rem;margin:0 .35rem .05rem -1.7rem;vertical-align:middle;background-color:var(--marker-color);-webkit-mask:var(--marker-icon) no-repeat center/contain;mask:var(--marker-icon) no-repeat center/contain}.penna-render .task-list .task-item.todo .marker{--marker-color: var(--penna-c-text-3);--marker-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%20960%20960'%3E%3Cpath%20fill%3D'%23000'%20d%3D'M200%2C840Q167%2C840%20143.5%2C816.5Q120%2C793%20120%2C760L120%2C200Q120%2C167%20143.5%2C143.5Q167%2C120%20200%2C120L760%2C120Q793%2C120%20816.5%2C143.5Q840%2C167%20840%2C200L840%2C760Q840%2C793%20816.5%2C816.5Q793%2C840%20760%2C840L200%2C840ZM200%2C760L760%2C760Q760%2C760%20760%2C760Q760%2C760%20760%2C760L760%2C200Q760%2C200%20760%2C200Q760%2C200%20760%2C200L200%2C200Q200%2C200%20200%2C200Q200%2C200%20200%2C200L200%2C760Q200%2C760%20200%2C760Q200%2C760%20200%2C760Z'%2F%3E%3C%2Fsvg%3E")}.penna-render .task-list .task-item.done .marker{--marker-color: var(--penna-c-tip);--marker-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%20960%20960'%3E%3Cpath%20fill%3D'%23000'%20d%3D'M424%2C552L338%2C466Q327%2C455%20310%2C455Q293%2C455%20282%2C466Q271%2C477%20271%2C494Q271%2C511%20282%2C522L396%2C636Q408%2C648%20424%2C648Q440%2C648%20452%2C636L678%2C410Q689%2C399%20689%2C382Q689%2C365%20678%2C354Q667%2C343%20650%2C343Q633%2C343%20622%2C354L424%2C552ZM480%2C880Q397%2C880%20324%2C848.5Q251%2C817%20197%2C763Q143%2C709%20111.5%2C636Q80%2C563%2080%2C480Q80%2C397%20111.5%2C324Q143%2C251%20197%2C197Q251%2C143%20324%2C111.5Q397%2C80%20480%2C80Q563%2C80%20636%2C111.5Q709%2C143%20763%2C197Q817%2C251%20848.5%2C324Q880%2C397%20880%2C480Q880%2C563%20848.5%2C636Q817%2C709%20763%2C763Q709%2C817%20636%2C848.5Q563%2C880%20480%2C880ZM480%2C800Q614%2C800%20707%2C707Q800%2C614%20800%2C480Q800%2C346%20707%2C253Q614%2C160%20480%2C160Q346%2C160%20253%2C253Q160%2C346%20160%2C480Q160%2C614%20253%2C707Q346%2C800%20480%2C800ZM480%2C480Q480%2C480%20480%2C480Q480%2C480%20480%2C480Q480%2C480%20480%2C480Q480%2C480%20480%2C480Q480%2C480%20480%2C480Q480%2C480%20480%2C480Q480%2C480%20480%2C480Q480%2C480%20480%2C480Z'%2F%3E%3C%2Fsvg%3E")}.penna-render .task-list .task-item.progress .marker{--marker-color: var(--penna-c-note);--marker-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%20960%20960'%3E%3Cpath%20fill%3D'%23000'%20d%3D'M320%2C520L640%2C520Q657%2C520%20668.5%2C508.5Q680%2C497%20680%2C480Q680%2C463%20668.5%2C451.5Q657%2C440%20640%2C440L320%2C440Q303%2C440%20291.5%2C451.5Q280%2C463%20280%2C480Q280%2C497%20291.5%2C508.5Q303%2C520%20320%2C520ZM200%2C840Q167%2C840%20143.5%2C816.5Q120%2C793%20120%2C760L120%2C200Q120%2C167%20143.5%2C143.5Q167%2C120%20200%2C120L760%2C120Q793%2C120%20816.5%2C143.5Q840%2C167%20840%2C200L840%2C760Q840%2C793%20816.5%2C816.5Q793%2C840%20760%2C840L200%2C840ZM200%2C760L760%2C760Q760%2C760%20760%2C760Q760%2C760%20760%2C760L760%2C200Q760%2C200%20760%2C200Q760%2C200%20760%2C200L200%2C200Q200%2C200%20200%2C200Q200%2C200%20200%2C200L200%2C760Q200%2C760%20200%2C760Q200%2C760%20200%2C760ZM200%2C200L200%2C200Q200%2C200%20200%2C200Q200%2C200%20200%2C200L200%2C760Q200%2C760%20200%2C760Q200%2C760%20200%2C760L200%2C760Q200%2C760%20200%2C760Q200%2C760%20200%2C760L200%2C200Q200%2C200%20200%2C200Q200%2C200%20200%2C200Z'%2F%3E%3C%2Fsvg%3E")}.penna-render .task-list .task-item.migrated .marker{--marker-color: var(--penna-c-warning);--marker-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%20960%20960'%3E%3Cpath%20fill%3D'%23000'%20d%3D'M488%2C520L452%2C556Q441%2C567%20441%2C584Q441%2C601%20452%2C612Q463%2C623%20480%2C623Q497%2C623%20508%2C612L612%2C508Q624%2C496%20624%2C480Q624%2C464%20612%2C452L508%2C348Q497%2C337%20480%2C337Q463%2C337%20452%2C348Q441%2C359%20441%2C376Q441%2C393%20452%2C404L488%2C440L360%2C440Q343%2C440%20331.5%2C451.5Q320%2C463%20320%2C480Q320%2C497%20331.5%2C508.5Q343%2C520%20360%2C520L488%2C520ZM480%2C880Q397%2C880%20324%2C848.5Q251%2C817%20197%2C763Q143%2C709%20111.5%2C636Q80%2C563%2080%2C480Q80%2C397%20111.5%2C324Q143%2C251%20197%2C197Q251%2C143%20324%2C111.5Q397%2C80%20480%2C80Q563%2C80%20636%2C111.5Q709%2C143%20763%2C197Q817%2C251%20848.5%2C324Q880%2C397%20880%2C480Q880%2C563%20848.5%2C636Q817%2C709%20763%2C763Q709%2C817%20636%2C848.5Q563%2C880%20480%2C880ZM480%2C800Q614%2C800%20707%2C707Q800%2C614%20800%2C480Q800%2C346%20707%2C253Q614%2C160%20480%2C160Q346%2C160%20253%2C253Q160%2C346%20160%2C480Q160%2C614%20253%2C707Q346%2C800%20480%2C800ZM480%2C480Q480%2C480%20480%2C480Q480%2C480%20480%2C480Q480%2C480%20480%2C480Q480%2C480%20480%2C480Q480%2C480%20480%2C480Q480%2C480%20480%2C480Q480%2C480%20480%2C480Q480%2C480%20480%2C480Z'%2F%3E%3C%2Fsvg%3E")}.penna-render .task-list .task-item.scheduled .marker{--marker-color: var(--penna-c-brand-1);--marker-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%20960%20960'%3E%3Cpath%20fill%3D'%23000'%20d%3D'M472%2C520L600%2C520Q617%2C520%20628.5%2C508.5Q640%2C497%20640%2C480Q640%2C463%20628.5%2C451.5Q617%2C440%20600%2C440L472%2C440L508%2C404Q519%2C393%20519%2C376Q519%2C359%20508%2C348Q497%2C337%20480%2C337Q463%2C337%20452%2C348L348%2C452Q336%2C464%20336%2C480Q336%2C496%20348%2C508L452%2C612Q463%2C623%20480%2C623Q497%2C623%20508%2C612Q519%2C601%20519%2C584Q519%2C567%20508%2C556L472%2C520ZM480%2C880Q397%2C880%20324%2C848.5Q251%2C817%20197%2C763Q143%2C709%20111.5%2C636Q80%2C563%2080%2C480Q80%2C397%20111.5%2C324Q143%2C251%20197%2C197Q251%2C143%20324%2C111.5Q397%2C80%20480%2C80Q563%2C80%20636%2C111.5Q709%2C143%20763%2C197Q817%2C251%20848.5%2C324Q880%2C397%20880%2C480Q880%2C563%20848.5%2C636Q817%2C709%20763%2C763Q709%2C817%20636%2C848.5Q563%2C880%20480%2C880ZM480%2C800Q614%2C800%20707%2C707Q800%2C614%20800%2C480Q800%2C346%20707%2C253Q614%2C160%20480%2C160Q346%2C160%20253%2C253Q160%2C346%20160%2C480Q160%2C614%20253%2C707Q346%2C800%20480%2C800ZM480%2C480Q480%2C480%20480%2C480Q480%2C480%20480%2C480Q480%2C480%20480%2C480Q480%2C480%20480%2C480Q480%2C480%20480%2C480Q480%2C480%20480%2C480Q480%2C480%20480%2C480Q480%2C480%20480%2C480Z'%2F%3E%3C%2Fsvg%3E")}.penna-render .task-list .task-item.cancelled .marker{--marker-color: var(--penna-c-text-3);--marker-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%20960%20960'%3E%3Cpath%20fill%3D'%23000'%20d%3D'M480%2C536L596%2C652Q607%2C663%20624%2C663Q641%2C663%20652%2C652Q663%2C641%20663%2C624Q663%2C607%20652%2C596L536%2C480L652%2C364Q663%2C353%20663%2C336Q663%2C319%20652%2C308Q641%2C297%20624%2C297Q607%2C297%20596%2C308L480%2C424L364%2C308Q353%2C297%20336%2C297Q319%2C297%20308%2C308Q297%2C319%20297%2C336Q297%2C353%20308%2C364L424%2C480L308%2C596Q297%2C607%20297%2C624Q297%2C641%20308%2C652Q319%2C663%20336%2C663Q353%2C663%20364%2C652L480%2C536ZM480%2C880Q397%2C880%20324%2C848.5Q251%2C817%20197%2C763Q143%2C709%20111.5%2C636Q80%2C563%2080%2C480Q80%2C397%20111.5%2C324Q143%2C251%20197%2C197Q251%2C143%20324%2C111.5Q397%2C80%20480%2C80Q563%2C80%20636%2C111.5Q709%2C143%20763%2C197Q817%2C251%20848.5%2C324Q880%2C397%20880%2C480Q880%2C563%20848.5%2C636Q817%2C709%20763%2C763Q709%2C817%20636%2C848.5Q563%2C880%20480%2C880ZM480%2C800Q614%2C800%20707%2C707Q800%2C614%20800%2C480Q800%2C346%20707%2C253Q614%2C160%20480%2C160Q346%2C160%20253%2C253Q160%2C346%20160%2C480Q160%2C614%20253%2C707Q346%2C800%20480%2C800ZM480%2C480Q480%2C480%20480%2C480Q480%2C480%20480%2C480Q480%2C480%20480%2C480Q480%2C480%20480%2C480Q480%2C480%20480%2C480Q480%2C480%20480%2C480Q480%2C480%20480%2C480Q480%2C480%20480%2C480Z'%2F%3E%3C%2Fsvg%3E")}.penna-render .task-list .task-item.urgent .marker{--marker-color: var(--penna-c-caution);--marker-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%20960%20960'%3E%3Cpath%20fill%3D'%23000'%20d%3D'M480%2C840Q447%2C840%20423.5%2C816.5Q400%2C793%20400%2C760Q400%2C727%20423.5%2C703.5Q447%2C680%20480%2C680Q513%2C680%20536.5%2C703.5Q560%2C727%20560%2C760Q560%2C793%20536.5%2C816.5Q513%2C840%20480%2C840ZM480%2C600Q447%2C600%20423.5%2C576.5Q400%2C553%20400%2C520L400%2C200Q400%2C167%20423.5%2C143.5Q447%2C120%20480%2C120Q513%2C120%20536.5%2C143.5Q560%2C167%20560%2C200L560%2C520Q560%2C553%20536.5%2C576.5Q513%2C600%20480%2C600Z'%2F%3E%3C%2Fsvg%3E")}.penna-render .penna-badge{transition:color .25s,background-color .25s,border-color .25s;border:.0625rem solid transparent;border-radius:.75rem;margin-left:.125rem;padding:0 .625rem;font-size:.75rem;font-weight:500;line-height:1.375rem;display:inline-block;vertical-align:middle;color:var(--penna-c-text-2);background-color:var(--penna-c-bg-elevated);border-color:color-mix(in srgb,var(--penna-c-text-3) 30%,transparent)}.penna-render .penna-badge.top{vertical-align:top}.penna-render .penna-badge.bottom{vertical-align:bottom}.penna-render .penna-badge.note{color:var(--penna-c-alert-note-text);background-color:var(--penna-c-alert-note-bg);border-color:var(--penna-c-alert-note-border)}.penna-render .penna-badge.tip{color:var(--penna-c-alert-tip-text);background-color:var(--penna-c-alert-tip-bg);border-color:var(--penna-c-alert-tip-border)}.penna-render .penna-badge.warning{color:var(--penna-c-alert-warning-text);background-color:var(--penna-c-alert-warning-bg);border-color:var(--penna-c-alert-warning-border)}.penna-render .penna-badge.caution{color:var(--penna-c-alert-caution-text);background-color:var(--penna-c-alert-caution-bg);border-color:var(--penna-c-alert-caution-border)}.penna-render .penna-badge.danger{color:var(--penna-c-alert-danger-text);background-color:var(--penna-c-alert-danger-bg);border-color:var(--penna-c-alert-danger-border)}.penna-render .penna-badge.important{color:var(--penna-c-alert-important-text);background-color:var(--penna-c-alert-important-bg);border-color:var(--penna-c-alert-important-border)}.penna-render .penna-card{margin:0 0 1rem;border:.0625rem solid color-mix(in srgb,var(--penna-c-text-3) 24%,transparent);border-radius:.5rem;padding:1rem;background-color:var(--penna-c-bg-elevated);color:var(--penna-c-text-2);font-size:.875rem;line-height:1.6}.penna-render .penna-card__title{margin:0 0 .75rem;font-weight:600;font-size:.875rem;line-height:1.4;color:var(--penna-c-text-1)}.penna-render .penna-card__body>:first-child{margin-top:0}.penna-render .penna-card__body>:last-child{margin-bottom:0}.penna-render .penna-card.penna-link-card{position:relative;display:block;padding-right:2.25rem;text-decoration:none;cursor:pointer;transition:border-color .2s,box-shadow .2s,transform .2s}.penna-render .penna-card.penna-link-card:after{content:"";position:absolute;top:50%;right:.875rem;width:1rem;height:1rem;transform:translateY(-50%);background-color:var(--penna-c-text-3);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M8.59 16.59 13.17 12 8.59 7.41 10 6l6 6-6 6z'/%3E%3C/svg%3E") no-repeat center/contain;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M8.59 16.59 13.17 12 8.59 7.41 10 6l6 6-6 6z'/%3E%3C/svg%3E") no-repeat center/contain;transition:transform .2s,background-color .2s}.penna-render .penna-card.penna-link-card:hover{border-color:color-mix(in srgb,var(--penna-c-brand-2) 60%,transparent);box-shadow:0 .25rem .75rem color-mix(in srgb,var(--penna-c-text-1) 8%,transparent)}.penna-render .penna-card.penna-link-card:hover:after{transform:translateY(-50%) translate(.125rem);background-color:var(--penna-c-brand-2)}.penna-render .penna-card.penna-link-card:focus-visible{outline:.125rem solid var(--penna-c-brand-2);outline-offset:.125rem}.penna-render .penna-card.penna-link-card--has-icon{display:flex;align-items:flex-start;gap:.75rem}.penna-render .penna-card.penna-link-card__icon{flex:0 0 2.5rem;width:2.5rem;height:2.5rem;border-radius:.5rem;object-fit:cover;background:color-mix(in srgb,var(--penna-c-text-3) 10%,var(--penna-c-bg-elevated))}.penna-render .penna-card.penna-link-card__main{flex:1 1 auto;min-width:0}.penna-render .penna-image-card{margin:1rem 0;border-radius:.5rem;overflow:hidden}.penna-render .penna-image-card__media{position:relative;overflow:hidden;border-radius:.5rem;background-color:var(--penna-c-bg-elevated)}.penna-render .penna-image-card img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}.penna-render .penna-image-card__info{position:absolute;inset:auto 0 0;padding:.75rem 1rem .875rem;color:var(--penna-c-image-card-info-fg)!important;background:var(--penna-c-image-card-info-bg);transition:padding .25s ease,background .25s ease}.penna-render .penna-image-card__title{margin:0;font-size:1.05rem;font-weight:600;line-height:1.4;color:var(--penna-c-image-card-info-fg)!important}.penna-render .penna-image-card__title a{color:var(--penna-c-image-card-info-fg)!important;text-decoration:none}.penna-render .penna-image-card__title a:hover{text-decoration:underline}.penna-render .penna-image-card__copyright,.penna-render .penna-image-card__description{max-height:0;opacity:0;margin:0;overflow:hidden;color:var(--penna-c-image-card-info-fg)!important;transition:max-height .3s ease,opacity .25s ease,margin .25s ease}.penna-render .penna-image-card__copyright{font-size:.75rem;line-height:1.4}.penna-render .penna-image-card__description{font-size:.8125rem;line-height:1.55}.penna-render .penna-image-card__description>:first-child{margin-top:0}.penna-render .penna-image-card__description>:last-child{margin-bottom:0}.penna-render .penna-image-card:hover .penna-image-card__info,.penna-render .penna-image-card:focus-within .penna-image-card__info{padding:1.25rem 1rem 1rem;background:var(--penna-c-image-card-info-bg-hover)}.penna-render .penna-image-card:hover .penna-image-card__title,.penna-render .penna-image-card:focus-within .penna-image-card__title{margin:0 0 .5rem}.penna-render .penna-image-card:hover .penna-image-card__copyright,.penna-render .penna-image-card:focus-within .penna-image-card__copyright{max-height:1.875rem;opacity:.88;margin:0 0 .5rem}.penna-render .penna-image-card:hover .penna-image-card__description,.penna-render .penna-image-card:focus-within .penna-image-card__description{max-height:9.75rem;opacity:.95;overflow-y:auto}.penna-render .penna-repo-card{border:.0625rem solid color-mix(in srgb,var(--penna-c-text-3) 24%,transparent);border-radius:.5rem;padding:1rem;margin:1rem 0;background-color:var(--penna-c-bg-elevated);color:var(--penna-c-text-2);font-size:.875rem;line-height:1.6}.penna-render .penna-repo-card__name{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;margin:0 0 .625rem;font-weight:600;color:var(--penna-c-text-1)}.penna-render .penna-repo-card__icon{width:1rem;height:1rem;flex-shrink:0;background-color:var(--penna-c-text-1);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23000' d='M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8Z'/%3E%3C/svg%3E") no-repeat center/contain;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23000' d='M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8Z'/%3E%3C/svg%3E") no-repeat center/contain}.penna-render .penna-repo-card__link a{color:inherit;text-decoration:none}.penna-render .penna-repo-card__link a:hover{color:var(--penna-c-brand-2);text-decoration:underline}.penna-render .penna-repo-card__visibility{padding:.125rem .5rem;border:.0625rem solid color-mix(in srgb,var(--penna-c-text-3) 30%,transparent);border-radius:62.4375rem;font-size:.75rem;font-weight:500;color:var(--penna-c-text-2)}.penna-render .penna-repo-card__desc{margin:0 0 .75rem;color:var(--penna-c-text-2)}.penna-render .penna-repo-card__desc>:first-child{margin-top:0}.penna-render .penna-repo-card__desc>:last-child{margin-bottom:0}.penna-render .penna-repo-card__info{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.25rem;padding-top:.75rem;border-top:.0625rem solid color-mix(in srgb,var(--penna-c-text-3) 16%,transparent)}.penna-render .penna-repo-card__shield{display:inline-flex;line-height:0;text-decoration:none;transition:opacity .15s ease}.penna-render .penna-repo-card__shield:hover{opacity:.85}.penna-render .penna-repo-card__shield-img{display:block;height:1.25rem}.penna-render .penna-card-grid{--card-grid-cols-sm: 1;--card-grid-cols-md: 2;--card-grid-cols-lg: 2;display:grid;grid-template-columns:repeat(var(--card-grid-cols-sm),minmax(0,1fr));gap:1rem;margin:1rem 0}@media(min-width:48rem){.penna-render .penna-card-grid{grid-template-columns:repeat(var(--card-grid-cols-md),minmax(0,1fr))}}@media(min-width:60rem){.penna-render .penna-card-grid{grid-template-columns:repeat(var(--card-grid-cols-lg),minmax(0,1fr))}}.penna-render .penna-card-masonry{display:flex;align-items:flex-start;width:100%;margin:1rem 0}.penna-render .penna-card-masonry__item{flex:1;display:flex;flex-direction:column;min-width:0}.penna-render .penna-card-masonry [class^=penna-card-masonry__v-]>:first-child{margin-top:0}.penna-render .penna-card-masonry [class^=penna-card-masonry__v-]>:last-child{margin-bottom:0}.penna-render .penna-card-masonry [class^=penna-card-masonry__v-] img{display:block;width:100%;height:auto;border-radius:.5rem}.penna-render .penna-steps{margin:1rem 0}.penna-render .penna-steps>ol{list-style:none;counter-reset:penna-step;padding:0;margin:0}.penna-render .penna-steps>ol>li{position:relative;counter-increment:penna-step;list-style:none;margin:0 0 0 .875rem;padding:0 0 1.5rem 2.125rem;border-left:.0625rem solid color-mix(in srgb,var(--penna-c-text-3) 22%,transparent)}.penna-render .penna-steps>ol>li:before{content:counter(penna-step);position:absolute;left:0;top:0;transform:translate(-50%);display:flex;align-items:center;justify-content:center;width:1.625rem;height:1.625rem;border-radius:50%;background:var(--penna-c-bg);border:.09375rem solid color-mix(in srgb,var(--penna-c-brand-2) 50%,transparent);color:var(--penna-c-brand-1);font-size:.75rem;font-weight:600;font-variant-numeric:tabular-nums;line-height:1;letter-spacing:-.02rem;box-shadow:0 0 0 .1875rem var(--penna-c-bg);z-index:1}.penna-render .penna-steps>ol>li:last-child{padding-bottom:0;border-left-color:transparent}.penna-render .penna-steps>ol>li>p:first-child{margin:0 0 .5rem;padding-top:.125rem;font-weight:600;color:var(--penna-c-text-1);line-height:1.375rem}.penna-render .penna-steps>ol>li>:not(p:first-child){margin-top:0}.penna-render .penna-steps>ol>li>:last-child{margin-bottom:0}.penna-render .penna-tabs{margin:1rem 0;border:.0625rem solid color-mix(in srgb,var(--penna-c-text-3) 22%,transparent);border-radius:.5rem;background:var(--penna-c-bg-elevated);overflow:hidden;overflow-anchor:none}.penna-render .penna-tabs__radio{position:absolute;width:.0625rem;height:.0625rem;padding:0;margin:-.0625rem;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.penna-render .penna-tabs__nav{display:flex;flex-wrap:nowrap;gap:.125rem;padding:0 .5rem;border-bottom:.0625rem solid color-mix(in srgb,var(--penna-c-text-3) 18%,transparent);overflow-x:auto;scrollbar-width:thin}.penna-render .penna-tabs__label{position:relative;flex:0 0 auto;margin:0;padding:.6875rem .875rem;border-bottom:.125rem solid transparent;color:var(--penna-c-text-2);font-size:.875rem;font-weight:500;line-height:1.4;cursor:pointer;user-select:none;white-space:nowrap;transition:color .15s ease,border-color .15s ease}.penna-render .penna-tabs__label:hover{color:var(--penna-c-text-1)}.penna-render .penna-tabs__panels{padding:1rem;color:var(--penna-c-text-2);font-size:.875rem;line-height:1.6}.penna-render .penna-tabs__panel{display:none}.penna-render .penna-tabs__panel>:first-child{margin-top:0}.penna-render .penna-tabs__panel>:last-child{margin-bottom:0}.penna-render .penna-tabs:has(>.penna-tabs__nav>.penna-tabs__label:nth-child(1)>.penna-tabs__radio:checked) .penna-tabs__panels>.penna-tabs__panel:nth-child(1){display:block}.penna-render .penna-tabs:has(>.penna-tabs__nav>.penna-tabs__label:nth-child(1)>.penna-tabs__radio:checked) .penna-tabs__nav>.penna-tabs__label:nth-child(1){color:var(--penna-c-brand-1);border-bottom-color:var(--penna-c-brand-2);font-weight:600}.penna-render .penna-tabs:has(>.penna-tabs__nav>.penna-tabs__label:nth-child(2)>.penna-tabs__radio:checked) .penna-tabs__panels>.penna-tabs__panel:nth-child(2){display:block}.penna-render .penna-tabs:has(>.penna-tabs__nav>.penna-tabs__label:nth-child(2)>.penna-tabs__radio:checked) .penna-tabs__nav>.penna-tabs__label:nth-child(2){color:var(--penna-c-brand-1);border-bottom-color:var(--penna-c-brand-2);font-weight:600}.penna-render .penna-tabs:has(>.penna-tabs__nav>.penna-tabs__label:nth-child(3)>.penna-tabs__radio:checked) .penna-tabs__panels>.penna-tabs__panel:nth-child(3){display:block}.penna-render .penna-tabs:has(>.penna-tabs__nav>.penna-tabs__label:nth-child(3)>.penna-tabs__radio:checked) .penna-tabs__nav>.penna-tabs__label:nth-child(3){color:var(--penna-c-brand-1);border-bottom-color:var(--penna-c-brand-2);font-weight:600}.penna-render .penna-tabs:has(>.penna-tabs__nav>.penna-tabs__label:nth-child(4)>.penna-tabs__radio:checked) .penna-tabs__panels>.penna-tabs__panel:nth-child(4){display:block}.penna-render .penna-tabs:has(>.penna-tabs__nav>.penna-tabs__label:nth-child(4)>.penna-tabs__radio:checked) .penna-tabs__nav>.penna-tabs__label:nth-child(4){color:var(--penna-c-brand-1);border-bottom-color:var(--penna-c-brand-2);font-weight:600}.penna-render .penna-tabs:has(>.penna-tabs__nav>.penna-tabs__label:nth-child(5)>.penna-tabs__radio:checked) .penna-tabs__panels>.penna-tabs__panel:nth-child(5){display:block}.penna-render .penna-tabs:has(>.penna-tabs__nav>.penna-tabs__label:nth-child(5)>.penna-tabs__radio:checked) .penna-tabs__nav>.penna-tabs__label:nth-child(5){color:var(--penna-c-brand-1);border-bottom-color:var(--penna-c-brand-2);font-weight:600}.penna-render .penna-tabs:has(>.penna-tabs__nav>.penna-tabs__label:nth-child(6)>.penna-tabs__radio:checked) .penna-tabs__panels>.penna-tabs__panel:nth-child(6){display:block}.penna-render .penna-tabs:has(>.penna-tabs__nav>.penna-tabs__label:nth-child(6)>.penna-tabs__radio:checked) .penna-tabs__nav>.penna-tabs__label:nth-child(6){color:var(--penna-c-brand-1);border-bottom-color:var(--penna-c-brand-2);font-weight:600}.penna-render .penna-tabs:has(>.penna-tabs__nav>.penna-tabs__label:nth-child(7)>.penna-tabs__radio:checked) .penna-tabs__panels>.penna-tabs__panel:nth-child(7){display:block}.penna-render .penna-tabs:has(>.penna-tabs__nav>.penna-tabs__label:nth-child(7)>.penna-tabs__radio:checked) .penna-tabs__nav>.penna-tabs__label:nth-child(7){color:var(--penna-c-brand-1);border-bottom-color:var(--penna-c-brand-2);font-weight:600}.penna-render .penna-tabs:has(>.penna-tabs__nav>.penna-tabs__label:nth-child(8)>.penna-tabs__radio:checked) .penna-tabs__panels>.penna-tabs__panel:nth-child(8){display:block}.penna-render .penna-tabs:has(>.penna-tabs__nav>.penna-tabs__label:nth-child(8)>.penna-tabs__radio:checked) .penna-tabs__nav>.penna-tabs__label:nth-child(8){color:var(--penna-c-brand-1);border-bottom-color:var(--penna-c-brand-2);font-weight:600}.penna-render .penna-tabs:has(>.penna-tabs__nav>.penna-tabs__label:nth-child(9)>.penna-tabs__radio:checked) .penna-tabs__panels>.penna-tabs__panel:nth-child(9){display:block}.penna-render .penna-tabs:has(>.penna-tabs__nav>.penna-tabs__label:nth-child(9)>.penna-tabs__radio:checked) .penna-tabs__nav>.penna-tabs__label:nth-child(9){color:var(--penna-c-brand-1);border-bottom-color:var(--penna-c-brand-2);font-weight:600}.penna-render .penna-tabs:has(>.penna-tabs__nav>.penna-tabs__label:nth-child(10)>.penna-tabs__radio:checked) .penna-tabs__panels>.penna-tabs__panel:nth-child(10){display:block}.penna-render .penna-tabs:has(>.penna-tabs__nav>.penna-tabs__label:nth-child(10)>.penna-tabs__radio:checked) .penna-tabs__nav>.penna-tabs__label:nth-child(10){color:var(--penna-c-brand-1);border-bottom-color:var(--penna-c-brand-2);font-weight:600}.penna-render .penna-tabs:has(>.penna-tabs__nav>.penna-tabs__label:nth-child(11)>.penna-tabs__radio:checked) .penna-tabs__panels>.penna-tabs__panel:nth-child(11){display:block}.penna-render .penna-tabs:has(>.penna-tabs__nav>.penna-tabs__label:nth-child(11)>.penna-tabs__radio:checked) .penna-tabs__nav>.penna-tabs__label:nth-child(11){color:var(--penna-c-brand-1);border-bottom-color:var(--penna-c-brand-2);font-weight:600}.penna-render .penna-tabs:has(>.penna-tabs__nav>.penna-tabs__label:nth-child(12)>.penna-tabs__radio:checked) .penna-tabs__panels>.penna-tabs__panel:nth-child(12){display:block}.penna-render .penna-tabs:has(>.penna-tabs__nav>.penna-tabs__label:nth-child(12)>.penna-tabs__radio:checked) .penna-tabs__nav>.penna-tabs__label:nth-child(12){color:var(--penna-c-brand-1);border-bottom-color:var(--penna-c-brand-2);font-weight:600}.penna-render .penna-tabs:has(>.penna-tabs__nav>.penna-tabs__label:nth-child(13)>.penna-tabs__radio:checked) .penna-tabs__panels>.penna-tabs__panel:nth-child(13){display:block}.penna-render .penna-tabs:has(>.penna-tabs__nav>.penna-tabs__label:nth-child(13)>.penna-tabs__radio:checked) .penna-tabs__nav>.penna-tabs__label:nth-child(13){color:var(--penna-c-brand-1);border-bottom-color:var(--penna-c-brand-2);font-weight:600}.penna-render .penna-tabs:has(>.penna-tabs__nav>.penna-tabs__label:nth-child(14)>.penna-tabs__radio:checked) .penna-tabs__panels>.penna-tabs__panel:nth-child(14){display:block}.penna-render .penna-tabs:has(>.penna-tabs__nav>.penna-tabs__label:nth-child(14)>.penna-tabs__radio:checked) .penna-tabs__nav>.penna-tabs__label:nth-child(14){color:var(--penna-c-brand-1);border-bottom-color:var(--penna-c-brand-2);font-weight:600}.penna-render .penna-tabs:has(>.penna-tabs__nav>.penna-tabs__label:nth-child(15)>.penna-tabs__radio:checked) .penna-tabs__panels>.penna-tabs__panel:nth-child(15){display:block}.penna-render .penna-tabs:has(>.penna-tabs__nav>.penna-tabs__label:nth-child(15)>.penna-tabs__radio:checked) .penna-tabs__nav>.penna-tabs__label:nth-child(15){color:var(--penna-c-brand-1);border-bottom-color:var(--penna-c-brand-2);font-weight:600}.penna-render .penna-tabs:has(>.penna-tabs__nav>.penna-tabs__label:nth-child(16)>.penna-tabs__radio:checked) .penna-tabs__panels>.penna-tabs__panel:nth-child(16){display:block}.penna-render .penna-tabs:has(>.penna-tabs__nav>.penna-tabs__label:nth-child(16)>.penna-tabs__radio:checked) .penna-tabs__nav>.penna-tabs__label:nth-child(16){color:var(--penna-c-brand-1);border-bottom-color:var(--penna-c-brand-2);font-weight:600}.penna-render .penna-field{padding:1rem;border-bottom:.0625rem solid color-mix(in srgb,var(--penna-c-text-3) 14%,transparent)}.penna-render .penna-field:last-child{border-bottom:none}.penna-render .penna-field__head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0 0 .5rem}.penna-render .penna-field__meta{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;min-width:0;font-size:.875rem;line-height:1.5}.penna-render .penna-field__name{font-weight:600;color:var(--penna-c-text-1)}.penna-render .penna-field__tag{padding:.0625rem .5rem;border-radius:62.4375rem;font-size:.75rem;font-weight:500}.penna-render .penna-field__tag--required{color:var(--penna-c-alert-danger-text);background:var(--penna-c-alert-danger-bg);border:.0625rem solid var(--penna-c-alert-danger-border)}.penna-render .penna-field__tag--optional{color:var(--penna-c-alert-note-text);background:var(--penna-c-alert-note-bg);border:.0625rem solid var(--penna-c-alert-note-border)}.penna-render .penna-field__tag--deprecated{color:var(--penna-c-alert-warning-text);background:var(--penna-c-alert-warning-bg);border:.0625rem solid var(--penna-c-alert-warning-border)}.penna-render .penna-field__type{flex-shrink:0;margin-left:auto;text-align:right}.penna-render .penna-field__type code{padding:.125rem .375rem;border-radius:.25rem;font-size:.75rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;color:var(--penna-c-brand-1);background:color-mix(in srgb,var(--penna-c-brand-soft) 65%,transparent)}.penna-render .penna-field__default{margin:0 0 .625rem;font-size:.8125rem;text-align:right;color:var(--penna-c-text-2)}.penna-render .penna-field__default code{padding:.125rem .375rem;border-radius:.25rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;color:var(--penna-c-text-1);background:color-mix(in srgb,var(--penna-c-bg) 70%,transparent);border:.0625rem solid color-mix(in srgb,var(--penna-c-text-3) 18%,transparent)}.penna-render .penna-field__description{color:var(--penna-c-text-2);font-size:.875rem;line-height:1.6}.penna-render .penna-field__description>:first-child{margin-top:0}.penna-render .penna-field__description>:last-child{margin-bottom:0}.penna-render .penna-field__description .penna-badge{margin-right:.5rem}.penna-render .penna-field-group{margin:1rem 0;border:.0625rem solid color-mix(in srgb,var(--penna-c-text-3) 22%,transparent);border-radius:.5rem;background:var(--penna-c-bg-elevated);overflow:hidden}.penna-render .penna-timeline{--penna-timeline-c-line: color-mix( in srgb, var(--penna-c-text-3) 70%, transparent );--penna-timeline-c-point: var(--penna-c-brand-2);--penna-timeline-c-title: var(--penna-c-text-1);--penna-timeline-c-text: var(--penna-c-text-2);--penna-timeline-c-time: var(--penna-c-text-3);margin:1rem 0}.penna-render .penna-timeline-box{display:flex;flex-direction:column}.penna-render .penna-timeline-item{display:grid;grid-template-columns:1.5rem 1fr;gap:0 1rem;padding-bottom:1.5rem;color:var(--penna-timeline-c-text)}.penna-render .penna-timeline-item--info{--penna-timeline-c-line: var(--penna-c-alert-note-text);--penna-timeline-c-point: var(--penna-c-alert-note-text)}.penna-render .penna-timeline-item--tip,.penna-render .penna-timeline-item--success{--penna-timeline-c-line: var(--penna-c-alert-tip-text);--penna-timeline-c-point: var(--penna-c-alert-tip-text)}.penna-render .penna-timeline-item--warning{--penna-timeline-c-line: var(--penna-c-alert-warning-text);--penna-timeline-c-point: var(--penna-c-alert-warning-text)}.penna-render .penna-timeline-item--danger{--penna-timeline-c-line: var(--penna-c-alert-danger-text);--penna-timeline-c-point: var(--penna-c-alert-danger-text)}.penna-render .penna-timeline-item--caution{--penna-timeline-c-line: var(--penna-c-alert-caution-text);--penna-timeline-c-point: var(--penna-c-alert-caution-text)}.penna-render .penna-timeline-item--important{--penna-timeline-c-line: var(--penna-c-alert-important-text);--penna-timeline-c-point: var(--penna-c-alert-important-text)}.penna-render .penna-timeline-item:last-child{padding-bottom:0}.penna-render .penna-timeline-item:last-child .penna-timeline-line:after{display:none}.penna-render .penna-timeline-line{position:relative;display:flex;justify-content:center}.penna-render .penna-timeline-line:after{content:"";position:absolute;top:.875rem;bottom:-1.5rem;left:50%;transform:translate(-50%);width:.125rem;background:var(--penna-timeline-c-line)}.penna-render .penna-timeline-item--line-dashed .penna-timeline-line:after{width:0;background:transparent;border-left:.125rem dashed var(--penna-timeline-c-line)}.penna-render .penna-timeline-item--line-dotted .penna-timeline-line:after{width:0;background:transparent;border-left:.125rem dotted var(--penna-timeline-c-line)}.penna-render .penna-timeline-point{position:relative;z-index:1;width:.75rem;height:.75rem;margin-top:.25rem;border-radius:50%;background:var(--penna-timeline-c-point);box-shadow:0 0 0 .1875rem var(--penna-c-bg-elevated)}.penna-render .penna-timeline-container{min-width:0}.penna-render .penna-timeline-content{font-size:.875rem;line-height:1.6}.penna-render .penna-timeline-content>:first-child{margin-top:0}.penna-render .penna-timeline-content>:last-child{margin-bottom:0}.penna-render .penna-timeline-title{margin:0 0 .5rem;font-size:.9375rem;font-weight:600;color:var(--penna-timeline-c-title);line-height:1.5}.penna-render .penna-timeline-time{margin:.5rem 0 0;font-size:.8125rem;color:var(--penna-timeline-c-time);line-height:1.4}.penna-render .penna-timeline--placement-right .penna-timeline-item{grid-template-columns:1fr 1.5rem}.penna-render .penna-timeline--placement-right .penna-timeline-item .penna-timeline-line{order:2}.penna-render .penna-timeline--placement-right .penna-timeline-item .penna-timeline-container{order:1;text-align:right}.penna-render .penna-timeline--placement-between .penna-timeline-item--placement-right{grid-template-columns:1fr 1.5rem}.penna-render .penna-timeline--placement-between .penna-timeline-item--placement-right .penna-timeline-line{order:2}.penna-render .penna-timeline--placement-between .penna-timeline-item--placement-right .penna-timeline-container{order:1;text-align:right}.penna-render .penna-collapse{margin:1rem 0;border:.0625rem solid color-mix(in srgb,var(--penna-c-text-3) 22%,transparent);border-radius:.5rem;background:var(--penna-c-bg-elevated);overflow:hidden}.penna-render .penna-collapse details{border-bottom:.0625rem solid color-mix(in srgb,var(--penna-c-text-3) 14%,transparent)}.penna-render .penna-collapse details:last-child{border-bottom:none}.penna-render .penna-collapse summary{padding:.6875rem .875rem;cursor:pointer;font-size:.875rem;font-weight:600;color:var(--penna-c-text-1);background:color-mix(in srgb,var(--penna-c-bg-elevated) 88%,var(--penna-c-text-3));list-style:none;line-height:1.5;user-select:none}.penna-render .penna-collapse summary::-webkit-details-marker{display:none}.penna-render .penna-collapse summary:before{content:"▸";display:inline-block;margin-right:.5rem;color:var(--penna-c-text-3);transition:transform .15s ease}.penna-render .penna-collapse details[open]>summary:before{transform:rotate(90deg)}.penna-render .penna-collapse-body{padding:.75rem .875rem;color:var(--penna-c-text-2);font-size:.875rem;line-height:1.6}.penna-render .penna-collapse-body>:first-child{margin-top:0}.penna-render .penna-collapse-body>:last-child{margin-bottom:0}.penna-render .penna-media{margin:1rem 0;border:.0625rem solid color-mix(in srgb,var(--penna-c-text-3) 20%,transparent);border-radius:.625rem;background:var(--penna-c-bg-elevated);overflow:hidden}.penna-render .penna-media__player{display:block;width:100%;max-width:100%;margin:0;border:0;background:var(--penna-c-media-player-bg);outline:none}.penna-render .penna-media__player--inline{margin:.5rem 0;border-radius:.5rem}.penna-render .penna-media__caption{margin:0;padding:.625rem .875rem .75rem;border-top:.0625rem solid color-mix(in srgb,var(--penna-c-text-3) 14%,transparent);color:var(--penna-c-text-2);font-size:.8125rem;line-height:1.5;text-align:center}.penna-render .penna-video .penna-media__player{aspect-ratio:16/9;object-fit:contain;background:var(--penna-c-media-shade)}.penna-render .penna-audio{padding:0;background:var(--penna-c-bg-elevated)}.penna-render .penna-audio-player{display:flex;align-items:center;gap:.875rem;padding:.875rem 1rem}.penna-render .penna-audio-player__cover{flex:0 0 3.5rem;width:3.5rem;height:3.5rem;border-radius:.75rem;background:var(--penna-c-brand-2);position:relative;overflow:hidden}.penna-render .penna-audio-player__cover:before{content:"";position:absolute;inset:0;margin:auto;width:1.125rem;height:1.125rem;border:.125rem solid color-mix(in srgb,var(--penna-c-on-brand) 88%,transparent);border-radius:50%}.penna-render .penna-audio-player__cover:after{content:"";position:absolute;top:50%;left:50%;width:.625rem;height:.875rem;background:color-mix(in srgb,var(--penna-c-on-brand) 92%,transparent);clip-path:polygon(0 0,100% 50%,0 100%);transform:translate(-34%,-50%)}.penna-render .penna-audio-player__cover--image{background:color-mix(in srgb,var(--penna-c-text-3) 12%,var(--penna-c-bg-elevated))}.penna-render .penna-audio-player__cover--image:before,.penna-render .penna-audio-player__cover--image:after{display:none}.penna-render .penna-audio-player__cover-img{display:block;width:100%;height:100%;object-fit:cover}.penna-render .penna-audio-player__main{flex:1 1 auto;min-width:0}.penna-render .penna-audio-player__title{margin:0 0 .5rem;color:var(--penna-c-text-1);font-size:.875rem;font-weight:600;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.penna-render .penna-audio-player__track{display:block;width:100%;height:2.25rem;margin:0;border:0;border-radius:62.4375rem;background:color-mix(in srgb,var(--penna-c-text-3) 10%,transparent);outline:none}.penna-render .penna-audio-player__track::-webkit-media-controls-panel{background:transparent}.penna-render .penna-audio-player__track::-webkit-media-controls-enclosure{border-radius:62.4375rem;background:transparent}.penna-render .penna-audio-player__track::-webkit-media-controls-play-button,.penna-render .penna-audio-player__track::-webkit-media-controls-mute-button{filter:none;opacity:.92}.penna-render .penna-audio-player__track::-webkit-media-controls-timeline{border-radius:62.4375rem;margin-inline:.25rem}.penna-render .penna-audio-player__track::-webkit-media-controls-current-time-display,.penna-render .penna-audio-player__track::-webkit-media-controls-time-remaining-display{color:var(--penna-c-text-2);font-size:.6875rem;font-variant-numeric:tabular-nums}.penna-render .penna-iframe{padding:0;overflow:hidden}.penna-render .penna-iframe__frame{position:relative;aspect-ratio:16/9;background:color-mix(in srgb,var(--penna-c-text-3) 8%,var(--penna-c-bg-elevated))}.penna-render .penna-iframe__frame iframe{position:absolute;inset:0;display:block;width:100%;height:100%;margin:0;padding:0;border:0;background:transparent}.penna-render .penna-math{line-height:0}.penna-render .penna-math-latex{border:0;background:transparent}.penna-render .penna-math-inline{display:inline-block;vertical-align:middle;margin:0 .15rem}.penna-render .penna-math-inline .penna-math-latex{display:inline-block;vertical-align:middle;max-height:1.35rem;width:auto}.penna-render .penna-math-block{display:block;margin:1rem 0;text-align:center}.penna-render .penna-math-block .penna-math-latex{display:inline-block;max-width:100%;height:auto}.penna-render .penna-footnotes{margin-top:2rem}.penna-render .penna-footnotes__sep{margin:0 0 1rem;border:0;border-top:.0625rem solid color-mix(in srgb,var(--penna-c-text-3) 22%,transparent)}.penna-render .penna-footnotes__section{color:var(--penna-c-text-2);font-size:.875rem;line-height:1.6}.penna-render .penna-footnotes__list{margin:0;padding-left:1.09375rem}.penna-render .penna-footnote-item{margin:0 0 .625rem}.penna-render .penna-footnote-item:last-child{margin-bottom:0}.penna-render .penna-footnote-item>:first-child{margin-top:0}.penna-render .penna-footnote-item>:last-child{margin-bottom:0}.penna-render .penna-footnote-backref{margin-left:.25rem;color:var(--penna-c-text-3);text-decoration:none;white-space:nowrap}.penna-render .penna-footnote-backref:hover{color:var(--penna-c-brand-1);text-decoration:none}.penna-render sup.penna-footnote-ref{font-size:.78rem;line-height:0;vertical-align:super}.penna-render sup.penna-footnote-ref a{color:var(--penna-c-brand-1);text-decoration:none;padding:0 .0625rem}.penna-render sup.penna-footnote-ref a:hover{text-decoration:underline}.penna-render .penna-code-block{--cb-radius: .625rem;--cb-border: color-mix(in srgb, var(--penna-c-text-3) 18%, transparent);--cb-header-bg: var(--penna-c-code-block-header-bg);--cb-code-bg: var(--penna-c-code-block-code-bg);--cb-lang-bg: color-mix(in srgb, var(--penna-c-brand-1) 12%, transparent);--cb-lang-fg: var(--penna-c-brand-1);--cb-title-fg: var(--penna-c-text-2);--cb-shadow: var(--penna-c-code-block-shadow);--cb-line-highlight: color-mix( in srgb, var(--penna-c-brand-1) 14%, transparent )}.penna-dark .penna-render .penna-code-block{--cb-border: color-mix(in srgb, var(--penna-c-text-3) 28%, transparent);--cb-line-highlight: color-mix( in srgb, var(--penna-c-brand-1) 22%, transparent )}.penna-render .penna-code-block{margin:1.25rem 0;border-radius:var(--cb-radius);box-shadow:var(--cb-shadow)}.penna-render .penna-code-block__panel{overflow:hidden;background:var(--cb-code-bg);border:.0625rem solid var(--cb-border);border-radius:var(--cb-radius)}.penna-render .penna-code-block__header{display:flex;align-items:center;gap:.75rem;min-height:2.5rem;padding:.375rem .5rem .375rem .875rem;background:var(--cb-header-bg);border-bottom:.0625rem solid var(--cb-border)}.penna-render .penna-code-block__meta{display:flex;flex:1 1 auto;gap:.625rem;align-items:center;min-width:0;overflow:hidden}.penna-render .penna-code-block__lang{flex-shrink:0;padding:.125rem .5rem;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.6875rem;font-weight:600;line-height:1.6;color:var(--cb-lang-fg);text-transform:uppercase;letter-spacing:.06em;background:var(--cb-lang-bg);border-radius:62.4375rem}.penna-render .penna-code-block__title{flex:1 1 auto;min-width:0;overflow:hidden;font-size:.8125rem;font-weight:500;line-height:1.4;color:var(--cb-title-fg);text-overflow:ellipsis;white-space:nowrap}.penna-render .penna-code-block__title:before{content:"";display:inline-block;width:.0625rem;height:.75rem;margin-right:.625rem;vertical-align:middle;background:var(--cb-border)}.penna-render .penna-code-block__meta>.penna-code-block__lang:first-child+.penna-code-block__title:before{display:inline-block}.penna-render .penna-code-block__meta>.penna-code-block__title:first-child:before{display:none}.penna-render .penna-code-block{--cb-line-height: 1.35;--cb-line-step: calc(var(--cb-line-height) * 1em);--cb-body-pad-y: .75rem;--cb-body-pad-x: 1rem}.penna-render .penna-code-block__body{display:flex;align-items:stretch;overflow:auto;padding:var(--cb-body-pad-y) var(--cb-body-pad-x);font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:.8125rem;line-height:var(--cb-line-height);color:var(--penna-c-text-1);background-image:var(--penna-line-highlight-bg, none);background-repeat:no-repeat;background-size:100% calc(var(--cb-body-pad-y) * 2 + var(--penna-line-count, 1) * var(--cb-line-step))}.penna-render .penna-code-block__panel--collapsed .penna-code-block__body{max-height:calc(var(--cb-body-pad-y) * 2 + var(--penna-collapsed-visible, 10) * var(--cb-line-step));overflow:hidden}.penna-render .penna-code-block__panel--collapsible:not(.penna-code-block__panel--collapsed) .penna-code-block__body{max-height:none;overflow:auto}.penna-render .penna-code-block__gutter{flex:0 0 2.25rem;margin:0;padding:0 .75rem 0 0;font:inherit;font-variant-numeric:tabular-nums;line-height:var(--cb-line-height);color:var(--penna-c-text-3);text-align:right;white-space:pre;user-select:none;pointer-events:none}.penna-render .penna-code-block__pre,.penna-render .penna-code-block__panel>pre{flex:1 1 auto;min-width:0;margin:0;padding:0;overflow:visible;font:inherit;line-height:var(--cb-line-height);color:inherit;tab-size:2;background:transparent;border:0;border-radius:0}.penna-render .penna-code-block__pre code,.penna-render .penna-code-block__panel>pre code{display:block;padding:0;font:inherit;line-height:inherit;color:inherit;white-space:pre;background:transparent;border:0;border-radius:0}.penna-render .penna-code-block__pre code.hljs,.penna-render .penna-code-block__panel>pre code.hljs{font:inherit;line-height:inherit;background:transparent}.penna-render .penna-code-block .shiki,.penna-render .penna-code-block .shiki code{display:block;width:100%;background:transparent!important}.penna-render .penna-code-block__expand{display:flex;gap:.375rem;align-items:center;justify-content:center;width:100%;padding:.625rem 1rem;font-size:.8125rem;font-weight:500;color:var(--penna-c-text-2);cursor:pointer;background:var(--cb-header-bg);border:0;border-top:.0625rem solid var(--cb-border);transition:color .15s ease,background-color .15s ease}.penna-render .penna-code-block__expand:hover{color:var(--penna-c-brand-1);background:color-mix(in srgb,var(--penna-c-brand-1) 8%,var(--cb-header-bg))}.penna-render .penna-code-block__expand-icon{width:.875rem;height:.875rem;background-color:currentColor;mask-image: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");mask-size:contain;mask-repeat:no-repeat;mask-position:center;transition:transform .2s ease}.penna-render .penna-code-block__panel--collapsible:not(.penna-code-block__panel--collapsed) .penna-code-block__expand-icon{transform:rotate(180deg)}.penna-render .penna-copy-code-button{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;margin-left:auto;padding:0;color:var(--penna-c-text-3);cursor:pointer;background:transparent;border:.0625rem solid transparent;border-radius:.5rem;transition:color .15s ease,background-color .15s ease,border-color .15s ease}.penna-render .penna-copy-code-button:before{content:"";width:1rem;height:1rem;background-color:currentColor;mask-image: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%3Crect x='9' y='9' width='13' height='13' rx='2'/%3E%3Cpath d='M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1'/%3E%3C/svg%3E");mask-size:contain;mask-repeat:no-repeat;mask-position:center}.penna-render .penna-copy-code-button:hover{color:var(--penna-c-text-1);background:color-mix(in srgb,var(--penna-c-text-3) 10%,transparent);border-color:var(--cb-border, color-mix(in srgb, var(--penna-c-text-3) 18%, transparent))}.penna-render .penna-copy-code-button.is-copied{color:var(--penna-c-brand-1);border-color:color-mix(in srgb,var(--penna-c-brand-1) 35%,transparent)}.penna-render .penna-copy-code-button.is-copied:before{mask-image: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='M20 6 9 17l-5-5'/%3E%3C/svg%3E")}.penna-render .penna-mermaid-block,.penna-render .penna-echarts-block{margin:1rem 0}.penna-render .penna-mermaid-block img,.penna-render .penna-echarts-block img{max-width:100%;height:auto}.penna-render img:not(.penna-math-latex):not(.penna-repo-card__shield-img):not(.penna-link-card__icon):not(.penna-audio-player__cover-img){cursor:zoom-in}.penna-render svg:not([aria-hidden=true]){cursor:zoom-in}.penna-image-preview{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;padding:1.5rem;box-sizing:border-box;background-color:transparent!important}.penna-image-preview__backdrop{position:absolute;inset:0;border:none;margin:0;padding:0;background:color-mix(in srgb,var(--penna-c-text-1) 55%,transparent);cursor:zoom-out}.penna-image-preview__figure{position:relative;z-index:1;display:block;max-width:min(96vw,1200px);max-height:92vh;margin:0;text-align:center;width:100%;pointer-events:none}.penna-image-preview__media,.penna-image-preview__caption{pointer-events:auto}.penna-image-preview__media{display:inline-block;vertical-align:middle;max-width:min(96vw,1200px);max-height:85vh;width:auto;height:auto;object-fit:contain;border-radius:.5rem;background:var(--penna-c-bg);box-shadow:0 .75rem 2.5rem -.5rem color-mix(in srgb,var(--penna-c-text-1) 35%,transparent)}.penna-image-preview__caption{display:block;margin:.75rem 0 0;max-width:100%;padding:.5rem .75rem;color:var(--penna-c-bg);font-size:.875rem;line-height:1.5;text-align:center;text-shadow:0 1px 2px color-mix(in srgb,var(--penna-c-text-1) 60%,transparent)}.penna-footnote-tooltip{position:fixed;z-index:1000;box-sizing:border-box;width:max-content;max-width:min(22.5rem,80vw);max-height:min(15rem,50vh);overflow:auto;padding:.625rem .875rem;border:.0625rem solid color-mix(in srgb,var(--penna-c-text-3) 22%,transparent);border-radius:.375rem;background:var(--penna-c-bg-elevated);color:var(--penna-c-text-1);font-size:.8125rem;font-weight:400;line-height:1.55;height:fit-content;text-align:left;white-space:normal;overflow-wrap:anywhere;box-shadow:0 .25rem 1rem color-mix(in srgb,var(--penna-c-text-3) 15%,transparent);transform:translate(-50%,-100%);opacity:0;visibility:hidden;transition:opacity .15s ease,visibility .15s ease}.penna-footnote-tooltip.is-visible{opacity:1;visibility:visible}.penna-footnote-tooltip .penna-footnote-tooltip__body{max-height:min(10rem,40vh);overflow:auto}.penna-footnote-tooltip .penna-footnote-tooltip__body>:first-child{margin-top:0}.penna-footnote-tooltip .penna-footnote-tooltip__body>:last-child{margin-bottom:0}.penna-footnote-tooltip .penna-footnote-tooltip__body p{margin:0 0 .375rem}.penna-footnote-tooltip .penna-footnote-tooltip__body p:last-child{margin-bottom:0}.penna-footnote-tooltip:after{content:"";position:absolute;top:100%;left:50%;z-index:2;transform:translate(-50%);border:.375rem solid transparent;border-top-color:var(--penna-c-bg-elevated)}.penna-footnote-tooltip:before{content:"";position:absolute;top:100%;left:50%;z-index:1;transform:translate(-50%);border:.4375rem solid transparent;border-top-color:color-mix(in srgb,var(--penna-c-text-3) 22%,transparent)}.penna-footnote-tooltip .penna-footnote-tooltip__bridge{position:absolute;top:100%;left:0;right:0;height:.625rem;background:transparent}.penna-theme-default .penna-render a{color:var(--penna-c-brand-1)}.penna-theme-default .penna-render a:hover{color:var(--penna-c-brand-2)}.penna-dark .penna-render{--penna-c-logo-paper: #edebe7;--penna-c-logo-ink: #0c1c25;--penna-c-logo-cyan: #0ac1e3;--penna-c-logo-blue: #008dee;--penna-c-logo-green: #16bf73;--penna-c-logo-yellow: #fec933;--penna-c-logo-orange: #fe9138;--penna-c-logo-red: #f33a3c;--penna-c-stroke: #edebe7;--penna-c-brand-1: #0ac1e3;--penna-c-brand-2: #3dcee9;--penna-c-brand-3: #6dd8ee;--penna-c-brand-soft: rgba(10, 193, 227, .22);--penna-c-brand-on-bg: #0c1c25;--penna-c-text-1: rgba(237, 235, 231, .92);--penna-c-text-2: rgba(237, 235, 231, .68);--penna-c-text-3: rgba(237, 235, 231, .42);--penna-c-bg: #0c1c25;--penna-c-bg-elevated: #152836;--penna-c-contrast-light: #fff;--penna-c-contrast-dark: #000;--penna-c-brand-mark: color-mix( in srgb, #6dd8ee 48%, #0c1c25 );--penna-c-code-fg: #ff7a72;--penna-c-note: #4db4f5;--penna-c-note-mark: color-mix( in srgb, #fec933 50%, #0c1c25 );--penna-c-note-on-bg: color-mix( in srgb, #4db4f5 20%, #000 );--penna-c-alert-note-text: #4db4f5;--penna-c-alert-note-bg: color-mix( in srgb, #4db4f5 15%, transparent );--penna-c-alert-note-border: color-mix( in srgb, #4db4f5 40%, transparent );--penna-c-tip: #3dd48a;--penna-c-tip-mark: color-mix( in srgb, #16bf73 50%, #0c1c25 );--penna-c-tip-on-bg: color-mix( in srgb, #3dd48a 20%, #000 );--penna-c-alert-tip-text: #3dd48a;--penna-c-alert-tip-bg: color-mix( in srgb, #3dd48a 15%, transparent );--penna-c-alert-tip-border: color-mix( in srgb, #3dd48a 40%, transparent );--penna-c-warning: #ffb04a;--penna-c-warning-mark: color-mix( in srgb, #fec933 50%, #0c1c25 );--penna-c-warning-on-bg: color-mix( in srgb, #ffb04a 20%, #000 );--penna-c-alert-warning-text: #ffb04a;--penna-c-alert-warning-bg: color-mix( in srgb, #ffb04a 15%, transparent );--penna-c-alert-warning-border: color-mix( in srgb, #ffb04a 40%, transparent );--penna-c-caution: #ff7a72;--penna-c-caution-mark: color-mix( in srgb, #fe9138 50%, #0c1c25 );--penna-c-caution-on-bg: color-mix( in srgb, #ff7a72 20%, #000 );--penna-c-alert-caution-text: #ff7a72;--penna-c-alert-caution-bg: color-mix( in srgb, #ff7a72 15%, transparent );--penna-c-alert-caution-border: color-mix( in srgb, #ff7a72 40%, transparent );--penna-c-danger: #ff6b66;--penna-c-danger-mark: color-mix( in srgb, #f33a3c 50%, #0c1c25 );--penna-c-danger-on-bg: color-mix( in srgb, #ff6b66 20%, #000 );--penna-c-alert-danger-text: #ff6b66;--penna-c-alert-danger-bg: color-mix( in srgb, #ff6b66 15%, transparent );--penna-c-alert-danger-border: color-mix( in srgb, #ff6b66 40%, transparent );--penna-c-important: #3dcee9;--penna-c-important-mark: color-mix( in srgb, #0ac1e3 50%, #0c1c25 );--penna-c-important-on-bg: color-mix( in srgb, #3dcee9 20%, #000 );--penna-c-alert-important-text: #3dcee9;--penna-c-alert-important-bg: color-mix( in srgb, #3dcee9 15%, transparent );--penna-c-alert-important-border: color-mix( in srgb, #3dcee9 40%, transparent );--penna-c-image-card-scrim: var(--penna-c-contrast-dark);--penna-c-image-card-info-bg: linear-gradient( 180deg, transparent 0%, color-mix(in srgb, var(--penna-c-image-card-scrim) 45%, transparent) 55%, color-mix(in srgb, var(--penna-c-image-card-scrim) 72%, transparent) 100% );--penna-c-image-card-info-bg-hover: linear-gradient( 180deg, transparent 0%, color-mix(in srgb, var(--penna-c-image-card-scrim) 55%, transparent) 35%, color-mix(in srgb, var(--penna-c-image-card-scrim) 82%, transparent) 100% );--penna-c-media-player-bg: var(--penna-c-bg);--penna-c-media-shade: var(--penna-c-bg);--penna-c-on-brand: var(--penna-c-contrast-light);--penna-c-code-block-header-bg: color-mix( in srgb, var(--penna-c-text-3) 6%, var(--penna-c-bg-elevated) );--penna-c-code-block-code-bg: color-mix( in srgb, var(--penna-c-text-3) 4%, var(--penna-c-bg) );--penna-c-code-block-shadow: 0 1px 2px color-mix(in srgb, var(--penna-c-text-3) 8%, transparent), 0 8px 24px color-mix(in srgb, var(--penna-c-text-3) 6%, transparent);--penna-c-image-card-info-fg: var(--penna-c-contrast-light);--penna-c-image-card-info-bg: linear-gradient( 180deg, transparent 0%, color-mix(in srgb, var(--penna-c-image-card-scrim) 58%, transparent) 55%, color-mix(in srgb, var(--penna-c-image-card-scrim) 88%, transparent) 100% );--penna-c-image-card-info-bg-hover: linear-gradient( 180deg, transparent 0%, color-mix(in srgb, var(--penna-c-image-card-scrim) 68%, transparent) 35%, color-mix(in srgb, var(--penna-c-image-card-scrim) 92%, transparent) 100% );--penna-c-code-block-header-bg: color-mix( in srgb, var(--penna-c-contrast-light) 4%, var(--penna-c-bg-elevated) );--penna-c-code-block-code-bg: color-mix( in srgb, var(--penna-c-contrast-dark) 22%, var(--penna-c-bg-elevated) );--penna-c-code-block-shadow: 0 1px 2px color-mix(in srgb, var(--penna-c-contrast-dark) 35%, transparent)}.penna-dark .penna-render .penna-code-block .hljs,.penna-dark .penna-render pre:not(.penna-code-block__pre) .hljs{background:transparent;color:#c9d1d9}.penna-dark .penna-render .penna-code-block .hljs-doctag,.penna-dark .penna-render .penna-code-block .hljs-keyword,.penna-dark .penna-render .penna-code-block .hljs-meta .hljs-keyword,.penna-dark .penna-render .penna-code-block .hljs-template-tag,.penna-dark .penna-render .penna-code-block .hljs-template-variable,.penna-dark .penna-render .penna-code-block .hljs-type,.penna-dark .penna-render .penna-code-block .hljs-variable.language_,.penna-dark .penna-render pre:not(.penna-code-block__pre) .hljs-doctag,.penna-dark .penna-render pre:not(.penna-code-block__pre) .hljs-keyword,.penna-dark .penna-render pre:not(.penna-code-block__pre) .hljs-meta .hljs-keyword,.penna-dark .penna-render pre:not(.penna-code-block__pre) .hljs-template-tag,.penna-dark .penna-render pre:not(.penna-code-block__pre) .hljs-template-variable,.penna-dark .penna-render pre:not(.penna-code-block__pre) .hljs-type,.penna-dark .penna-render pre:not(.penna-code-block__pre) .hljs-variable.language_{color:#ff7b72}.penna-dark .penna-render .penna-code-block .hljs-title,.penna-dark .penna-render .penna-code-block .hljs-title.class_,.penna-dark .penna-render .penna-code-block .hljs-title.class_.inherited__,.penna-dark .penna-render .penna-code-block .hljs-title.function_,.penna-dark .penna-render pre:not(.penna-code-block__pre) .hljs-title,.penna-dark .penna-render pre:not(.penna-code-block__pre) .hljs-title.class_,.penna-dark .penna-render pre:not(.penna-code-block__pre) .hljs-title.class_.inherited__,.penna-dark .penna-render pre:not(.penna-code-block__pre) .hljs-title.function_{color:#d2a8ff}.penna-dark .penna-render .penna-code-block .hljs-attr,.penna-dark .penna-render .penna-code-block .hljs-attribute,.penna-dark .penna-render .penna-code-block .hljs-literal,.penna-dark .penna-render .penna-code-block .hljs-meta,.penna-dark .penna-render .penna-code-block .hljs-number,.penna-dark .penna-render .penna-code-block .hljs-operator,.penna-dark .penna-render .penna-code-block .hljs-selector-attr,.penna-dark .penna-render .penna-code-block .hljs-selector-class,.penna-dark .penna-render .penna-code-block .hljs-selector-id,.penna-dark .penna-render .penna-code-block .hljs-variable,.penna-dark .penna-render pre:not(.penna-code-block__pre) .hljs-attr,.penna-dark .penna-render pre:not(.penna-code-block__pre) .hljs-attribute,.penna-dark .penna-render pre:not(.penna-code-block__pre) .hljs-literal,.penna-dark .penna-render pre:not(.penna-code-block__pre) .hljs-meta,.penna-dark .penna-render pre:not(.penna-code-block__pre) .hljs-number,.penna-dark .penna-render pre:not(.penna-code-block__pre) .hljs-operator,.penna-dark .penna-render pre:not(.penna-code-block__pre) .hljs-selector-attr,.penna-dark .penna-render pre:not(.penna-code-block__pre) .hljs-selector-class,.penna-dark .penna-render pre:not(.penna-code-block__pre) .hljs-selector-id,.penna-dark .penna-render pre:not(.penna-code-block__pre) .hljs-variable{color:#79c0ff}.penna-dark .penna-render .penna-code-block .hljs-meta .hljs-string,.penna-dark .penna-render .penna-code-block .hljs-regexp,.penna-dark .penna-render .penna-code-block .hljs-string,.penna-dark .penna-render pre:not(.penna-code-block__pre) .hljs-meta .hljs-string,.penna-dark .penna-render pre:not(.penna-code-block__pre) .hljs-regexp,.penna-dark .penna-render pre:not(.penna-code-block__pre) .hljs-string{color:#a5d6ff}.penna-dark .penna-render .penna-code-block .hljs-built_in,.penna-dark .penna-render .penna-code-block .hljs-symbol,.penna-dark .penna-render pre:not(.penna-code-block__pre) .hljs-built_in,.penna-dark .penna-render pre:not(.penna-code-block__pre) .hljs-symbol{color:#ffa657}.penna-dark .penna-render .penna-code-block .hljs-code,.penna-dark .penna-render .penna-code-block .hljs-comment,.penna-dark .penna-render .penna-code-block .hljs-formula,.penna-dark .penna-render pre:not(.penna-code-block__pre) .hljs-code,.penna-dark .penna-render pre:not(.penna-code-block__pre) .hljs-comment,.penna-dark .penna-render pre:not(.penna-code-block__pre) .hljs-formula{color:#8b949e}.penna-dark .penna-render .penna-code-block .hljs-name,.penna-dark .penna-render .penna-code-block .hljs-quote,.penna-dark .penna-render .penna-code-block .hljs-selector-pseudo,.penna-dark .penna-render .penna-code-block .hljs-selector-tag,.penna-dark .penna-render pre:not(.penna-code-block__pre) .hljs-name,.penna-dark .penna-render pre:not(.penna-code-block__pre) .hljs-quote,.penna-dark .penna-render pre:not(.penna-code-block__pre) .hljs-selector-pseudo,.penna-dark .penna-render pre:not(.penna-code-block__pre) .hljs-selector-tag{color:#7ee787}.penna-dark .penna-render .penna-code-block .hljs-subst,.penna-dark .penna-render pre:not(.penna-code-block__pre) .hljs-subst{color:#c9d1d9}.penna-dark .penna-render .penna-code-block .hljs-section,.penna-dark .penna-render pre:not(.penna-code-block__pre) .hljs-section{color:#1f6feb;font-weight:700}.penna-dark .penna-render .penna-code-block .hljs-bullet,.penna-dark .penna-render pre:not(.penna-code-block__pre) .hljs-bullet{color:#f2cc60}.penna-dark .penna-render .penna-code-block .hljs-emphasis,.penna-dark .penna-render pre:not(.penna-code-block__pre) .hljs-emphasis{color:#c9d1d9;font-style:italic}.penna-dark .penna-render .penna-code-block .hljs-strong,.penna-dark .penna-render pre:not(.penna-code-block__pre) .hljs-strong{color:#c9d1d9;font-weight:700}.penna-dark .penna-render .penna-code-block .hljs-addition,.penna-dark .penna-render pre:not(.penna-code-block__pre) .hljs-addition{color:#aff5b4;background-color:#033a16}.penna-dark .penna-render .penna-code-block .hljs-deletion,.penna-dark .penna-render pre:not(.penna-code-block__pre) .hljs-deletion{color:#ffdcd7;background-color:#67060c}.penna-theme-claude .penna-render{--claude-font-serif: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, "Times New Roman", serif;--claude-font-sans: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--claude-font-mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;--claude-text-size: .9375rem;--claude-text-leading: 1.7;--claude-heading-leading: 1.25;--penna-c-brand-1: #d97757;--penna-c-brand-2: #c6613f;--penna-c-brand-3: #d97757;--penna-c-brand-soft: rgba(217, 119, 87, .14);--penna-c-brand-on-bg: #141413;--penna-c-text-1: #141413;--penna-c-text-2: #3d3d3a;--penna-c-text-3: #87867f;--penna-c-bg: #faf9f5;--penna-c-bg-elevated: #f0eee6;--penna-c-contrast-light: #fff;--penna-c-contrast-dark: #000;--penna-c-brand-mark: #fbbc04;--penna-c-code-fg: #8a2424;--penna-c-border-soft: color-mix(in srgb, #dedcd1 85%, transparent);--penna-c-border-faint: color-mix(in srgb, #dedcd1 55%, transparent);--penna-c-hljs-keyword: #8a2424;--penna-c-hljs-string: #6b5a2d;--penna-c-hljs-number: #ad7837;--penna-c-hljs-title: #5d4e37;--penna-c-hljs-attr: #3d3d3a;--penna-c-hljs-comment: var(--penna-c-text-3);--penna-c-hljs-bg: transparent;--penna-c-note: #5d7d9a;--penna-c-note-mark: #a8d1ff;--penna-c-note-on-bg: color-mix( in srgb, #5d7d9a 16%, #fff );--penna-c-alert-note-text: #5d7d9a;--penna-c-alert-note-bg: color-mix( in srgb, #5d7d9a 8%, transparent );--penna-c-alert-note-border: color-mix( in srgb, #5d7d9a 18%, transparent );--penna-c-tip: #688a5d;--penna-c-tip-mark: #a2f584;--penna-c-tip-on-bg: color-mix( in srgb, #688a5d 16%, #fff );--penna-c-alert-tip-text: #688a5d;--penna-c-alert-tip-bg: color-mix( in srgb, #688a5d 8%, transparent );--penna-c-alert-tip-border: color-mix( in srgb, #688a5d 18%, transparent );--penna-c-warning: #ad7837;--penna-c-warning-mark: #ffe28a;--penna-c-warning-on-bg: color-mix( in srgb, #ad7837 16%, #fff );--penna-c-alert-warning-text: #ad7837;--penna-c-alert-warning-bg: color-mix( in srgb, #ad7837 8%, transparent );--penna-c-alert-warning-border: color-mix( in srgb, #ad7837 18%, transparent );--penna-c-caution: #b45f51;--penna-c-caution-mark: #ffa494;--penna-c-caution-on-bg: color-mix( in srgb, #b45f51 16%, #fff );--penna-c-alert-caution-text: #b45f51;--penna-c-alert-caution-bg: color-mix( in srgb, #b45f51 8%, transparent );--penna-c-alert-caution-border: color-mix( in srgb, #b45f51 18%, transparent );--penna-c-danger: #b45f51;--penna-c-danger-mark: #ffa494;--penna-c-danger-on-bg: color-mix( in srgb, #b45f51 16%, #fff );--penna-c-alert-danger-text: #b45f51;--penna-c-alert-danger-bg: color-mix( in srgb, #b45f51 8%, transparent );--penna-c-alert-danger-border: color-mix( in srgb, #b45f51 18%, transparent );--penna-c-important: #8b6f9d;--penna-c-important-mark: #e3bdff;--penna-c-important-on-bg: color-mix( in srgb, #8b6f9d 16%, #fff );--penna-c-alert-important-text: #8b6f9d;--penna-c-alert-important-bg: color-mix( in srgb, #8b6f9d 8%, transparent );--penna-c-alert-important-border: color-mix( in srgb, #8b6f9d 18%, transparent );--penna-c-image-card-info-fg: var(--penna-c-contrast-light);--penna-c-image-card-scrim: var(--penna-c-contrast-dark);--penna-c-image-card-info-bg: linear-gradient( 180deg, transparent 0%, color-mix(in srgb, var(--penna-c-image-card-scrim) 40%, transparent) 55%, color-mix(in srgb, var(--penna-c-image-card-scrim) 65%, transparent) 100% );--penna-c-image-card-info-bg-hover: linear-gradient( 180deg, transparent 0%, color-mix(in srgb, var(--penna-c-image-card-scrim) 50%, transparent) 35%, color-mix(in srgb, var(--penna-c-image-card-scrim) 75%, transparent) 100% );--penna-c-media-player-bg: var(--penna-c-bg);--penna-c-media-shade: var(--penna-c-bg);--penna-c-on-brand: #fff;--penna-c-code-inline-bg: color-mix(in srgb, #141413 5%, transparent);--penna-c-code-inline-fg: var(--penna-c-code-fg);--penna-c-code-inline-border: transparent;--penna-c-code-block-header-bg: var(--penna-c-bg-elevated);--penna-c-code-block-code-bg: var(--penna-c-bg);--penna-c-code-block-shadow: none;--penna-c-table-th-border: color-mix(in srgb, #dedcd1 72%, transparent);--penna-c-table-td-border: color-mix(in srgb, #dedcd1 42%, transparent);--penna-c-hr-color: color-mix(in srgb, #dedcd1 42%, transparent);--penna-c-blockquote-border: color-mix(in srgb, #dedcd1 72%, transparent)}.penna-theme-claude .penna-render .penna-mark{--penna-mark-wave-color: color-mix( in srgb, var(--penna-mark-accent, var(--penna-c-brand-mark)) 82%, transparent );background-image:none;text-decoration-line:underline;text-decoration-style:wavy;text-decoration-color:var(--penna-mark-wave-color);text-underline-offset:var(--penna-mark-wave-offset);text-decoration-thickness:var(--penna-mark-wave-thickness)}.penna-theme-claude .penna-render{box-sizing:border-box;padding:1.75rem 2.25rem 2.5rem;background-color:var(--penna-c-bg);color:var(--penna-c-text-1);font-family:var(--claude-font-sans);font-size:var(--claude-text-size);line-height:var(--claude-text-leading);-webkit-font-smoothing:antialiased}.penna-theme-claude .penna-render h1,.penna-theme-claude .penna-render h2,.penna-theme-claude .penna-render h3,.penna-theme-claude .penna-render h4,.penna-theme-claude .penna-render h5,.penna-theme-claude .penna-render h6{margin:0;padding:0;border:0;color:var(--penna-c-text-1);font-family:var(--claude-font-serif);font-weight:400;letter-spacing:-.015em;line-height:var(--claude-heading-leading)}.penna-theme-claude .penna-render h1{margin-top:1.75rem;margin-bottom:.625rem;font-size:1.625rem}.penna-theme-claude .penna-render h2{margin-top:1.5rem;margin-bottom:.5rem;font-size:1.25rem}.penna-theme-claude .penna-render h3{margin-top:1.25rem;margin-bottom:.375rem;font-size:1.0625rem;font-family:var(--claude-font-sans);font-weight:600;letter-spacing:0}.penna-theme-claude .penna-render h4,.penna-theme-claude .penna-render h5,.penna-theme-claude .penna-render h6{margin-top:1rem;margin-bottom:.25rem;font-family:var(--claude-font-sans);font-weight:600;letter-spacing:0}.penna-theme-claude .penna-render h4{font-size:.9375rem}.penna-theme-claude .penna-render h5{font-size:.875rem;color:var(--penna-c-text-2)}.penna-theme-claude .penna-render h6{font-size:.8125rem;color:var(--penna-c-text-3)}.penna-theme-claude .penna-render p{margin:0 0 .875rem}.penna-theme-claude .penna-render strong{font-weight:600;color:var(--penna-c-text-1)}.penna-theme-claude .penna-render em{color:var(--penna-c-text-2)}.penna-theme-claude .penna-render a{color:var(--penna-c-text-1);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--penna-c-text-1) 28%,transparent);text-underline-offset:.125rem;text-decoration-thickness:.0625rem}.penna-theme-claude .penna-render a:hover{color:var(--penna-c-brand-1);text-decoration-color:color-mix(in srgb,var(--penna-c-brand-1) 70%,transparent)}.penna-theme-claude .penna-render blockquote{margin:0 0 .875rem;padding:1rem 1rem 1rem .875rem;border-left:.125rem solid var(--penna-c-blockquote-border);color:var(--penna-c-text-2);font-style:normal}.penna-theme-claude .penna-render hr{margin:1.125rem .5rem;border:0;border-top:.0625rem solid var(--penna-c-hr-color)}.penna-theme-claude .penna-render ul,.penna-theme-claude .penna-render ol{margin:0 0 .875rem;padding-left:1.375rem}.penna-theme-claude .penna-render li{margin:0}.penna-theme-claude .penna-render li+li{margin-top:.25rem}.penna-theme-claude .penna-render :not(pre)>code{padding:.0625rem .3125rem;font-family:var(--claude-font-mono);font-size:.88em;color:var(--penna-c-code-inline-fg);background:var(--penna-c-code-inline-bg);border:0;border-radius:.25rem}.penna-theme-claude .penna-render pre:not(.penna-code-block__pre){margin:0 0 .875rem;padding:.75rem .875rem;font-family:var(--claude-font-mono);color:var(--penna-c-text-1);background:var(--penna-c-bg-elevated);border:.0625rem solid var(--penna-c-border-faint);border-radius:.5rem;box-shadow:none}.penna-theme-claude .penna-render table{--penna-table-border: var(--penna-c-table-td-border);--penna-table-head-bg: transparent;--penna-table-row-bg: transparent;--penna-table-stripe-bg: transparent;margin:0 0 1.125rem;border:0}.penna-theme-claude .penna-render table th,.penna-theme-claude .penna-render table td{padding:.5rem .75rem;border:0;border-bottom:.0625rem solid var(--penna-c-table-td-border);font-size:.875rem;line-height:1.55}.penna-theme-claude .penna-render table th{font-family:var(--claude-font-sans);font-weight:600;color:var(--penna-c-text-1);border-bottom-color:var(--penna-c-table-th-border)}.penna-theme-claude .penna-render table tbody tr,.penna-theme-claude .penna-render table tbody tr:nth-child(2n){background:transparent}.penna-theme-claude .penna-render img{border-radius:.5rem}.penna-theme-claude .penna-render .penna-alert{margin:0 0 .875rem;padding:.75rem .875rem .625rem;border:.0625rem solid var(--alert-border);border-left-width:.1875rem;border-radius:.5rem;box-shadow:none;background:var(--alert-bg);font-size:.875rem;line-height:1.55}.penna-theme-claude .penna-render .penna-alert__title{font-family:var(--claude-font-sans);font-weight:600}.penna-theme-claude .penna-render .penna-code-block{--cb-radius: .5rem;--cb-border: var(--penna-c-border-faint);--cb-shadow: none;--cb-header-bg: var(--penna-c-bg-elevated);--cb-code-bg: var(--penna-c-bg);--cb-lang-fg: var(--penna-c-text-3);--cb-lang-bg: transparent;--cb-line-highlight: color-mix( in srgb, var(--penna-c-brand-1) 8%, transparent );margin:0 0 .875rem}.penna-theme-claude .penna-render .penna-code-block__panel{border-color:var(--penna-c-border-faint);box-shadow:none}.penna-theme-claude .penna-render .penna-code-block__header{min-height:2.125rem;padding:.375rem .75rem .375rem .875rem;border-bottom:.0625rem solid var(--penna-c-border-faint)}.penna-theme-claude .penna-render .penna-code-block__lang{padding:0;font-family:var(--claude-font-mono);font-size:.75rem;font-weight:500;letter-spacing:0;text-transform:lowercase;background:transparent;border-radius:0}.penna-theme-claude .penna-render .penna-badge{border-radius:62.4375rem;font-family:var(--claude-font-sans);font-weight:500}.penna-theme-claude .penna-render sup.penna-footnote-ref{vertical-align:super;font-family:var(--claude-font-sans);font-size:.62em;font-weight:500}.penna-theme-claude .penna-render sup.penna-footnote-ref a{color:var(--penna-c-brand-1);text-decoration:none}.penna-theme-claude .penna-render sup.penna-footnote-ref a:hover{color:var(--penna-c-brand-2)}.penna-theme-claude .penna-render .penna-card,.penna-theme-claude .penna-render .penna-link-card,.penna-theme-claude .penna-render .penna-repo-card{border:.0625rem solid var(--penna-c-border-faint);border-radius:.5rem;background:var(--penna-c-bg);box-shadow:none}.penna-theme-claude .penna-render .penna-card{padding:.875rem 1rem;color:var(--penna-c-text-2)}.penna-theme-claude .penna-render .penna-card__title{font-family:var(--claude-font-sans);font-size:.875rem;font-weight:600}.penna-theme-claude .penna-render .penna-link-card{transition:border-color .15s ease}.penna-theme-claude .penna-render .penna-link-card:hover{border-color:var(--penna-c-border-soft);box-shadow:none}.penna-theme-claude .penna-render .penna-link-card:after{opacity:.45}.penna-theme-claude .penna-render .penna-tabs{margin:0 0 .875rem;border:.0625rem solid var(--penna-c-border-faint);border-radius:.5rem;background:var(--penna-c-bg);box-shadow:none}.penna-theme-claude .penna-render .penna-tabs__nav{gap:0;padding:0 .5rem;border-bottom:.0625rem solid var(--penna-c-border-faint)}.penna-theme-claude .penna-render .penna-tabs__label{padding:.625rem .75rem;font-size:.8125rem;font-weight:500;color:var(--penna-c-text-3)}.penna-theme-claude .penna-render .penna-tabs__label:hover{color:var(--penna-c-text-1)}.penna-theme-claude .penna-render .penna-tabs__panels{padding:.875rem 1rem;color:var(--penna-c-text-2)}.penna-theme-claude .penna-render .penna-steps>ol>li:before{border:.0625rem solid var(--penna-c-border-soft);background:var(--penna-c-bg-elevated);color:var(--penna-c-text-2);box-shadow:none}.penna-theme-claude .penna-render .penna-collapse{border:.0625rem solid var(--penna-c-border-faint);border-radius:.5rem;background:var(--penna-c-bg);box-shadow:none}.penna-theme-claude .penna-render .penna-collapse__summary{font-weight:600}.penna-theme-claude .penna-render .penna-audio,.penna-theme-claude .penna-render .penna-video .penna-media__player{background:var(--penna-c-bg-elevated)}.penna-theme-claude .penna-render .penna-mark{--penna-mark-strength: 100%}.penna-theme-claude .penna-render .penna-code-block .hljs,.penna-theme-claude .penna-render pre:not(.penna-code-block__pre) .hljs{background:var(--penna-c-hljs-bg);color:var(--penna-c-text-1)}.penna-theme-claude .penna-render .penna-code-block .hljs-comment,.penna-theme-claude .penna-render .penna-code-block .hljs-quote,.penna-theme-claude .penna-render pre:not(.penna-code-block__pre) .hljs-comment,.penna-theme-claude .penna-render pre:not(.penna-code-block__pre) .hljs-quote{color:var(--penna-c-hljs-comment);font-style:italic}.penna-theme-claude .penna-render .penna-code-block .hljs-keyword,.penna-theme-claude .penna-render .penna-code-block .hljs-selector-tag,.penna-theme-claude .penna-render .penna-code-block .hljs-built_in,.penna-theme-claude .penna-render .penna-code-block .hljs-name,.penna-theme-claude .penna-render pre:not(.penna-code-block__pre) .hljs-keyword,.penna-theme-claude .penna-render pre:not(.penna-code-block__pre) .hljs-selector-tag,.penna-theme-claude .penna-render pre:not(.penna-code-block__pre) .hljs-built_in,.penna-theme-claude .penna-render pre:not(.penna-code-block__pre) .hljs-name{color:var(--penna-c-hljs-keyword)}.penna-theme-claude .penna-render .penna-code-block .hljs-string,.penna-theme-claude .penna-render .penna-code-block .hljs-regexp,.penna-theme-claude .penna-render .penna-code-block .hljs-addition,.penna-theme-claude .penna-render pre:not(.penna-code-block__pre) .hljs-string,.penna-theme-claude .penna-render pre:not(.penna-code-block__pre) .hljs-regexp,.penna-theme-claude .penna-render pre:not(.penna-code-block__pre) .hljs-addition{color:var(--penna-c-hljs-string)}.penna-theme-claude .penna-render .penna-code-block .hljs-number,.penna-theme-claude .penna-render .penna-code-block .hljs-literal,.penna-theme-claude .penna-render pre:not(.penna-code-block__pre) .hljs-number,.penna-theme-claude .penna-render pre:not(.penna-code-block__pre) .hljs-literal{color:var(--penna-c-hljs-number)}.penna-theme-claude .penna-render .penna-code-block .hljs-title,.penna-theme-claude .penna-render .penna-code-block .hljs-title.class_,.penna-theme-claude .penna-render .penna-code-block .hljs-type,.penna-theme-claude .penna-render pre:not(.penna-code-block__pre) .hljs-title,.penna-theme-claude .penna-render pre:not(.penna-code-block__pre) .hljs-title.class_,.penna-theme-claude .penna-render pre:not(.penna-code-block__pre) .hljs-type{color:var(--penna-c-hljs-title)}.penna-theme-claude .penna-render .penna-code-block .hljs-attr,.penna-theme-claude .penna-render .penna-code-block .hljs-attribute,.penna-theme-claude .penna-render .penna-code-block .hljs-variable,.penna-theme-claude .penna-render .penna-code-block .hljs-template-variable,.penna-theme-claude .penna-render pre:not(.penna-code-block__pre) .hljs-attr,.penna-theme-claude .penna-render pre:not(.penna-code-block__pre) .hljs-attribute,.penna-theme-claude .penna-render pre:not(.penna-code-block__pre) .hljs-variable,.penna-theme-claude .penna-render pre:not(.penna-code-block__pre) .hljs-template-variable{color:var(--penna-c-hljs-attr)}.penna-theme-claude .penna-render .penna-code-block .hljs-meta,.penna-theme-claude .penna-render .penna-code-block .hljs-meta .hljs-keyword,.penna-theme-claude .penna-render pre:not(.penna-code-block__pre) .hljs-meta,.penna-theme-claude .penna-render pre:not(.penna-code-block__pre) .hljs-meta .hljs-keyword{color:var(--penna-c-text-3)}.penna-theme-claude .penna-render .penna-code-block .hljs-function .hljs-title,.penna-theme-claude .penna-render .penna-code-block .hljs-section,.penna-theme-claude .penna-render pre:not(.penna-code-block__pre) .hljs-function .hljs-title,.penna-theme-claude .penna-render pre:not(.penna-code-block__pre) .hljs-section{color:var(--penna-c-hljs-title)}.penna-dark.penna-theme-claude .penna-render{--claude-font-serif: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, "Times New Roman", serif;--claude-font-sans: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--claude-font-mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;--claude-text-size: .9375rem;--claude-text-leading: 1.7;--claude-heading-leading: 1.25;--penna-c-brand-1: #d97757;--penna-c-brand-2: #e6987d;--penna-c-brand-3: #d97757;--penna-c-brand-soft: rgba(217, 119, 87, .16);--penna-c-brand-on-bg: #faf9f5;--penna-c-text-1: #faf9f5;--penna-c-text-2: #c2c0b6;--penna-c-text-3: #9a9c92;--penna-c-bg: #181715;--penna-c-bg-elevated: #252320;--penna-c-contrast-light: #fff;--penna-c-contrast-dark: #000;--penna-c-brand-mark: #fbbc04;--penna-c-code-fg: #fe8181;--penna-c-border-soft: color-mix(in srgb, #dedcd1 24%, transparent);--penna-c-border-faint: color-mix(in srgb, #dedcd1 12%, transparent);--penna-c-hljs-keyword: #fe8181;--penna-c-hljs-string: #d4b06d;--penna-c-hljs-number: #e6987d;--penna-c-hljs-title: #c2c0b6;--penna-c-hljs-attr: #faf9f5;--penna-c-hljs-comment: var(--penna-c-text-3);--penna-c-hljs-bg: transparent;--penna-c-note: #88a9c7;--penna-c-note-mark: color-mix( in srgb, #66b5ff 100%, #181715 );--penna-c-note-on-bg: color-mix( in srgb, #88a9c7 16%, #000 );--penna-c-alert-note-text: #88a9c7;--penna-c-alert-note-bg: color-mix( in srgb, #88a9c7 10%, transparent );--penna-c-alert-note-border: color-mix( in srgb, #88a9c7 22%, transparent );--penna-c-tip: #91b685;--penna-c-tip-mark: color-mix( in srgb, #7bed55 100%, #181715 );--penna-c-tip-on-bg: color-mix( in srgb, #91b685 16%, #000 );--penna-c-alert-tip-text: #91b685;--penna-c-alert-tip-bg: color-mix( in srgb, #91b685 10%, transparent );--penna-c-alert-tip-border: color-mix( in srgb, #91b685 22%, transparent );--penna-c-warning: #d6a15e;--penna-c-warning-mark: color-mix( in srgb, #ffc954 100%, #181715 );--penna-c-warning-on-bg: color-mix( in srgb, #d6a15e 16%, #000 );--penna-c-alert-warning-text: #d6a15e;--penna-c-alert-warning-bg: color-mix( in srgb, #d6a15e 10%, transparent );--penna-c-alert-warning-border: color-mix( in srgb, #d6a15e 22%, transparent );--penna-c-caution: #d88678;--penna-c-caution-mark: color-mix( in srgb, #ff826e 100%, #181715 );--penna-c-caution-on-bg: color-mix( in srgb, #d88678 16%, #000 );--penna-c-alert-caution-text: #d88678;--penna-c-alert-caution-bg: color-mix( in srgb, #d88678 10%, transparent );--penna-c-alert-caution-border: color-mix( in srgb, #d88678 22%, transparent );--penna-c-danger: #d88678;--penna-c-danger-mark: color-mix( in srgb, #ff826e 100%, #181715 );--penna-c-danger-on-bg: color-mix( in srgb, #d88678 16%, #000 );--penna-c-alert-danger-text: #d88678;--penna-c-alert-danger-bg: color-mix( in srgb, #d88678 10%, transparent );--penna-c-alert-danger-border: color-mix( in srgb, #d88678 22%, transparent );--penna-c-important: #b69acd;--penna-c-important-mark: color-mix( in srgb, #d59eff 100%, #181715 );--penna-c-important-on-bg: color-mix( in srgb, #b69acd 16%, #000 );--penna-c-alert-important-text: #b69acd;--penna-c-alert-important-bg: color-mix( in srgb, #b69acd 10%, transparent );--penna-c-alert-important-border: color-mix( in srgb, #b69acd 22%, transparent );--penna-c-image-card-info-fg: var(--penna-c-contrast-light);--penna-c-image-card-scrim: var(--penna-c-contrast-dark);--penna-c-image-card-info-bg: linear-gradient( 180deg, transparent 0%, color-mix(in srgb, var(--penna-c-image-card-scrim) 40%, transparent) 55%, color-mix(in srgb, var(--penna-c-image-card-scrim) 65%, transparent) 100% );--penna-c-image-card-info-bg-hover: linear-gradient( 180deg, transparent 0%, color-mix(in srgb, var(--penna-c-image-card-scrim) 50%, transparent) 35%, color-mix(in srgb, var(--penna-c-image-card-scrim) 75%, transparent) 100% );--penna-c-media-player-bg: var(--penna-c-bg);--penna-c-media-shade: var(--penna-c-bg);--penna-c-on-brand: #fff;--penna-c-code-inline-bg: color-mix(in srgb, #c2c0b6 8%, transparent);--penna-c-code-inline-fg: var(--penna-c-code-fg);--penna-c-code-inline-border: transparent;--penna-c-code-block-header-bg: var(--penna-c-bg-elevated);--penna-c-code-block-code-bg: var(--penna-c-bg);--penna-c-code-block-shadow: none;--penna-c-table-th-border: color-mix(in srgb, #dedcd1 28%, transparent);--penna-c-table-td-border: color-mix(in srgb, #dedcd1 14%, transparent);--penna-c-hr-color: color-mix(in srgb, #dedcd1 14%, transparent);--penna-c-blockquote-border: color-mix(in srgb, #dedcd1 28%, transparent)}.penna-theme-github .penna-render{--github-font-sans: -apple-system, "system-ui", "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif;--github-font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--github-text-size: .875rem;--github-text-leading: 1.5;--github-heading-leading: 1.25;--github-radius: 0;--github-radius-interactive: 6px;--github-border-inset: inset 2px var(--penna-c-border-soft);--penna-c-brand-1: #0969da;--penna-c-brand-2: #0550ae;--penna-c-brand-3: #0969da;--penna-c-brand-soft: rgba(9, 105, 218, .12);--penna-c-brand-on-bg: #fff;--penna-c-text-1: #1f2328;--penna-c-text-2: #656d76;--penna-c-text-3: #818b98;--penna-c-bg: #ffffff;--penna-c-bg-elevated: #f6f8fa;--penna-c-contrast-light: #fff;--penna-c-contrast-dark: #000;--penna-c-brand-mark: #ffea7f;--penna-c-code-fg: #1f2328;--penna-c-border-soft: #d1d9e0;--penna-c-border-faint: color-mix(in srgb, #d1d9e0 55%, transparent);--penna-c-note: #0969da;--penna-c-note-mark: #add8e6;--penna-c-note-on-bg: color-mix( in srgb, #0969da 16%, #fff );--penna-c-alert-note-text: #0969da;--penna-c-alert-note-bg: color-mix( in srgb, #0969da 10%, transparent );--penna-c-alert-note-border: color-mix( in srgb, #0969da 24%, transparent );--penna-c-tip: #116329;--penna-c-tip-mark: #dafbe1;--penna-c-tip-on-bg: color-mix( in srgb, #116329 16%, #fff );--penna-c-alert-tip-text: #116329;--penna-c-alert-tip-bg: color-mix( in srgb, #116329 10%, transparent );--penna-c-alert-tip-border: color-mix( in srgb, #116329 24%, transparent );--penna-c-warning: #9a6700;--penna-c-warning-mark: #ffea7f;--penna-c-warning-on-bg: color-mix( in srgb, #9a6700 16%, #fff );--penna-c-alert-warning-text: #9a6700;--penna-c-alert-warning-bg: color-mix( in srgb, #9a6700 10%, transparent );--penna-c-alert-warning-border: color-mix( in srgb, #9a6700 24%, transparent );--penna-c-caution: #cf222e;--penna-c-caution-mark: #ffb3b3;--penna-c-caution-on-bg: color-mix( in srgb, #cf222e 16%, #fff );--penna-c-alert-caution-text: #cf222e;--penna-c-alert-caution-bg: color-mix( in srgb, #cf222e 10%, transparent );--penna-c-alert-caution-border: color-mix( in srgb, #cf222e 24%, transparent );--penna-c-danger: #cf222e;--penna-c-danger-mark: #ff9999;--penna-c-danger-on-bg: color-mix( in srgb, #cf222e 16%, #fff );--penna-c-alert-danger-text: #cf222e;--penna-c-alert-danger-bg: color-mix( in srgb, #cf222e 10%, transparent );--penna-c-alert-danger-border: color-mix( in srgb, #cf222e 24%, transparent );--penna-c-important: #8250df;--penna-c-important-mark: #e6ccff;--penna-c-important-on-bg: color-mix( in srgb, #8250df 16%, #fff );--penna-c-alert-important-text: #8250df;--penna-c-alert-important-bg: color-mix( in srgb, #8250df 10%, transparent );--penna-c-alert-important-border: color-mix( in srgb, #8250df 24%, transparent );--penna-c-image-card-info-fg: var(--penna-c-contrast-light);--penna-c-image-card-scrim: var(--penna-c-contrast-dark);--penna-c-image-card-info-bg: linear-gradient( 180deg, transparent 0%, color-mix(in srgb, var(--penna-c-image-card-scrim) 40%, transparent) 55%, color-mix(in srgb, var(--penna-c-image-card-scrim) 65%, transparent) 100% );--penna-c-image-card-info-bg-hover: linear-gradient( 180deg, transparent 0%, color-mix(in srgb, var(--penna-c-image-card-scrim) 50%, transparent) 35%, color-mix(in srgb, var(--penna-c-image-card-scrim) 75%, transparent) 100% );--penna-c-media-player-bg: var(--penna-c-bg-elevated);--penna-c-media-shade: var(--penna-c-bg);--penna-c-on-brand: #fff;--penna-c-code-inline-bg: color-mix(in srgb, #afb8c1 20%, transparent);--penna-c-code-inline-fg: var(--penna-c-code-fg);--penna-c-code-inline-border: transparent;--penna-c-code-block-header-bg: var(--penna-c-bg-elevated);--penna-c-code-block-code-bg: var(--penna-c-bg-elevated);--penna-c-code-block-shadow: none;--penna-c-table-th-border: #d1d9e0;--penna-c-table-td-border: color-mix(in srgb, #d1d9e0 72%, transparent);--penna-c-hr-color: #d1d9e0;--penna-c-blockquote-border: #d1d9e0}.penna-theme-github .penna-render .penna-code-block .hljs,.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs{background:transparent;color:#24292e}.penna-theme-github .penna-render .penna-code-block .hljs-doctag,.penna-theme-github .penna-render .penna-code-block .hljs-keyword,.penna-theme-github .penna-render .penna-code-block .hljs-meta .hljs-keyword,.penna-theme-github .penna-render .penna-code-block .hljs-template-tag,.penna-theme-github .penna-render .penna-code-block .hljs-template-variable,.penna-theme-github .penna-render .penna-code-block .hljs-type,.penna-theme-github .penna-render .penna-code-block .hljs-variable.language_,.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-doctag,.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-keyword,.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-meta .hljs-keyword,.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-template-tag,.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-template-variable,.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-type,.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-variable.language_{color:#d73a49}.penna-theme-github .penna-render .penna-code-block .hljs-title,.penna-theme-github .penna-render .penna-code-block .hljs-title.class_,.penna-theme-github .penna-render .penna-code-block .hljs-title.class_.inherited__,.penna-theme-github .penna-render .penna-code-block .hljs-title.function_,.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-title,.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-title.class_,.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-title.class_.inherited__,.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-title.function_{color:#6f42c1}.penna-theme-github .penna-render .penna-code-block .hljs-attr,.penna-theme-github .penna-render .penna-code-block .hljs-attribute,.penna-theme-github .penna-render .penna-code-block .hljs-literal,.penna-theme-github .penna-render .penna-code-block .hljs-meta,.penna-theme-github .penna-render .penna-code-block .hljs-number,.penna-theme-github .penna-render .penna-code-block .hljs-operator,.penna-theme-github .penna-render .penna-code-block .hljs-selector-attr,.penna-theme-github .penna-render .penna-code-block .hljs-selector-class,.penna-theme-github .penna-render .penna-code-block .hljs-selector-id,.penna-theme-github .penna-render .penna-code-block .hljs-variable,.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-attr,.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-attribute,.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-literal,.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-meta,.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-number,.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-operator,.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-selector-attr,.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-selector-class,.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-selector-id,.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-variable{color:#005cc5}.penna-theme-github .penna-render .penna-code-block .hljs-meta .hljs-string,.penna-theme-github .penna-render .penna-code-block .hljs-regexp,.penna-theme-github .penna-render .penna-code-block .hljs-string,.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-meta .hljs-string,.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-regexp,.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-string{color:#032f62}.penna-theme-github .penna-render .penna-code-block .hljs-built_in,.penna-theme-github .penna-render .penna-code-block .hljs-symbol,.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-built_in,.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-symbol{color:#e36209}.penna-theme-github .penna-render .penna-code-block .hljs-code,.penna-theme-github .penna-render .penna-code-block .hljs-comment,.penna-theme-github .penna-render .penna-code-block .hljs-formula,.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-code,.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-comment,.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-formula{color:#6a737d}.penna-theme-github .penna-render .penna-code-block .hljs-name,.penna-theme-github .penna-render .penna-code-block .hljs-quote,.penna-theme-github .penna-render .penna-code-block .hljs-selector-pseudo,.penna-theme-github .penna-render .penna-code-block .hljs-selector-tag,.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-name,.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-quote,.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-selector-pseudo,.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-selector-tag{color:#22863a}.penna-theme-github .penna-render .penna-code-block .hljs-subst,.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-subst{color:#24292e}.penna-theme-github .penna-render .penna-code-block .hljs-section,.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-section{color:#005cc5;font-weight:700}.penna-theme-github .penna-render .penna-code-block .hljs-bullet,.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-bullet{color:#735c0f}.penna-theme-github .penna-render .penna-code-block .hljs-emphasis,.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-emphasis{color:#24292e;font-style:italic}.penna-theme-github .penna-render .penna-code-block .hljs-strong,.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-strong{color:#24292e;font-weight:700}.penna-theme-github .penna-render .penna-code-block .hljs-addition,.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-addition{color:#22863a;background-color:#f0fff4}.penna-theme-github .penna-render .penna-code-block .hljs-deletion,.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-deletion{color:#b31d28;background-color:#ffeef0}.penna-theme-github .penna-render{box-sizing:border-box;padding:1.5rem 2rem;background-color:var(--penna-c-bg);color:var(--penna-c-text-1);font-family:var(--github-font-sans);font-size:var(--github-text-size);line-height:var(--github-text-leading);word-wrap:break-word}.penna-theme-github .penna-render h1,.penna-theme-github .penna-render h2,.penna-theme-github .penna-render h3,.penna-theme-github .penna-render h4,.penna-theme-github .penna-render h5,.penna-theme-github .penna-render h6{margin:0;padding:0;color:var(--penna-c-text-1);font-family:var(--github-font-sans);font-weight:600;line-height:var(--github-heading-leading)}.penna-theme-github .penna-render h1{margin-top:1.5rem;margin-bottom:1rem;padding-bottom:.375rem;font-size:1.75rem;border-bottom:.0625rem solid var(--penna-c-border-soft)}.penna-theme-github .penna-render h2{margin-top:1.5rem;margin-bottom:1rem;padding-bottom:.375rem;font-size:1.5rem;border-bottom:.0625rem solid var(--penna-c-border-soft)}.penna-theme-github .penna-render h3{margin-top:1.5rem;margin-bottom:1rem;font-size:1.25rem}.penna-theme-github .penna-render h4{margin-top:1.5rem;margin-bottom:1rem;font-size:1rem}.penna-theme-github .penna-render h5{margin-top:1.5rem;margin-bottom:1rem;font-size:.875rem;color:var(--penna-c-text-2)}.penna-theme-github .penna-render h6{margin-top:1.5rem;margin-bottom:1rem;font-size:.8125rem;color:var(--penna-c-text-3)}.penna-theme-github .penna-render p{margin:0 0 1rem}.penna-theme-github .penna-render strong{font-weight:600}.penna-theme-github .penna-render a{color:var(--penna-c-brand-1);text-decoration:none}.penna-theme-github .penna-render a:hover{text-decoration:underline}.penna-theme-github .penna-render blockquote{margin:0 0 1.5rem;padding:1rem;border-left:.25rem solid var(--penna-c-blockquote-border);color:var(--penna-c-text-2)}.penna-theme-github .penna-render blockquote>:first-child{margin-top:0}.penna-theme-github .penna-render blockquote>:last-child{margin-bottom:0}.penna-theme-github .penna-render blockquote blockquote{margin-top:.75rem}.penna-theme-github .penna-render hr{box-sizing:content-box;height:.125rem;margin:1.5rem 0;padding:0;overflow:hidden;border:0;background-color:var(--penna-c-hr-color)}.penna-theme-github .penna-render ul,.penna-theme-github .penna-render ol{margin:0 0 1rem;padding-left:2rem}.penna-theme-github .penna-render li+li{margin-top:.25rem}.penna-theme-github .penna-render :not(pre)>code{padding:.125rem .375rem;font-family:var(--github-font-mono);font-size:85%;color:var(--penna-c-code-inline-fg);background:var(--penna-c-code-inline-bg);border:0;border-radius:var(--github-radius-interactive)}.penna-theme-github .penna-render pre:not(.penna-code-block__pre){margin:0 0 1rem;padding:1rem;font-family:var(--github-font-mono);font-size:.8125rem;color:var(--penna-c-text-1);background:var(--penna-c-bg-elevated);border:.0625rem solid var(--penna-c-border-soft);border-radius:var(--github-radius-interactive);box-shadow:none}.penna-theme-github .penna-render table{--penna-table-border: var(--penna-c-table-td-border);--penna-table-head-bg: var(--penna-c-bg-elevated);--penna-table-row-bg: var(--penna-c-bg);--penna-table-stripe-bg: var(--penna-c-bg-elevated);margin:0 0 1rem;border-collapse:collapse;border-spacing:0}.penna-theme-github .penna-render table th,.penna-theme-github .penna-render table td{padding:.375rem .8125rem;border:.0625rem solid var(--penna-c-table-td-border)}.penna-theme-github .penna-render table th{font-weight:600}.penna-theme-github .penna-render table tbody tr{border-top:.0625rem solid var(--penna-c-table-td-border)}.penna-theme-github .penna-render img{max-width:100%;border-radius:var(--github-radius)}.penna-theme-github .penna-render .penna-alert{margin:0 0 1rem;padding:.75rem 1rem;border:.0625rem solid var(--alert-border);border-left-width:.25rem;border-radius:var(--github-radius-interactive);box-shadow:none;background:var(--alert-bg);font-size:.875rem}.penna-theme-github .penna-render .penna-alert__title{font-weight:600}.penna-theme-github .penna-render .penna-code-block{--cb-radius: var(--github-radius-interactive);--cb-border: var(--penna-c-border-soft);--cb-shadow: none;--cb-header-bg: var(--penna-c-bg-elevated);--cb-code-bg: var(--penna-c-bg-elevated);--cb-lang-fg: var(--penna-c-text-2);--cb-lang-bg: transparent;--cb-line-highlight: color-mix( in srgb, var(--penna-c-brand-1) 12%, transparent );margin:0 0 1rem}.penna-theme-github .penna-render .penna-code-block__panel{border-color:var(--penna-c-border-soft);box-shadow:none}.penna-theme-github .penna-render .penna-code-block__header{min-height:2.25rem;padding:.375rem .75rem;border-bottom:.0625rem solid var(--penna-c-border-soft)}.penna-theme-github .penna-render .penna-code-block__lang{padding:0;font-family:var(--github-font-mono);font-size:.75rem;font-weight:600;letter-spacing:0;text-transform:none;background:transparent;border-radius:0}.penna-theme-github .penna-render .penna-card,.penna-theme-github .penna-render .penna-link-card,.penna-theme-github .penna-render .penna-repo-card{border:.0625rem solid var(--penna-c-border-soft);border-radius:var(--github-radius-interactive);background:var(--penna-c-bg);box-shadow:none}.penna-theme-github .penna-render .penna-link-card:hover{border-color:var(--penna-c-brand-1);box-shadow:none}.penna-theme-github .penna-render .penna-tabs{margin:0 0 1rem;border:.0625rem solid var(--penna-c-border-soft);border-radius:var(--github-radius-interactive);background:var(--penna-c-bg);box-shadow:none}.penna-theme-github .penna-render .penna-tabs__nav{border-bottom:.0625rem solid var(--penna-c-border-soft)}.penna-theme-github .penna-render .penna-tabs__label{font-size:.875rem;font-weight:500;color:var(--penna-c-text-2)}.penna-theme-github .penna-render .penna-tabs__label:hover{color:var(--penna-c-text-1)}.penna-theme-github .penna-render .penna-collapse{border:.0625rem solid var(--penna-c-border-soft);border-radius:var(--github-radius-interactive);background:var(--penna-c-bg);box-shadow:none}.penna-theme-github .penna-render sup.penna-footnote-ref a{color:var(--penna-c-brand-1);text-decoration:none}.penna-theme-github .penna-render sup.penna-footnote-ref a:hover{text-decoration:underline}.penna-dark.penna-theme-github .penna-render{--github-font-sans: -apple-system, "system-ui", "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif;--github-font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--github-text-size: .875rem;--github-text-leading: 1.5;--github-heading-leading: 1.25;--github-radius: 0;--github-radius-interactive: 6px;--github-border-inset: inset 2px var(--penna-c-border-soft);--penna-c-brand-1: #4493f8;--penna-c-brand-2: #3182f6;--penna-c-brand-3: #4493f8;--penna-c-brand-soft: rgba(68, 147, 248, .16);--penna-c-brand-on-bg: #f0f6fc;--penna-c-text-1: #f0f6fc;--penna-c-text-2: #9198a1;--penna-c-text-3: #656c76;--penna-c-bg: #0d1117;--penna-c-bg-elevated: #151b23;--penna-c-contrast-light: #fff;--penna-c-contrast-dark: #000;--penna-c-brand-mark: color-mix( in srgb, #ffea7f 65%, #0d1117 );--penna-c-code-fg: #f0f6fc;--penna-c-border-soft: #3d444d;--penna-c-border-faint: color-mix(in srgb, #3d444d 55%, transparent);--penna-c-note: #4493f8;--penna-c-note-mark: color-mix( in srgb, #58a6ff 65%, #0d1117 );--penna-c-note-on-bg: color-mix( in srgb, #4493f8 16%, #000 );--penna-c-alert-note-text: #4493f8;--penna-c-alert-note-bg: color-mix( in srgb, #4493f8 12%, transparent );--penna-c-alert-note-border: color-mix( in srgb, #4493f8 28%, transparent );--penna-c-tip: #3fb950;--penna-c-tip-mark: color-mix( in srgb, #3fb950 65%, #0d1117 );--penna-c-tip-on-bg: color-mix( in srgb, #3fb950 16%, #000 );--penna-c-alert-tip-text: #3fb950;--penna-c-alert-tip-bg: color-mix( in srgb, #3fb950 12%, transparent );--penna-c-alert-tip-border: color-mix( in srgb, #3fb950 28%, transparent );--penna-c-warning: #d4a72c;--penna-c-warning-mark: color-mix( in srgb, #d29922 65%, #0d1117 );--penna-c-warning-on-bg: color-mix( in srgb, #d4a72c 16%, #000 );--penna-c-alert-warning-text: #d4a72c;--penna-c-alert-warning-bg: color-mix( in srgb, #d4a72c 12%, transparent );--penna-c-alert-warning-border: color-mix( in srgb, #d4a72c 28%, transparent );--penna-c-caution: #ff8182;--penna-c-caution-mark: color-mix( in srgb, #f85149 65%, #0d1117 );--penna-c-caution-on-bg: color-mix( in srgb, #ff8182 16%, #000 );--penna-c-alert-caution-text: #ff8182;--penna-c-alert-caution-bg: color-mix( in srgb, #ff8182 12%, transparent );--penna-c-alert-caution-border: color-mix( in srgb, #ff8182 28%, transparent );--penna-c-danger: #ff8182;--penna-c-danger-mark: color-mix( in srgb, #f85149 65%, #0d1117 );--penna-c-danger-on-bg: color-mix( in srgb, #ff8182 16%, #000 );--penna-c-alert-danger-text: #ff8182;--penna-c-alert-danger-bg: color-mix( in srgb, #ff8182 12%, transparent );--penna-c-alert-danger-border: color-mix( in srgb, #ff8182 28%, transparent );--penna-c-important: #ab7df8;--penna-c-important-mark: color-mix( in srgb, #bc8cff 65%, #0d1117 );--penna-c-important-on-bg: color-mix( in srgb, #ab7df8 16%, #000 );--penna-c-alert-important-text: #ab7df8;--penna-c-alert-important-bg: color-mix( in srgb, #ab7df8 12%, transparent );--penna-c-alert-important-border: color-mix( in srgb, #ab7df8 28%, transparent );--penna-c-image-card-info-fg: var(--penna-c-contrast-light);--penna-c-image-card-scrim: var(--penna-c-contrast-dark);--penna-c-image-card-info-bg: linear-gradient( 180deg, transparent 0%, color-mix(in srgb, var(--penna-c-image-card-scrim) 40%, transparent) 55%, color-mix(in srgb, var(--penna-c-image-card-scrim) 65%, transparent) 100% );--penna-c-image-card-info-bg-hover: linear-gradient( 180deg, transparent 0%, color-mix(in srgb, var(--penna-c-image-card-scrim) 50%, transparent) 35%, color-mix(in srgb, var(--penna-c-image-card-scrim) 75%, transparent) 100% );--penna-c-media-player-bg: var(--penna-c-bg-elevated);--penna-c-media-shade: var(--penna-c-bg);--penna-c-on-brand: #fff;--penna-c-code-inline-bg: color-mix(in srgb, #9198a1 16%, transparent);--penna-c-code-inline-fg: var(--penna-c-code-fg);--penna-c-code-inline-border: transparent;--penna-c-code-block-header-bg: var(--penna-c-bg-elevated);--penna-c-code-block-code-bg: var(--penna-c-bg-elevated);--penna-c-code-block-shadow: none;--penna-c-table-th-border: #3d444d;--penna-c-table-td-border: color-mix(in srgb, #3d444d 72%, transparent);--penna-c-hr-color: #3d444d;--penna-c-blockquote-border: #3d444d}.penna-dark.penna-theme-github .penna-render .penna-code-block .hljs,.penna-dark.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs{background:transparent;color:#c9d1d9}.penna-dark.penna-theme-github .penna-render .penna-code-block .hljs-doctag,.penna-dark.penna-theme-github .penna-render .penna-code-block .hljs-keyword,.penna-dark.penna-theme-github .penna-render .penna-code-block .hljs-meta .hljs-keyword,.penna-dark.penna-theme-github .penna-render .penna-code-block .hljs-template-tag,.penna-dark.penna-theme-github .penna-render .penna-code-block .hljs-template-variable,.penna-dark.penna-theme-github .penna-render .penna-code-block .hljs-type,.penna-dark.penna-theme-github .penna-render .penna-code-block .hljs-variable.language_,.penna-dark.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-doctag,.penna-dark.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-keyword,.penna-dark.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-meta .hljs-keyword,.penna-dark.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-template-tag,.penna-dark.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-template-variable,.penna-dark.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-type,.penna-dark.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-variable.language_{color:#ff7b72}.penna-dark.penna-theme-github .penna-render .penna-code-block .hljs-title,.penna-dark.penna-theme-github .penna-render .penna-code-block .hljs-title.class_,.penna-dark.penna-theme-github .penna-render .penna-code-block .hljs-title.class_.inherited__,.penna-dark.penna-theme-github .penna-render .penna-code-block .hljs-title.function_,.penna-dark.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-title,.penna-dark.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-title.class_,.penna-dark.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-title.class_.inherited__,.penna-dark.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-title.function_{color:#d2a8ff}.penna-dark.penna-theme-github .penna-render .penna-code-block .hljs-attr,.penna-dark.penna-theme-github .penna-render .penna-code-block .hljs-attribute,.penna-dark.penna-theme-github .penna-render .penna-code-block .hljs-literal,.penna-dark.penna-theme-github .penna-render .penna-code-block .hljs-meta,.penna-dark.penna-theme-github .penna-render .penna-code-block .hljs-number,.penna-dark.penna-theme-github .penna-render .penna-code-block .hljs-operator,.penna-dark.penna-theme-github .penna-render .penna-code-block .hljs-selector-attr,.penna-dark.penna-theme-github .penna-render .penna-code-block .hljs-selector-class,.penna-dark.penna-theme-github .penna-render .penna-code-block .hljs-selector-id,.penna-dark.penna-theme-github .penna-render .penna-code-block .hljs-variable,.penna-dark.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-attr,.penna-dark.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-attribute,.penna-dark.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-literal,.penna-dark.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-meta,.penna-dark.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-number,.penna-dark.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-operator,.penna-dark.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-selector-attr,.penna-dark.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-selector-class,.penna-dark.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-selector-id,.penna-dark.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-variable{color:#79c0ff}.penna-dark.penna-theme-github .penna-render .penna-code-block .hljs-meta .hljs-string,.penna-dark.penna-theme-github .penna-render .penna-code-block .hljs-regexp,.penna-dark.penna-theme-github .penna-render .penna-code-block .hljs-string,.penna-dark.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-meta .hljs-string,.penna-dark.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-regexp,.penna-dark.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-string{color:#a5d6ff}.penna-dark.penna-theme-github .penna-render .penna-code-block .hljs-built_in,.penna-dark.penna-theme-github .penna-render .penna-code-block .hljs-symbol,.penna-dark.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-built_in,.penna-dark.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-symbol{color:#ffa657}.penna-dark.penna-theme-github .penna-render .penna-code-block .hljs-code,.penna-dark.penna-theme-github .penna-render .penna-code-block .hljs-comment,.penna-dark.penna-theme-github .penna-render .penna-code-block .hljs-formula,.penna-dark.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-code,.penna-dark.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-comment,.penna-dark.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-formula{color:#8b949e}.penna-dark.penna-theme-github .penna-render .penna-code-block .hljs-name,.penna-dark.penna-theme-github .penna-render .penna-code-block .hljs-quote,.penna-dark.penna-theme-github .penna-render .penna-code-block .hljs-selector-pseudo,.penna-dark.penna-theme-github .penna-render .penna-code-block .hljs-selector-tag,.penna-dark.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-name,.penna-dark.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-quote,.penna-dark.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-selector-pseudo,.penna-dark.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-selector-tag{color:#7ee787}.penna-dark.penna-theme-github .penna-render .penna-code-block .hljs-subst,.penna-dark.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-subst{color:#c9d1d9}.penna-dark.penna-theme-github .penna-render .penna-code-block .hljs-section,.penna-dark.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-section{color:#1f6feb;font-weight:700}.penna-dark.penna-theme-github .penna-render .penna-code-block .hljs-bullet,.penna-dark.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-bullet{color:#f2cc60}.penna-dark.penna-theme-github .penna-render .penna-code-block .hljs-emphasis,.penna-dark.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-emphasis{color:#c9d1d9;font-style:italic}.penna-dark.penna-theme-github .penna-render .penna-code-block .hljs-strong,.penna-dark.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-strong{color:#c9d1d9;font-weight:700}.penna-dark.penna-theme-github .penna-render .penna-code-block .hljs-addition,.penna-dark.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-addition{color:#aff5b4;background-color:#033a16}.penna-dark.penna-theme-github .penna-render .penna-code-block .hljs-deletion,.penna-dark.penna-theme-github .penna-render pre:not(.penna-code-block__pre) .hljs-deletion{color:#ffdcd7;background-color:#67060c}.penna-theme-morandi .penna-render{--morandi-font-sans: "Alibaba PuHuiTi", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", sans-serif;--morandi-font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;--morandi-text-size: 1rem;--morandi-text-leading: 1.8;--morandi-heading-leading: 1.4;--morandi-h1-color: #7a5f52;--morandi-h2-color: #506956;--morandi-h3-color: #7a6f89;--morandi-h4-color: #6f7f88;--morandi-h5-color: #8a7a6f;--morandi-h6-color: #7d7a71;--penna-c-brand-1: #506956;--penna-c-brand-2: #405946;--penna-c-brand-3: #de7487;--penna-c-brand-soft: rgba(80, 105, 86, .12);--penna-c-brand-on-bg: #fff;--penna-c-text-1: #403c3c;--penna-c-text-2: color-mix(in srgb, #403c3c 72%, #98948c);--penna-c-text-3: #98948c;--penna-c-bg: #fbfdfb;--penna-c-bg-elevated: #f0f5f3;--penna-c-contrast-light: #fff;--penna-c-contrast-dark: #000;--penna-c-brand-mark: #ffea7f;--penna-c-code-fg: #403c3c;--penna-c-border-soft: #7ea388;--penna-c-border-faint: color-mix(in srgb, #7ea388 45%, transparent);--penna-c-note: #6f7f88;--penna-c-note-mark: #add8e6;--penna-c-note-on-bg: color-mix( in srgb, #6f7f88 16%, #fff );--penna-c-alert-note-text: #6f7f88;--penna-c-alert-note-bg: color-mix( in srgb, #6f7f88 10%, transparent );--penna-c-alert-note-border: color-mix( in srgb, #6f7f88 22%, transparent );--penna-c-tip: #506956;--penna-c-tip-mark: #98fb98;--penna-c-tip-on-bg: color-mix( in srgb, #506956 16%, #fff );--penna-c-alert-tip-text: #506956;--penna-c-alert-tip-bg: color-mix( in srgb, #506956 10%, transparent );--penna-c-alert-tip-border: color-mix( in srgb, #506956 22%, transparent );--penna-c-warning: #8a7a6f;--penna-c-warning-mark: #ffea7f;--penna-c-warning-on-bg: color-mix( in srgb, #8a7a6f 16%, #fff );--penna-c-alert-warning-text: #8a7a6f;--penna-c-alert-warning-bg: color-mix( in srgb, #8a7a6f 10%, transparent );--penna-c-alert-warning-border: color-mix( in srgb, #8a7a6f 22%, transparent );--penna-c-caution: #de7487;--penna-c-caution-mark: #ffb3b3;--penna-c-caution-on-bg: color-mix( in srgb, #de7487 16%, #fff );--penna-c-alert-caution-text: #de7487;--penna-c-alert-caution-bg: color-mix( in srgb, #de7487 10%, transparent );--penna-c-alert-caution-border: color-mix( in srgb, #de7487 22%, transparent );--penna-c-danger: #de7487;--penna-c-danger-mark: #ff9999;--penna-c-danger-on-bg: color-mix( in srgb, #de7487 16%, #fff );--penna-c-alert-danger-text: #de7487;--penna-c-alert-danger-bg: color-mix( in srgb, #de7487 10%, transparent );--penna-c-alert-danger-border: color-mix( in srgb, #de7487 22%, transparent );--penna-c-important: #7a6f89;--penna-c-important-mark: #e6ccff;--penna-c-important-on-bg: color-mix( in srgb, #7a6f89 16%, #fff );--penna-c-alert-important-text: #7a6f89;--penna-c-alert-important-bg: color-mix( in srgb, #7a6f89 10%, transparent );--penna-c-alert-important-border: color-mix( in srgb, #7a6f89 22%, transparent );--penna-c-image-card-info-fg: var(--penna-c-contrast-light);--penna-c-image-card-scrim: var(--penna-c-contrast-dark);--penna-c-image-card-info-bg: linear-gradient( 180deg, transparent 0%, color-mix(in srgb, var(--penna-c-image-card-scrim) 36%, transparent) 55%, color-mix(in srgb, var(--penna-c-image-card-scrim) 58%, transparent) 100% );--penna-c-image-card-info-bg-hover: linear-gradient( 180deg, transparent 0%, color-mix(in srgb, var(--penna-c-image-card-scrim) 46%, transparent) 35%, color-mix(in srgb, var(--penna-c-image-card-scrim) 68%, transparent) 100% );--penna-c-media-player-bg: var(--penna-c-bg-elevated);--penna-c-media-shade: var(--penna-c-bg);--penna-c-on-brand: #fff;--penna-c-code-inline-bg: #f0f5f3;--penna-c-code-inline-fg: var(--morandi-h3-color);--penna-c-code-inline-border: transparent;--penna-c-code-block-header-bg: var(--penna-c-bg-elevated);--penna-c-code-block-code-bg: var(--penna-c-bg-elevated);--penna-c-code-block-shadow: none;--penna-c-table-th-border: #7ea388;--penna-c-table-td-border: color-mix(in srgb, #7ea388 55%, transparent);--penna-c-hr-color: #ccd8cf;--penna-c-blockquote-border: #7a5f52;--morandi-h1-rule: #dde6df;--morandi-blockquote-bg: #eef4ef;--penna-c-hljs-bg: transparent;--penna-c-hljs-comment: #93a1a1;--penna-c-hljs-keyword: #d33682;--penna-c-hljs-string: #dc322f;--penna-c-hljs-number: #6c71c4;--penna-c-hljs-title: #2aa198;--penna-c-hljs-attr: #586e75;--penna-c-hljs-meta: #cb4b16;--penna-c-hljs-section: #859900;box-sizing:border-box;padding:2rem 1rem;background-color:var(--penna-c-bg);color:var(--penna-c-text-1);font-family:var(--morandi-font-sans);font-size:var(--morandi-text-size);line-height:var(--morandi-text-leading);word-wrap:break-word}.penna-theme-morandi .penna-render h1,.penna-theme-morandi .penna-render h2,.penna-theme-morandi .penna-render h3,.penna-theme-morandi .penna-render h4,.penna-theme-morandi .penna-render h5,.penna-theme-morandi .penna-render h6{margin:0 0 1rem;padding:0;border:0;font-family:var(--morandi-font-sans);font-weight:700;letter-spacing:.125rem;line-height:var(--morandi-heading-leading)}.penna-theme-morandi .penna-render h1{font-size:2.1875rem;color:var(--morandi-h1-color);padding-bottom:.625rem;border-bottom:.125rem solid var(--morandi-h1-rule)}.penna-theme-morandi .penna-render h2{font-size:1.8125rem;color:var(--morandi-h2-color);font-weight:800;padding-left:.8125rem;border-left:.25rem solid var(--morandi-h2-color)}.penna-theme-morandi .penna-render h3{font-size:1.5rem;color:var(--morandi-h3-color);padding-left:.375rem}.penna-theme-morandi .penna-render h4{font-size:1.3125rem;color:var(--morandi-h4-color)}.penna-theme-morandi .penna-render h5{font-size:1.125rem;color:var(--morandi-h5-color);font-style:italic}.penna-theme-morandi .penna-render h6{font-size:1rem;color:var(--morandi-h6-color);font-weight:400}.penna-theme-morandi .penna-render p{margin:0 0 1rem}.penna-theme-morandi .penna-render a{color:var(--penna-c-brand-1);text-decoration:none;border-bottom:.0625rem solid color-mix(in srgb,var(--penna-c-brand-1) 30%,transparent)}.penna-theme-morandi .penna-render a:hover{color:var(--penna-c-brand-2);border-bottom-color:var(--penna-c-brand-2)}.penna-theme-morandi .penna-render blockquote{margin:0 0 1.5rem;padding:1rem 1.1875rem;border-left:.25rem solid var(--penna-c-blockquote-border);border-radius:0 .625rem .625rem 0;background:var(--morandi-blockquote-bg);color:var(--penna-c-text-1);font-style:italic}.penna-theme-morandi .penna-render blockquote blockquote{margin:0 0 .8125rem;border-left-color:var(--morandi-h3-color);background:color-mix(in srgb,var(--morandi-blockquote-bg) 60%,transparent)}.penna-theme-morandi .penna-render blockquote blockquote blockquote{border-left-color:var(--morandi-h4-color);background:color-mix(in srgb,var(--morandi-blockquote-bg) 40%,transparent)}.penna-theme-morandi .penna-render hr{height:.125rem;margin:0 0 2.5rem;padding:0;border:0;background-color:var(--penna-c-hr-color)}.penna-theme-morandi .penna-render ul,.penna-theme-morandi .penna-render ol{margin:0 0 1rem 1.625rem;padding-left:0}.penna-theme-morandi .penna-render ul{list-style-type:disc}.penna-theme-morandi .penna-render ol{list-style-type:decimal}.penna-theme-morandi .penna-render ul ul{list-style-type:circle;margin-left:1.1875rem}.penna-theme-morandi .penna-render ul ul ul{list-style-type:square;margin-left:1.1875rem}.penna-theme-morandi .penna-render ol ol{margin-left:1.1875rem}.penna-theme-morandi .penna-render :not(.penna-steps)>ul:not(.task-list)>li,.penna-theme-morandi .penna-render :not(.penna-steps)>ol:not(.task-list)>li{position:relative;margin:.5rem 0}.penna-theme-morandi .penna-render :not(.penna-steps)>ul:not(.task-list)>li:before,.penna-theme-morandi .penna-render :not(.penna-steps)>ol:not(.task-list)>li:before{content:"";position:absolute;top:2.1875rem;left:-1rem;height:calc(100% - 2.5rem);border-left:.09375rem solid var(--morandi-h3-color)}.penna-theme-morandi .penna-render :not(.penna-steps)>ul:not(.task-list) ul>li:before,.penna-theme-morandi .penna-render :not(.penna-steps)>ol:not(.task-list) ol>li:before{border-left-width:.0625rem;border-left-color:var(--morandi-h2-color)}.penna-theme-morandi .penna-render :not(.penna-steps)>ul:not(.task-list) ul ul>li:before,.penna-theme-morandi .penna-render :not(.penna-steps)>ol:not(.task-list) ol ol>li:before{border-left-width:.03125rem;border-left-color:var(--morandi-h1-color)}.penna-theme-morandi .penna-render :not(pre)>code{padding:.1875rem .1875rem .0625rem;font-family:var(--morandi-font-mono);letter-spacing:.03125rem;color:var(--penna-c-code-inline-fg);background:var(--penna-c-code-inline-bg);border:0;border-radius:.3125rem}.penna-theme-morandi .penna-render pre:not(.penna-code-block__pre){margin:0 0 1rem;padding:1.1875rem .8125rem;font-family:var(--morandi-font-mono);color:var(--penna-c-text-1);background:var(--penna-c-bg-elevated);border:0;border-radius:.625rem;box-shadow:none}.penna-theme-morandi .penna-render table{--penna-table-border: var(--penna-c-table-td-border);--penna-table-head-bg: #eaf0eb;--penna-table-row-bg: var(--penna-c-bg);--penna-table-stripe-bg: transparent;margin:0 0 2rem;border-collapse:collapse}.penna-theme-morandi .penna-render table th,.penna-theme-morandi .penna-render table td{padding:.8125rem 1rem;border:.0625rem solid var(--penna-c-table-td-border)}.penna-theme-morandi .penna-render table th{font-weight:700;color:var(--morandi-h2-color);background:var(--penna-table-head-bg)}.penna-theme-morandi .penna-render table tbody tr:hover{background:color-mix(in srgb,var(--morandi-blockquote-bg) 50%,transparent)}.penna-theme-morandi .penna-render img{border-radius:.375rem}.penna-theme-morandi .penna-render .penna-alert{margin:0 0 1rem;padding:.875rem 1rem;border:.0625rem solid var(--alert-border);border-left-width:.25rem;border-radius:0 .625rem .625rem 0;box-shadow:none;background:var(--alert-bg);font-size:.875rem}.penna-theme-morandi .penna-render .penna-code-block{--cb-radius: .625rem;--cb-border: transparent;--cb-shadow: none;--cb-header-bg: var(--penna-c-bg-elevated);--cb-code-bg: var(--penna-c-bg-elevated);--cb-lang-fg: var(--penna-c-text-3);--cb-lang-bg: transparent;--cb-line-highlight: color-mix( in srgb, var(--penna-c-brand-1) 10%, transparent );margin:0 0 1rem}.penna-theme-morandi .penna-render .penna-code-block__panel{border:0;box-shadow:none}.penna-theme-morandi .penna-render .penna-code-block__header{min-height:1.875rem;padding:.25rem .75rem;border-bottom:0}.penna-theme-morandi .penna-render .penna-code-block__lang{padding:0;font-family:var(--morandi-font-sans);font-size:.8125rem;font-weight:400;letter-spacing:0;text-transform:none;text-align:center;background:transparent;border-radius:0}.penna-theme-morandi .penna-render .penna-code-block .hljs{background:var(--penna-c-hljs-bg);color:var(--penna-c-text-1)}.penna-theme-morandi .penna-render .penna-code-block .hljs-comment,.penna-theme-morandi .penna-render .penna-code-block .hljs-quote{color:var(--penna-c-hljs-comment);font-style:italic}.penna-theme-morandi .penna-render .penna-code-block .hljs-keyword,.penna-theme-morandi .penna-render .penna-code-block .hljs-selector-tag{color:var(--penna-c-hljs-keyword);font-weight:700}.penna-theme-morandi .penna-render .penna-code-block .hljs-string,.penna-theme-morandi .penna-render .penna-code-block .hljs-regexp{color:var(--penna-c-hljs-string)}.penna-theme-morandi .penna-render .penna-code-block .hljs-number,.penna-theme-morandi .penna-render .penna-code-block .hljs-literal{color:var(--penna-c-hljs-number)}.penna-theme-morandi .penna-render .penna-code-block .hljs-title,.penna-theme-morandi .penna-render .penna-code-block .hljs-title.class_,.penna-theme-morandi .penna-render .penna-code-block .hljs-type,.penna-theme-morandi .penna-render .penna-code-block .hljs-built_in{color:var(--penna-c-hljs-title)}.penna-theme-morandi .penna-render .penna-code-block .hljs-variable,.penna-theme-morandi .penna-render .penna-code-block .hljs-template-variable,.penna-theme-morandi .penna-render .penna-code-block .hljs-attribute{color:var(--penna-c-hljs-attr)}.penna-theme-morandi .penna-render .penna-code-block .hljs-meta{color:var(--penna-c-hljs-meta);font-style:italic}.penna-theme-morandi .penna-render .penna-code-block .hljs-name,.penna-theme-morandi .penna-render .penna-code-block .hljs-section{color:var(--penna-c-hljs-section)}.penna-theme-morandi .penna-render .task-list .task-item.todo .marker{--marker-color: #8f9fa8}.penna-theme-morandi .penna-render .task-list .task-item.done .marker{--marker-color: #708976}.penna-theme-morandi .penna-render .penna-card,.penna-theme-morandi .penna-render .penna-link-card,.penna-theme-morandi .penna-render .penna-repo-card,.penna-theme-morandi .penna-render .penna-tabs,.penna-theme-morandi .penna-render .penna-collapse{border:.0625rem solid var(--penna-c-border-faint);border-radius:.625rem;background:var(--penna-c-bg);box-shadow:none}.penna-theme-morandi .penna-render .penna-link-card:hover{border-color:var(--penna-c-brand-1);box-shadow:none}.penna-theme-morandi .penna-render sup.penna-footnote-ref a{color:var(--penna-c-brand-3);text-decoration:none}.penna-theme-morandi .penna-render sup.penna-footnote-ref a:hover{text-decoration:underline}.penna-dark.penna-theme-morandi .penna-render{--morandi-font-sans: "Alibaba PuHuiTi", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", sans-serif;--morandi-font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;--morandi-text-size: 1rem;--morandi-text-leading: 1.8;--morandi-heading-leading: 1.4;--morandi-h1-color: #7a5f52;--morandi-h2-color: #506956;--morandi-h3-color: #7a6f89;--morandi-h4-color: #6f7f88;--morandi-h5-color: #8a7a6f;--morandi-h6-color: #7d7a71;--morandi-h1-color: #c4a99a;--morandi-h2-color: #8fa896;--morandi-h3-color: #a89bb8;--morandi-h4-color: #93a0a8;--morandi-h5-color: #b0a399;--morandi-h6-color: #a8a59d;--penna-c-brand-1: #8fa896;--penna-c-brand-2: #a8c0ae;--penna-c-brand-3: #de7487;--penna-c-brand-soft: rgba(143, 168, 150, .16);--penna-c-brand-on-bg: #e8e6e1;--penna-c-text-1: #e8e6e1;--penna-c-text-2: #b4b0a8;--penna-c-text-3: #8f8b84;--penna-c-bg: #2e3330;--penna-c-bg-elevated: #383e3a;--penna-c-contrast-light: #fff;--penna-c-contrast-dark: #000;--penna-c-brand-mark: color-mix( in srgb, #ffea7f 65%, #2e3330 );--penna-c-code-fg: #e8e6e1;--penna-c-border-soft: #5a7260;--penna-c-border-faint: color-mix(in srgb, #5a7260 45%, transparent);--penna-c-note: #93a0a8;--penna-c-note-mark: color-mix( in srgb, #58a6ff 65%, #2e3330 );--penna-c-note-on-bg: color-mix( in srgb, #93a0a8 16%, #000 );--penna-c-alert-note-text: #93a0a8;--penna-c-alert-note-bg: color-mix( in srgb, #93a0a8 12%, transparent );--penna-c-alert-note-border: color-mix( in srgb, #93a0a8 26%, transparent );--penna-c-tip: #8fa896;--penna-c-tip-mark: color-mix( in srgb, #3fb950 65%, #2e3330 );--penna-c-tip-on-bg: color-mix( in srgb, #8fa896 16%, #000 );--penna-c-alert-tip-text: #8fa896;--penna-c-alert-tip-bg: color-mix( in srgb, #8fa896 12%, transparent );--penna-c-alert-tip-border: color-mix( in srgb, #8fa896 26%, transparent );--penna-c-warning: #b0a399;--penna-c-warning-mark: color-mix( in srgb, #d29922 65%, #2e3330 );--penna-c-warning-on-bg: color-mix( in srgb, #b0a399 16%, #000 );--penna-c-alert-warning-text: #b0a399;--penna-c-alert-warning-bg: color-mix( in srgb, #b0a399 12%, transparent );--penna-c-alert-warning-border: color-mix( in srgb, #b0a399 26%, transparent );--penna-c-caution: #de7487;--penna-c-caution-mark: color-mix( in srgb, #f85149 65%, #2e3330 );--penna-c-caution-on-bg: color-mix( in srgb, #de7487 16%, #000 );--penna-c-alert-caution-text: #de7487;--penna-c-alert-caution-bg: color-mix( in srgb, #de7487 12%, transparent );--penna-c-alert-caution-border: color-mix( in srgb, #de7487 26%, transparent );--penna-c-danger: #de7487;--penna-c-danger-mark: color-mix( in srgb, #f85149 65%, #2e3330 );--penna-c-danger-on-bg: color-mix( in srgb, #de7487 16%, #000 );--penna-c-alert-danger-text: #de7487;--penna-c-alert-danger-bg: color-mix( in srgb, #de7487 12%, transparent );--penna-c-alert-danger-border: color-mix( in srgb, #de7487 26%, transparent );--penna-c-important: #a89bb8;--penna-c-important-mark: color-mix( in srgb, #bc8cff 65%, #2e3330 );--penna-c-important-on-bg: color-mix( in srgb, #a89bb8 16%, #000 );--penna-c-alert-important-text: #a89bb8;--penna-c-alert-important-bg: color-mix( in srgb, #a89bb8 12%, transparent );--penna-c-alert-important-border: color-mix( in srgb, #a89bb8 26%, transparent );--penna-c-image-card-info-fg: var(--penna-c-contrast-light);--penna-c-image-card-scrim: var(--penna-c-contrast-dark);--penna-c-image-card-info-bg: linear-gradient( 180deg, transparent 0%, color-mix(in srgb, var(--penna-c-image-card-scrim) 36%, transparent) 55%, color-mix(in srgb, var(--penna-c-image-card-scrim) 58%, transparent) 100% );--penna-c-image-card-info-bg-hover: linear-gradient( 180deg, transparent 0%, color-mix(in srgb, var(--penna-c-image-card-scrim) 46%, transparent) 35%, color-mix(in srgb, var(--penna-c-image-card-scrim) 68%, transparent) 100% );--penna-c-media-player-bg: var(--penna-c-bg-elevated);--penna-c-media-shade: var(--penna-c-bg);--penna-c-on-brand: #fff;--penna-c-code-inline-bg: #3a403c;--penna-c-code-inline-fg: var(--morandi-h3-color);--penna-c-code-inline-border: transparent;--penna-c-code-block-header-bg: var(--penna-c-bg-elevated);--penna-c-code-block-code-bg: var(--penna-c-bg-elevated);--penna-c-code-block-shadow: none;--penna-c-table-th-border: #5a7260;--penna-c-table-td-border: color-mix(in srgb, #5a7260 55%, transparent);--penna-c-hr-color: #4a524c;--penna-c-blockquote-border: #c4a99a;--morandi-h1-rule: #4a524c;--morandi-blockquote-bg: #343a36;--penna-c-hljs-bg: transparent;--penna-c-hljs-comment: #8b9eb0;--penna-c-hljs-keyword: #f56cbe;--penna-c-hljs-string: #ff8c8a;--penna-c-hljs-number: #aeb5ff;--penna-c-hljs-title: #2bdccf;--penna-c-hljs-attr: #93a1a1;--penna-c-hljs-meta: #ff8552;--penna-c-hljs-section: #a2bd00}.penna-theme-latex .penna-render{--latex-font-serif: "Latin Modern Roman", "Latin Modern Roman 10", "Times New Roman", "Noto Serif CJK SC", "Songti SC", "STSong", "SimSun", serif;--latex-font-heiti: "STHeiti", "SimHei", "PingFang SC", "Noto Sans CJK SC", sans-serif;--latex-font-kai: "STKaiti", "KaiTi", "FZDocKai", "Noto Serif CJK SC", serif;--latex-font-fangsong: "STFangsong", "FangSong", "Noto Serif CJK SC", serif;--latex-font-mono: "Latin Modern Mono", "Latin Modern Mono 10", Consolas, "Courier New", monospace;--latex-font-ui: "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif;--latex-text-size: 9.5pt;--latex-text-leading: 1.618em;--latex-strong-weight: 900;--latex-quote-size: 1.05em;--penna-c-brand-1: #2e67d3;--penna-c-brand-2: color-mix(in srgb, #2e67d3 82%, #000);--penna-c-brand-3: #2e67d3;--penna-c-brand-soft: rgba(46, 103, 211, .1);--penna-c-brand-on-bg: #fff;--penna-c-text-1: #000000;--penna-c-text-2: color-mix(in srgb, #000000 72%, #666);--penna-c-text-3: #666666;--penna-c-bg: #ffffff;--penna-c-bg-elevated: #fefefe;--penna-c-contrast-light: #fff;--penna-c-contrast-dark: #000;--penna-c-brand-mark: #ffea7f;--penna-c-code-fg: #3c70c6;--penna-c-border-soft: hsl(0, 0%, 70%);--penna-c-border-faint: color-mix(in srgb, #dddddd 90%, transparent);--latex-code-inline-shadow: #c8d3df;--penna-c-hljs-keyword: #d73a49;--penna-c-hljs-string: #032f62;--penna-c-hljs-number: #005cc5;--penna-c-hljs-title: #6f42c1;--penna-c-hljs-attr: #005cc5;--penna-c-hljs-comment: #6a737d;--penna-c-hljs-bg: transparent;--penna-c-note: #2e67d3;--penna-c-note-mark: #add8e6;--penna-c-note-on-bg: color-mix( in srgb, #2e67d3 16%, #fff );--penna-c-alert-note-text: #2e67d3;--penna-c-alert-note-bg: color-mix( in srgb, #2e67d3 10%, transparent );--penna-c-alert-note-border: color-mix( in srgb, #2e67d3 22%, transparent );--penna-c-tip: #3a6b4a;--penna-c-tip-mark: #98fb98;--penna-c-tip-on-bg: color-mix( in srgb, #3a6b4a 16%, #fff );--penna-c-alert-tip-text: #3a6b4a;--penna-c-alert-tip-bg: color-mix( in srgb, #3a6b4a 10%, transparent );--penna-c-alert-tip-border: color-mix( in srgb, #3a6b4a 22%, transparent );--penna-c-warning: #8a6b3a;--penna-c-warning-mark: #ffea7f;--penna-c-warning-on-bg: color-mix( in srgb, #8a6b3a 16%, #fff );--penna-c-alert-warning-text: #8a6b3a;--penna-c-alert-warning-bg: color-mix( in srgb, #8a6b3a 10%, transparent );--penna-c-alert-warning-border: color-mix( in srgb, #8a6b3a 22%, transparent );--penna-c-caution: #a84832;--penna-c-caution-mark: #ffb3b3;--penna-c-caution-on-bg: color-mix( in srgb, #a84832 16%, #fff );--penna-c-alert-caution-text: #a84832;--penna-c-alert-caution-bg: color-mix( in srgb, #a84832 10%, transparent );--penna-c-alert-caution-border: color-mix( in srgb, #a84832 22%, transparent );--penna-c-danger: #a84832;--penna-c-danger-mark: #ff9999;--penna-c-danger-on-bg: color-mix( in srgb, #a84832 16%, #fff );--penna-c-alert-danger-text: #a84832;--penna-c-alert-danger-bg: color-mix( in srgb, #a84832 10%, transparent );--penna-c-alert-danger-border: color-mix( in srgb, #a84832 22%, transparent );--penna-c-important: #5a4a72;--penna-c-important-mark: #e6ccff;--penna-c-important-on-bg: color-mix( in srgb, #5a4a72 16%, #fff );--penna-c-alert-important-text: #5a4a72;--penna-c-alert-important-bg: color-mix( in srgb, #5a4a72 10%, transparent );--penna-c-alert-important-border: color-mix( in srgb, #5a4a72 22%, transparent );--penna-c-image-card-info-fg: var(--penna-c-contrast-light);--penna-c-image-card-scrim: var(--penna-c-contrast-dark);--penna-c-image-card-info-bg: linear-gradient( 180deg, transparent 0%, color-mix(in srgb, var(--penna-c-image-card-scrim) 36%, transparent) 55%, color-mix(in srgb, var(--penna-c-image-card-scrim) 58%, transparent) 100% );--penna-c-image-card-info-bg-hover: linear-gradient( 180deg, transparent 0%, color-mix(in srgb, var(--penna-c-image-card-scrim) 46%, transparent) 35%, color-mix(in srgb, var(--penna-c-image-card-scrim) 68%, transparent) 100% );--penna-c-media-player-bg: var(--penna-c-bg-elevated);--penna-c-media-shade: var(--penna-c-bg);--penna-c-on-brand: #fff;--penna-c-code-inline-bg: #fefefe;--penna-c-code-inline-fg: #3c70c6;--penna-c-code-inline-border: transparent;--penna-c-code-block-header-bg: #fefefe;--penna-c-code-block-code-bg: #fefefe;--penna-c-code-block-shadow: none;--penna-c-table-th-border: var(--penna-c-text-1);--penna-c-table-td-border: transparent;--penna-c-hr-color: #dddddd;--penna-c-blockquote-border: hsl(0, 0%, 70%);box-sizing:border-box;max-width:21cm;margin-inline:auto;padding:4.25rem 4.6875rem;background-color:var(--penna-c-bg);color:var(--penna-c-text-1);font-family:var(--latex-font-serif);font-size:var(--latex-text-size);word-wrap:break-word;counter-reset:heading-h2 heading-h3 heading-h4 heading-h5 heading-h6}.penna-theme-latex .penna-render h1,.penna-theme-latex .penna-render h2,.penna-theme-latex .penna-render h3,.penna-theme-latex .penna-render h4,.penna-theme-latex .penna-render h5,.penna-theme-latex .penna-render h6{margin:0 0 1em;padding:0;border:0;font-weight:400;break-after:avoid-page}.penna-theme-latex .penna-render h1{counter-reset:heading-h2 heading-h3 heading-h4 heading-h5 heading-h6;font-family:var(--latex-font-heiti),var(--latex-font-serif);font-size:1.9em;text-align:center}.penna-theme-latex .penna-render h2{counter-reset:heading-h3 heading-h4 heading-h5 heading-h6;font-family:var(--latex-font-heiti),var(--latex-font-serif);font-size:1.5em}.penna-theme-latex .penna-render h2:before{content:counter(heading-h2);counter-increment:heading-h2;margin-right:1.2em}.penna-theme-latex .penna-render h3{counter-reset:heading-h4 heading-h5 heading-h6;font-family:var(--latex-font-heiti),var(--latex-font-serif);font-size:1.25em;line-height:1.25em}.penna-theme-latex .penna-render h3:before{content:counter(heading-h2) "." counter(heading-h3);counter-increment:heading-h3;margin-right:1.2em}.penna-theme-latex .penna-render h4{counter-reset:heading-h5 heading-h6;font-family:var(--latex-font-kai),var(--latex-font-serif);font-size:1.15em;line-height:1.15em}.penna-theme-latex .penna-render h4:before{content:counter(heading-h2) "." counter(heading-h3) "." counter(heading-h4);counter-increment:heading-h4;margin-right:1.2em}.penna-theme-latex .penna-render h5{counter-reset:heading-h6;font-family:var(--latex-font-fangsong),var(--latex-font-serif);font-size:1.1em;line-height:1.1em}.penna-theme-latex .penna-render h5:before{content:counter(heading-h2) "." counter(heading-h3) "." counter(heading-h4) "." counter(heading-h5);counter-increment:heading-h5;margin-right:1.2em}.penna-theme-latex .penna-render h6{font-family:var(--latex-font-fangsong),var(--latex-font-serif);font-size:1.05em;line-height:1.1em}.penna-theme-latex .penna-render h6:before{content:counter(heading-h2) "." counter(heading-h3) "." counter(heading-h4) "." counter(heading-h5) "." counter(heading-h6);counter-increment:heading-h6;margin-right:1.2em}.penna-theme-latex .penna-render :first-child{margin-top:0}.penna-theme-latex .penna-render p{margin:0 0 1em;text-align:left;line-height:var(--latex-text-leading)}.penna-theme-latex .penna-render strong{font-weight:var(--latex-strong-weight)}.penna-theme-latex .penna-render a{color:var(--penna-c-brand-1);text-decoration:none}.penna-theme-latex .penna-render a:hover{color:var(--penna-c-brand-2);text-decoration:underline}.penna-theme-latex .penna-render blockquote{margin:0 0 1em;padding:1em 2em 1em calc(2em - .25rem);border-left:.25rem solid var(--penna-c-blockquote-border);font-family:var(--latex-font-fangsong),var(--latex-font-serif);font-size:var(--latex-quote-size);font-style:normal;color:var(--penna-c-text-1)}.penna-theme-latex .penna-render blockquote blockquote{font-size:inherit;padding-right:0}.penna-theme-latex .penna-render hr{margin:0 0 1.8em;border:0;border-top:.0625rem solid var(--penna-c-hr-color)}.penna-theme-latex .penna-render ul{list-style:disc;margin:0;padding-inline-start:2em}.penna-theme-latex .penna-render ul ul{list-style:"–   "}.penna-theme-latex .penna-render ul ul ul{list-style:"◦  "}.penna-theme-latex .penna-render ol{list-style:decimal;margin:0;padding-inline-start:2em}.penna-theme-latex .penna-render ol ol{counter-reset:latex-ol-alpha;list-style:none}.penna-theme-latex .penna-render ol ol>li{counter-increment:latex-ol-alpha;position:relative}.penna-theme-latex .penna-render ol ol>li:before{content:"(" counter(latex-ol-alpha,lower-alpha) ")";position:absolute;left:-1.8em}.penna-theme-latex .penna-render ol ol ol{counter-reset:latex-ol-roman;list-style:none}.penna-theme-latex .penna-render ol ol ol>li{counter-increment:latex-ol-roman;position:relative}.penna-theme-latex .penna-render ol ol ol>li:before{content:counter(latex-ol-roman,lower-roman) ".";position:absolute;left:-4.5em;width:4em;text-align:right}.penna-theme-latex .penna-render ul:not(.task-list) li,.penna-theme-latex .penna-render ol:not(.task-list) li{position:relative;margin-block:.2em}.penna-theme-latex .penna-render :not(pre)>code{margin:0 .125rem;padding:0 .125rem;font-family:var(--latex-font-mono),var(--latex-font-ui),monospace;font-size:inherit;color:var(--penna-c-code-inline-fg);background:var(--penna-c-code-inline-bg);border:0;border-radius:.125rem;box-shadow:0 0 .0625rem .0625rem var(--latex-code-inline-shadow)}.penna-theme-latex .penna-render pre:not(.penna-code-block__pre){margin:0 0 1em;padding:.75rem .625rem;font-family:var(--latex-font-mono),var(--latex-font-ui),monospace;color:var(--penna-c-text-1);background:var(--penna-c-bg-elevated);border:.0625rem solid var(--penna-c-border-faint);border-radius:0;box-shadow:none}.penna-theme-latex .penna-render table{--penna-table-border: transparent;--penna-table-head-bg: transparent;--penna-table-row-bg: transparent;--penna-table-stripe-bg: transparent;display:table;width:100%;margin:0 0 1em;border-collapse:collapse;border-spacing:.375rem;border-top:1.2pt solid var(--penna-c-text-1);border-bottom:1.2pt solid var(--penna-c-text-1);font-family:var(--latex-font-serif);text-align:center}.penna-theme-latex .penna-render table th,.penna-theme-latex .penna-render table td{padding:.125rem .375rem;border:0}.penna-theme-latex .penna-render table thead{border-bottom:.5pt solid var(--penna-c-text-1)}.penna-theme-latex .penna-render table th{font-family:var(--latex-font-heiti),var(--latex-font-serif);font-weight:var(--latex-strong-weight)}.penna-theme-latex .penna-render img{break-inside:avoid-page}.penna-theme-latex .penna-render .penna-alert{margin:0 0 1em;padding:.625rem .875rem;border:.0625rem solid var(--alert-border);border-left-width:.25rem;border-radius:0;box-shadow:none;background:var(--alert-bg);font-size:var(--latex-quote-size)}.penna-theme-latex .penna-render .penna-code-block{--cb-radius: 0;--cb-border: var(--penna-c-border-faint);--cb-shadow: none;--cb-header-bg: var(--penna-c-bg-elevated);--cb-code-bg: var(--penna-c-bg-elevated);--cb-lang-fg: var(--penna-c-text-3);--cb-lang-bg: transparent;--cb-line-highlight: color-mix( in srgb, var(--penna-c-brand-1) 10%, transparent );margin:0 0 1em}.penna-theme-latex .penna-render .penna-code-block__panel{box-shadow:none}.penna-theme-latex .penna-render .penna-code-block__header{min-height:1.75rem;padding:.25rem .625rem;border-bottom:.0625rem solid var(--cb-border)}.penna-theme-latex .penna-render .penna-code-block__lang{padding:0;font-family:var(--latex-font-ui),var(--latex-font-serif);font-size:.95em;font-weight:400;letter-spacing:0;text-transform:none;text-align:center;background:transparent;border-radius:0}.penna-theme-latex .penna-render .penna-code-block .hljs{background:var(--penna-c-hljs-bg);color:var(--penna-c-text-1)}.penna-theme-latex .penna-render .penna-code-block .hljs-comment,.penna-theme-latex .penna-render .penna-code-block .hljs-quote{color:var(--penna-c-hljs-comment);font-style:italic}.penna-theme-latex .penna-render .penna-code-block .hljs-keyword,.penna-theme-latex .penna-render .penna-code-block .hljs-selector-tag,.penna-theme-latex .penna-render .penna-code-block .hljs-built_in,.penna-theme-latex .penna-render .penna-code-block .hljs-name{color:var(--penna-c-hljs-keyword)}.penna-theme-latex .penna-render .penna-code-block .hljs-string,.penna-theme-latex .penna-render .penna-code-block .hljs-regexp,.penna-theme-latex .penna-render .penna-code-block .hljs-addition{color:var(--penna-c-hljs-string)}.penna-theme-latex .penna-render .penna-code-block .hljs-number,.penna-theme-latex .penna-render .penna-code-block .hljs-literal{color:var(--penna-c-hljs-number)}.penna-theme-latex .penna-render .penna-code-block .hljs-title,.penna-theme-latex .penna-render .penna-code-block .hljs-title.class_,.penna-theme-latex .penna-render .penna-code-block .hljs-type{color:var(--penna-c-hljs-title)}.penna-theme-latex .penna-render .penna-code-block .hljs-attr,.penna-theme-latex .penna-render .penna-code-block .hljs-attribute,.penna-theme-latex .penna-render .penna-code-block .hljs-variable,.penna-theme-latex .penna-render .penna-code-block .hljs-template-variable{color:var(--penna-c-hljs-attr)}.penna-theme-latex .penna-render .penna-code-block .hljs-meta,.penna-theme-latex .penna-render .penna-code-block .hljs-meta .hljs-keyword{color:var(--penna-c-text-3)}.penna-theme-latex .penna-render .penna-code-block .hljs-function .hljs-title,.penna-theme-latex .penna-render .penna-code-block .hljs-section{color:var(--penna-c-hljs-title)}.penna-theme-latex .penna-render .penna-card,.penna-theme-latex .penna-render .penna-image-card,.penna-theme-latex .penna-render .penna-link-card,.penna-theme-latex .penna-render .penna-repo-card,.penna-theme-latex .penna-render .penna-tabs,.penna-theme-latex .penna-render .penna-collapse{border:.0625rem solid var(--penna-c-border-faint);border-radius:0;background:var(--penna-c-bg);box-shadow:none}.penna-theme-latex .penna-render .penna-image-card__media,.penna-theme-latex .penna-render .penna-audio,.penna-theme-latex .penna-render .penna-video,.penna-theme-latex .penna-render .penna-media__player,.penna-theme-latex .penna-render .penna-iframe,.penna-theme-latex .penna-render .penna-iframe__frame,.penna-theme-latex .penna-render .penna-badge,.penna-theme-latex .penna-render .penna-field,.penna-theme-latex .penna-render .penna-field-group,.penna-theme-latex .penna-render .penna-card-masonry__item{border-radius:0}.penna-theme-latex .penna-render .penna-card-masonry [class^=penna-card-masonry__v-] img{border-radius:.125rem}.penna-theme-latex .penna-render sup.penna-footnote-ref{margin-inline:-.44em;font-weight:inherit;background:transparent}.penna-theme-latex .penna-render sup.penna-footnote-ref:before{content:"［"}.penna-theme-latex .penna-render sup.penna-footnote-ref:after{content:"］"}.penna-theme-latex .penna-render sup.penna-footnote-ref a{color:inherit;text-decoration:none}.penna-theme-latex .penna-render sup.penna-footnote-ref a:hover{color:var(--penna-c-brand-1)}.penna-dark.penna-theme-latex .penna-render{--latex-font-serif: "Latin Modern Roman", "Latin Modern Roman 10", "Times New Roman", "Noto Serif CJK SC", "Songti SC", "STSong", "SimSun", serif;--latex-font-heiti: "STHeiti", "SimHei", "PingFang SC", "Noto Sans CJK SC", sans-serif;--latex-font-kai: "STKaiti", "KaiTi", "FZDocKai", "Noto Serif CJK SC", serif;--latex-font-fangsong: "STFangsong", "FangSong", "Noto Serif CJK SC", serif;--latex-font-mono: "Latin Modern Mono", "Latin Modern Mono 10", Consolas, "Courier New", monospace;--latex-font-ui: "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif;--latex-text-size: 9.5pt;--latex-text-leading: 1.618em;--latex-strong-weight: 900;--latex-quote-size: 1.05em;--penna-c-brand-1: #8bb1f9;--penna-c-brand-2: color-mix(in srgb, #8bb1f9 88%, #fff);--penna-c-brand-3: #8bb1f9;--penna-c-brand-soft: rgba(139, 177, 249, .14);--penna-c-brand-on-bg: #dcdcdc;--penna-c-text-1: #dcdcdc;--penna-c-text-2: color-mix(in srgb, #dcdcdc 78%, #888);--penna-c-text-3: #989898;--penna-c-bg: #1e1e1e;--penna-c-bg-elevated: #1f1e1e;--penna-c-contrast-light: #fff;--penna-c-contrast-dark: #000;--penna-c-brand-mark: color-mix( in srgb, #ffea7f 65%, #1e1e1e );--penna-c-code-fg: #8bb1f9;--penna-c-border-soft: #888888;--penna-c-border-faint: color-mix(in srgb, #888888 55%, transparent);--latex-code-inline-shadow: #141414;--penna-c-hljs-keyword: #c792ea;--penna-c-hljs-string: #c3e88d;--penna-c-hljs-number: #f77669;--penna-c-hljs-title: #82b1ff;--penna-c-hljs-attr: #80cbc4;--penna-c-hljs-comment: #546e7a;--penna-c-hljs-bg: transparent;--penna-c-note: #8bb1f9;--penna-c-note-mark: color-mix( in srgb, #58a6ff 65%, #1e1e1e );--penna-c-note-on-bg: color-mix( in srgb, #8bb1f9 16%, #000 );--penna-c-alert-note-text: #8bb1f9;--penna-c-alert-note-bg: color-mix( in srgb, #8bb1f9 12%, transparent );--penna-c-alert-note-border: color-mix( in srgb, #8bb1f9 26%, transparent );--penna-c-tip: #8fa896;--penna-c-tip-mark: color-mix( in srgb, #3fb950 65%, #1e1e1e );--penna-c-tip-on-bg: color-mix( in srgb, #8fa896 16%, #000 );--penna-c-alert-tip-text: #8fa896;--penna-c-alert-tip-bg: color-mix( in srgb, #8fa896 12%, transparent );--penna-c-alert-tip-border: color-mix( in srgb, #8fa896 26%, transparent );--penna-c-warning: #d4a15e;--penna-c-warning-mark: color-mix( in srgb, #d29922 65%, #1e1e1e );--penna-c-warning-on-bg: color-mix( in srgb, #d4a15e 16%, #000 );--penna-c-alert-warning-text: #d4a15e;--penna-c-alert-warning-bg: color-mix( in srgb, #d4a15e 12%, transparent );--penna-c-alert-warning-border: color-mix( in srgb, #d4a15e 26%, transparent );--penna-c-caution: #e89888;--penna-c-caution-mark: color-mix( in srgb, #f85149 65%, #1e1e1e );--penna-c-caution-on-bg: color-mix( in srgb, #e89888 16%, #000 );--penna-c-alert-caution-text: #e89888;--penna-c-alert-caution-bg: color-mix( in srgb, #e89888 12%, transparent );--penna-c-alert-caution-border: color-mix( in srgb, #e89888 26%, transparent );--penna-c-danger: #e89888;--penna-c-danger-mark: color-mix( in srgb, #f85149 65%, #1e1e1e );--penna-c-danger-on-bg: color-mix( in srgb, #e89888 16%, #000 );--penna-c-alert-danger-text: #e89888;--penna-c-alert-danger-bg: color-mix( in srgb, #e89888 12%, transparent );--penna-c-alert-danger-border: color-mix( in srgb, #e89888 26%, transparent );--penna-c-important: #b69acd;--penna-c-important-mark: color-mix( in srgb, #bc8cff 65%, #1e1e1e );--penna-c-important-on-bg: color-mix( in srgb, #b69acd 16%, #000 );--penna-c-alert-important-text: #b69acd;--penna-c-alert-important-bg: color-mix( in srgb, #b69acd 12%, transparent );--penna-c-alert-important-border: color-mix( in srgb, #b69acd 26%, transparent );--penna-c-image-card-info-fg: var(--penna-c-contrast-light);--penna-c-image-card-scrim: var(--penna-c-contrast-dark);--penna-c-image-card-info-bg: linear-gradient( 180deg, transparent 0%, color-mix(in srgb, var(--penna-c-image-card-scrim) 36%, transparent) 55%, color-mix(in srgb, var(--penna-c-image-card-scrim) 58%, transparent) 100% );--penna-c-image-card-info-bg-hover: linear-gradient( 180deg, transparent 0%, color-mix(in srgb, var(--penna-c-image-card-scrim) 46%, transparent) 35%, color-mix(in srgb, var(--penna-c-image-card-scrim) 68%, transparent) 100% );--penna-c-media-player-bg: var(--penna-c-bg-elevated);--penna-c-media-shade: var(--penna-c-bg);--penna-c-on-brand: #fff;--penna-c-code-inline-bg: #161616;--penna-c-code-inline-fg: #8bb1f9;--penna-c-code-inline-border: transparent;--penna-c-code-block-header-bg: #1f1e1e;--penna-c-code-block-code-bg: #1f1e1e;--penna-c-code-block-shadow: none;--penna-c-table-th-border: var(--penna-c-text-1);--penna-c-table-td-border: transparent;--penna-c-hr-color: #888888;--penna-c-blockquote-border: hsl(0, 0%, 70%)}.penna-theme-vue .penna-render{--vue-font-sans: "Ubuntu", "Source Sans Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--vue-font-mono: "Fira Code", "Roboto Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--vue-text-size: 1rem;--vue-text-leading: 1.6rem;--vue-heading-leading: 1.4;--penna-c-brand-1: #42b983;--penna-c-brand-2: #33a06f;--penna-c-brand-3: #b4654d;--penna-c-brand-soft: rgba(66, 185, 131, .1);--penna-c-brand-on-bg: #fff;--penna-c-text-1: #34495e;--penna-c-text-2: #777777;--penna-c-text-3: #999999;--penna-c-bg: #ffffff;--penna-c-bg-elevated: #f8f8f8;--penna-c-contrast-light: #fff;--penna-c-contrast-dark: #000;--penna-c-brand-mark: #42b983;--penna-c-code-fg: #e96900;--penna-c-border-soft: #dfe2e5;--penna-c-border-faint: color-mix(in srgb, #dfe2e5 45%, transparent);--vue-h2-rule: #dddddd;--vue-code-block-border: #f4f4f4;--penna-c-table-head-bg: #f2f2f2;--penna-c-table-stripe-bg: #fafafa;--penna-c-hljs-keyword: #bb7fc3;--penna-c-hljs-string: #22a2c9;--penna-c-hljs-number: #88b2a1;--penna-c-hljs-title: #7f7fff;--penna-c-hljs-attr: var(--penna-c-text-1);--penna-c-hljs-comment: var(--penna-c-text-3);--penna-c-hljs-bg: transparent;--penna-c-note: #22a2c9;--penna-c-note-mark: #ff0;--penna-c-note-on-bg: color-mix( in srgb, #22a2c9 16%, #fff );--penna-c-alert-note-text: #22a2c9;--penna-c-alert-note-bg: color-mix( in srgb, #22a2c9 10%, transparent );--penna-c-alert-note-border: color-mix( in srgb, #22a2c9 22%, transparent );--penna-c-tip: #42b983;--penna-c-tip-mark: #39ff14;--penna-c-tip-on-bg: color-mix( in srgb, #42b983 16%, #fff );--penna-c-alert-tip-text: #42b983;--penna-c-alert-tip-bg: color-mix( in srgb, #42b983 10%, transparent );--penna-c-alert-tip-border: color-mix( in srgb, #42b983 22%, transparent );--penna-c-warning: #e96900;--penna-c-warning-mark: #fc0;--penna-c-warning-on-bg: color-mix( in srgb, #e96900 16%, #fff );--penna-c-alert-warning-text: #e96900;--penna-c-alert-warning-bg: color-mix( in srgb, #e96900 10%, transparent );--penna-c-alert-warning-border: color-mix( in srgb, #e96900 22%, transparent );--penna-c-caution: #b4654d;--penna-c-caution-mark: #f99;--penna-c-caution-on-bg: color-mix( in srgb, #b4654d 16%, #fff );--penna-c-alert-caution-text: #b4654d;--penna-c-alert-caution-bg: color-mix( in srgb, #b4654d 10%, transparent );--penna-c-alert-caution-border: color-mix( in srgb, #b4654d 22%, transparent );--penna-c-danger: #b4654d;--penna-c-danger-mark: #f66;--penna-c-danger-on-bg: color-mix( in srgb, #b4654d 16%, #fff );--penna-c-alert-danger-text: #b4654d;--penna-c-alert-danger-bg: color-mix( in srgb, #b4654d 10%, transparent );--penna-c-alert-danger-border: color-mix( in srgb, #b4654d 22%, transparent );--penna-c-important: #34495e;--penna-c-important-mark: #ccf;--penna-c-important-on-bg: color-mix( in srgb, #34495e 16%, #fff );--penna-c-alert-important-text: #34495e;--penna-c-alert-important-bg: color-mix( in srgb, #34495e 10%, transparent );--penna-c-alert-important-border: color-mix( in srgb, #34495e 22%, transparent );--penna-c-image-card-info-fg: var(--penna-c-contrast-light);--penna-c-image-card-scrim: var(--penna-c-contrast-dark);--penna-c-image-card-info-bg: linear-gradient( 180deg, transparent 0%, color-mix(in srgb, var(--penna-c-image-card-scrim) 36%, transparent) 55%, color-mix(in srgb, var(--penna-c-image-card-scrim) 58%, transparent) 100% );--penna-c-image-card-info-bg-hover: linear-gradient( 180deg, transparent 0%, color-mix(in srgb, var(--penna-c-image-card-scrim) 46%, transparent) 35%, color-mix(in srgb, var(--penna-c-image-card-scrim) 68%, transparent) 100% );--penna-c-media-player-bg: var(--penna-c-bg-elevated);--penna-c-media-shade: var(--penna-c-bg);--penna-c-on-brand: #fff;--penna-c-code-inline-bg: #f8f8f8;--penna-c-code-inline-fg: #e96900;--penna-c-code-inline-border: transparent;--penna-c-code-block-header-bg: #f8f8f8;--penna-c-code-block-code-bg: #f8f8f8;--penna-c-code-block-shadow: none;--penna-c-table-th-border: #dfe2e5;--penna-c-table-td-border: color-mix(in srgb, #dfe2e5 55%, transparent);--penna-c-hr-color: #e7e7e7;--penna-c-blockquote-border: #42b983;box-sizing:border-box;max-width:53.75rem;margin-inline:auto;padding:1.25rem 1.875rem 6.25rem;background-color:var(--penna-c-bg);color:var(--penna-c-text-1);font-family:var(--vue-font-sans);font-size:var(--vue-text-size);line-height:var(--vue-text-leading);letter-spacing:0;word-spacing:.05rem;-webkit-font-smoothing:antialiased}.penna-theme-vue .penna-render h1,.penna-theme-vue .penna-render h2,.penna-theme-vue .penna-render h3,.penna-theme-vue .penna-render h4,.penna-theme-vue .penna-render h5,.penna-theme-vue .penna-render h6{position:relative;margin:0 0 1rem;padding:0;border:0;font-weight:700;line-height:var(--vue-heading-leading);color:var(--penna-c-text-1)}.penna-theme-vue .penna-render h1{padding-bottom:.375rem;font-size:2.1875rem;line-height:1.3}.penna-theme-vue .penna-render h2{margin:0 0 .9375rem;padding-bottom:.5em;font-size:1.75rem;line-height:1.225;border-bottom:.0625rem solid var(--vue-h2-rule)}.penna-theme-vue .penna-render h2 a{color:var(--penna-c-text-1);font-weight:700}.penna-theme-vue .penna-render h3{margin:0 0 .4375rem;font-size:1.375rem;line-height:1.43}.penna-theme-vue .penna-render h3 a{color:var(--penna-c-text-1);font-weight:700}.penna-theme-vue .penna-render h4{font-size:1.1875rem}.penna-theme-vue .penna-render h5{font-size:1rem}.penna-theme-vue .penna-render h6{font-size:1rem;color:var(--penna-c-text-2)}.penna-theme-vue .penna-render :first-child{margin-top:0}.penna-theme-vue .penna-render p{margin:0 0 .8em;line-height:var(--vue-text-leading)}.penna-theme-vue .penna-render strong{padding:0 .0625rem;font-weight:700}.penna-theme-vue .penna-render em{padding:0 .3125rem 0 .125rem}.penna-theme-vue .penna-render a{color:var(--penna-c-brand-1);font-weight:600;padding:0 .125rem;text-decoration:none}.penna-theme-vue .penna-render a:hover{color:var(--penna-c-brand-2);text-decoration:underline}.penna-theme-vue .penna-render blockquote{margin:0 0 .8em;padding:1rem .9375rem;border-left:.25rem solid var(--penna-c-blockquote-border);color:var(--penna-c-text-2);background:#42b9831a;font-style:normal}.penna-theme-vue .penna-render hr{height:.125rem;margin:0 0 1rem;padding:0;border:0;background-color:var(--penna-c-hr-color);overflow:hidden}.penna-theme-vue .penna-render ul,.penna-theme-vue .penna-render ol{margin:0 0 .8em;padding-left:1.875rem}.penna-theme-vue .penna-render ol li{padding-left:.5rem}.penna-theme-vue .penna-render li>ul,.penna-theme-vue .penna-render li>ol{margin:0}.penna-theme-vue .penna-render :not(pre)>code{margin:0 .125rem;padding:.125rem .25rem;font-family:var(--vue-font-mono);font-size:.92em;color:var(--penna-c-code-inline-fg);background:var(--penna-c-code-inline-bg);border:0;border-radius:.125rem}.penna-theme-vue .penna-render pre:not(.penna-code-block__pre){margin:0 0 .8em;padding:.75rem;font-family:var(--vue-font-mono);font-size:.85em;color:var(--penna-c-text-1);background:var(--penna-c-bg-elevated);border:.0625rem solid var(--vue-code-block-border);border-radius:.125rem;box-shadow:none}.penna-theme-vue .penna-render table{--penna-table-border: var(--penna-c-table-td-border);--penna-table-head-bg: var(--penna-c-table-head-bg);--penna-table-row-bg: transparent;--penna-table-stripe-bg: var(--penna-c-table-stripe-bg);margin:0 0 .8em;word-break:initial}.penna-theme-vue .penna-render table th,.penna-theme-vue .penna-render table td{padding:.375rem .8125rem;border:.0625rem solid var(--penna-c-table-td-border);text-align:left}.penna-theme-vue .penna-render table th{font-weight:700;border-bottom:0;background:var(--penna-table-head-bg)}.penna-theme-vue .penna-render table tbody tr{border-top:.0625rem solid var(--penna-c-table-td-border)}.penna-theme-vue .penna-render table tbody tr:nth-child(2n){background:var(--penna-table-stripe-bg)}.penna-theme-vue .penna-render img{border-radius:.1875rem}.penna-theme-vue .penna-render .penna-alert{margin:0 0 .8em;padding:.625rem .9375rem;border:.0625rem solid var(--alert-border);border-left-width:.25rem;border-radius:.125rem;box-shadow:none;background:var(--alert-bg);font-size:.875rem}.penna-theme-vue .penna-render .penna-code-block{--cb-radius: .125rem;--cb-border: var(--vue-code-block-border);--cb-shadow: none;--cb-header-bg: var(--penna-c-bg-elevated);--cb-code-bg: var(--penna-c-bg-elevated);--cb-lang-fg: var(--penna-c-brand-3);--cb-lang-bg: transparent;--cb-line-highlight: color-mix( in srgb, var(--penna-c-brand-1) 12%, transparent );margin:0 0 .8rem}.penna-theme-vue .penna-render .penna-code-block__panel{border-color:var(--vue-code-block-border);box-shadow:none}.penna-theme-vue .penna-render .penna-code-block__header{min-height:1.75rem;padding:.25rem .75rem;border-bottom:.0625rem solid var(--vue-code-block-border)}.penna-theme-vue .penna-render .penna-code-block__lang{padding:0;font-family:var(--vue-font-mono);font-size:.85em;font-weight:600;letter-spacing:0;text-transform:none;background:transparent;border-radius:0}.penna-theme-vue .penna-render .penna-code-block .hljs{background:var(--penna-c-hljs-bg);color:var(--penna-c-text-1)}.penna-theme-vue .penna-render .penna-code-block .hljs-comment,.penna-theme-vue .penna-render .penna-code-block .hljs-quote{color:var(--penna-c-hljs-comment)}.penna-theme-vue .penna-render .penna-code-block .hljs-keyword,.penna-theme-vue .penna-render .penna-code-block .hljs-selector-tag,.penna-theme-vue .penna-render .penna-code-block .hljs-built_in,.penna-theme-vue .penna-render .penna-code-block .hljs-name{color:var(--penna-c-hljs-keyword)}.penna-theme-vue .penna-render .penna-code-block .hljs-string,.penna-theme-vue .penna-render .penna-code-block .hljs-regexp,.penna-theme-vue .penna-render .penna-code-block .hljs-addition{color:var(--penna-c-hljs-string)}.penna-theme-vue .penna-render .penna-code-block .hljs-number,.penna-theme-vue .penna-render .penna-code-block .hljs-literal{color:var(--penna-c-hljs-number)}.penna-theme-vue .penna-render .penna-code-block .hljs-title,.penna-theme-vue .penna-render .penna-code-block .hljs-title.class_,.penna-theme-vue .penna-render .penna-code-block .hljs-type{color:var(--penna-c-hljs-title)}.penna-theme-vue .penna-render .penna-code-block .hljs-attr,.penna-theme-vue .penna-render .penna-code-block .hljs-attribute,.penna-theme-vue .penna-render .penna-code-block .hljs-variable,.penna-theme-vue .penna-render .penna-code-block .hljs-template-variable{color:var(--penna-c-hljs-attr)}.penna-theme-vue .penna-render .penna-code-block .hljs-meta,.penna-theme-vue .penna-render .penna-code-block .hljs-meta .hljs-keyword{color:var(--penna-c-text-3)}.penna-theme-vue .penna-render .penna-code-block .hljs-function .hljs-title,.penna-theme-vue .penna-render .penna-code-block .hljs-section{color:var(--penna-c-hljs-title)}.penna-theme-vue .penna-render .penna-card,.penna-theme-vue .penna-render .penna-link-card,.penna-theme-vue .penna-render .penna-repo-card,.penna-theme-vue .penna-render .penna-tabs,.penna-theme-vue .penna-render .penna-collapse{border:.0625rem solid var(--penna-c-border-faint);border-radius:.125rem;background:var(--penna-c-bg);box-shadow:none}.penna-theme-vue .penna-render .penna-link-card:hover{border-color:var(--penna-c-brand-1);box-shadow:none}.penna-theme-vue .penna-render .task-list .task-item.done .marker{--marker-color: var(--penna-c-brand-1)}.penna-theme-vue .penna-render sup.penna-footnote-ref a{color:var(--penna-c-code-inline-fg);font-weight:600;text-decoration:none}.penna-theme-vue .penna-render sup.penna-footnote-ref a:hover{color:var(--penna-c-brand-1)}.penna-dark.penna-theme-vue .penna-render{--vue-font-sans: "Ubuntu", "Source Sans Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--vue-font-mono: "Fira Code", "Roboto Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--vue-text-size: 1rem;--vue-text-leading: 1.6rem;--vue-heading-leading: 1.4;--penna-c-brand-1: #42b983;--penna-c-brand-2: color-mix(in srgb, #42b983 85%, #fff);--penna-c-brand-3: #f3b37f;--penna-c-brand-soft: rgba(66, 185, 131, .16);--penna-c-brand-on-bg: #eeeeee;--penna-c-text-1: #eeeeee;--penna-c-text-2: hsl(0, 0%, 53%);--penna-c-text-3: #aaaaaa;--penna-c-bg: #1f1f1f;--penna-c-bg-elevated: hsl(0, 0%, 10%);--penna-c-contrast-light: #fff;--penna-c-contrast-dark: #000;--penna-c-brand-mark: color-mix(in srgb, #42b983 60%, transparent);--penna-c-code-fg: #f3b37f;--penna-c-border-soft: hsl(0, 0%, 11%);--penna-c-border-faint: color-mix(in srgb, hsl(0, 0%, 11%) 45%, transparent);--vue-h2-rule: hsl(0, 0%, 20%);--vue-code-block-border: hsl(0, 0%, 11%);--penna-c-table-head-bg: hsl(0, 0%, 9%);--penna-c-table-stripe-bg: hsl(0, 0%, 10%);--penna-c-hljs-keyword: #bb7fc3;--penna-c-hljs-string: #d48888;--penna-c-hljs-number: #88b2a1;--penna-c-hljs-title: #7f7fff;--penna-c-hljs-attr: #efefef;--penna-c-hljs-comment: hsl(0, 0%, 35%);--penna-c-hljs-bg: transparent;--penna-c-note: #7f7fe5;--penna-c-note-mark: color-mix( in srgb, #db0 50%, #1f1f1f );--penna-c-note-on-bg: color-mix( in srgb, #7f7fe5 16%, #000 );--penna-c-alert-note-text: #7f7fe5;--penna-c-alert-note-bg: color-mix( in srgb, #7f7fe5 12%, transparent );--penna-c-alert-note-border: color-mix( in srgb, #7f7fe5 26%, transparent );--penna-c-tip: #42b983;--penna-c-tip-mark: color-mix( in srgb, #4ade80 50%, #1f1f1f );--penna-c-tip-on-bg: color-mix( in srgb, #42b983 16%, #000 );--penna-c-alert-tip-text: #42b983;--penna-c-alert-tip-bg: color-mix( in srgb, #42b983 12%, transparent );--penna-c-alert-tip-border: color-mix( in srgb, #42b983 26%, transparent );--penna-c-warning: #f3b37f;--penna-c-warning-mark: color-mix( in srgb, #fbbf24 50%, #1f1f1f );--penna-c-warning-on-bg: color-mix( in srgb, #f3b37f 16%, #000 );--penna-c-alert-warning-text: #f3b37f;--penna-c-alert-warning-bg: color-mix( in srgb, #f3b37f 12%, transparent );--penna-c-alert-warning-border: color-mix( in srgb, #f3b37f 26%, transparent );--penna-c-caution: #cb8c8c;--penna-c-caution-mark: color-mix( in srgb, #fca5a5 50%, #1f1f1f );--penna-c-caution-on-bg: color-mix( in srgb, #cb8c8c 16%, #000 );--penna-c-alert-caution-text: #cb8c8c;--penna-c-alert-caution-bg: color-mix( in srgb, #cb8c8c 12%, transparent );--penna-c-alert-caution-border: color-mix( in srgb, #cb8c8c 26%, transparent );--penna-c-danger: #cb8c8c;--penna-c-danger-mark: color-mix( in srgb, #f87171 50%, #1f1f1f );--penna-c-danger-on-bg: color-mix( in srgb, #cb8c8c 16%, #000 );--penna-c-alert-danger-text: #cb8c8c;--penna-c-alert-danger-bg: color-mix( in srgb, #cb8c8c 12%, transparent );--penna-c-alert-danger-border: color-mix( in srgb, #cb8c8c 26%, transparent );--penna-c-important: #9088cc;--penna-c-important-mark: color-mix( in srgb, #a5b4fc 50%, #1f1f1f );--penna-c-important-on-bg: color-mix( in srgb, #9088cc 16%, #000 );--penna-c-alert-important-text: #9088cc;--penna-c-alert-important-bg: color-mix( in srgb, #9088cc 12%, transparent );--penna-c-alert-important-border: color-mix( in srgb, #9088cc 26%, transparent );--penna-c-image-card-info-fg: var(--penna-c-contrast-light);--penna-c-image-card-scrim: var(--penna-c-contrast-dark);--penna-c-image-card-info-bg: linear-gradient( 180deg, transparent 0%, color-mix(in srgb, var(--penna-c-image-card-scrim) 36%, transparent) 55%, color-mix(in srgb, var(--penna-c-image-card-scrim) 58%, transparent) 100% );--penna-c-image-card-info-bg-hover: linear-gradient( 180deg, transparent 0%, color-mix(in srgb, var(--penna-c-image-card-scrim) 46%, transparent) 35%, color-mix(in srgb, var(--penna-c-image-card-scrim) 68%, transparent) 100% );--penna-c-media-player-bg: var(--penna-c-bg-elevated);--penna-c-media-shade: var(--penna-c-bg);--penna-c-on-brand: #fff;--penna-c-code-inline-bg: hsla(0, 0%, 0%, .2);--penna-c-code-inline-fg: #f3b37f;--penna-c-code-inline-border: transparent;--penna-c-code-block-header-bg: hsl(0, 0%, 10%);--penna-c-code-block-code-bg: hsl(0, 0%, 10%);--penna-c-code-block-shadow: none;--penna-c-table-th-border: hsl(0, 0%, 11%);--penna-c-table-td-border: color-mix(in srgb, hsl(0, 0%, 11%) 55%, transparent);--penna-c-hr-color: hsl(0, 0%, 18%);--penna-c-blockquote-border: #42b983}.penna-theme-notion .penna-render{--notion-font-sans: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, "Apple Color Emoji", Arial, sans-serif, "Segoe UI Emoji", "Segoe UI Symbol";--notion-font-mono: ui-monospace, "SF Mono Medium", "Fira Code", Cousine, Consolas, SFMono-Regular, Menlo, monospace;--notion-text-size: .875rem;--notion-text-leading: 1.5;--notion-heading-leading: 1.3;--notion-radius: 0;--notion-radius-tag: 4px;--notion-radius-pill: 9999px;--notion-radius-link: 16px;--notion-hover-bg: rgba(0, 0, 0, .03);--penna-c-brand-1: #2783de;--penna-c-brand-2: color-mix(in srgb, #2783de 85%, #000);--penna-c-brand-3: #2c2c2b;--penna-c-brand-soft: rgba(39, 131, 222, .12);--penna-c-brand-on-bg: #fff;--penna-c-text-1: #2c2c2b;--penna-c-text-2: #5f5e59;--penna-c-text-3: #8e8b85;--penna-c-bg: #ffffff;--penna-c-bg-elevated: #ffffff;--penna-c-contrast-light: #fff;--penna-c-contrast-dark: #000;--penna-c-brand-mark: #feecc8;--penna-c-code-fg: #2c2c2b;--penna-c-border-soft: #ebebea;--penna-c-border-faint: color-mix(in srgb, #ebebea 45%, transparent);--notion-heading-color: #2c2c2b;--notion-link-fg: #2783de;--notion-link-underline: color-mix(in srgb, #2783de 35%, transparent);--notion-mark-fg: #2c2c2b;--notion-mark-bg: #feecc8;--notion-table-a: #fafafa;--notion-table-b: #ffffff;--notion-footnote-bg: #8e8b85;--notion-footnote-fg: #ffffff;--penna-c-hljs-comment: #708090;--penna-c-hljs-keyword: #0277aa;--penna-c-hljs-string: #669900;--penna-c-hljs-number: #990055;--penna-c-hljs-title: #dc4a68;--penna-c-hljs-attr: #37352f;--penna-c-hljs-name: #ff5a5a;--penna-c-hljs-operator: #9a6e3b;--penna-c-note: #2783de;--penna-c-note-mark: #cce5ff;--penna-c-note-on-bg: color-mix( in srgb, #2783de 16%, #fff );--penna-c-alert-note-text: #2783de;--penna-c-alert-note-bg: color-mix( in srgb, #2783de 10%, transparent );--penna-c-alert-note-border: color-mix( in srgb, #2783de 22%, transparent );--penna-c-tip: #46a171;--penna-c-tip-mark: #d3f0df;--penna-c-tip-on-bg: color-mix( in srgb, #46a171 16%, #fff );--penna-c-alert-tip-text: #46a171;--penna-c-alert-tip-bg: color-mix( in srgb, #46a171 10%, transparent );--penna-c-alert-tip-border: color-mix( in srgb, #46a171 22%, transparent );--penna-c-warning: #d44c47;--penna-c-warning-mark: #ffd6d4;--penna-c-warning-on-bg: color-mix( in srgb, #d44c47 16%, #fff );--penna-c-alert-warning-text: #d44c47;--penna-c-alert-warning-bg: color-mix( in srgb, #d44c47 10%, transparent );--penna-c-alert-warning-border: color-mix( in srgb, #d44c47 22%, transparent );--penna-c-caution: #9a6e3a;--penna-c-caution-mark: #fff3d6;--penna-c-caution-on-bg: color-mix( in srgb, #9a6e3a 16%, #fff );--penna-c-alert-caution-text: #9a6e3a;--penna-c-alert-caution-bg: color-mix( in srgb, #9a6e3a 10%, transparent );--penna-c-alert-caution-border: color-mix( in srgb, #9a6e3a 22%, transparent );--penna-c-danger: #d44c47;--penna-c-danger-mark: #ffd6d4;--penna-c-danger-on-bg: color-mix( in srgb, #d44c47 16%, #fff );--penna-c-alert-danger-text: #d44c47;--penna-c-alert-danger-bg: color-mix( in srgb, #d44c47 10%, transparent );--penna-c-alert-danger-border: color-mix( in srgb, #d44c47 22%, transparent );--penna-c-important: #2c2c2b;--penna-c-important-mark: #e8e8e6;--penna-c-important-on-bg: color-mix( in srgb, #2c2c2b 16%, #fff );--penna-c-alert-important-text: #2c2c2b;--penna-c-alert-important-bg: color-mix( in srgb, #2c2c2b 10%, transparent );--penna-c-alert-important-border: color-mix( in srgb, #2c2c2b 22%, transparent );--penna-c-image-card-info-fg: var(--penna-c-contrast-light);--penna-c-image-card-scrim: var(--penna-c-contrast-dark);--penna-c-image-card-info-bg: linear-gradient( 180deg, transparent 0%, color-mix(in srgb, var(--penna-c-image-card-scrim) 36%, transparent) 55%, color-mix(in srgb, var(--penna-c-image-card-scrim) 58%, transparent) 100% );--penna-c-image-card-info-bg-hover: linear-gradient( 180deg, transparent 0%, color-mix(in srgb, var(--penna-c-image-card-scrim) 46%, transparent) 35%, color-mix(in srgb, var(--penna-c-image-card-scrim) 68%, transparent) 100% );--penna-c-media-player-bg: var(--penna-c-bg-elevated);--penna-c-media-shade: var(--penna-c-bg);--penna-c-on-brand: #fff;--penna-c-code-inline-bg: #f7f7f5;--penna-c-code-inline-fg: #2c2c2b;--penna-c-code-inline-border: transparent;--penna-c-code-block-header-bg: #f7f7f5;--penna-c-code-block-code-bg: #f7f7f5;--penna-c-code-block-shadow: none;--penna-c-table-th-border: #ebebea;--penna-c-table-td-border: color-mix(in srgb, #ebebea 55%, transparent);--penna-c-hr-color: #ebebea;--penna-c-blockquote-border: var(--penna-c-text-3);--notion-quote-bg: #f7f7f5;--notion-code-fg: #2c2c2b;box-sizing:border-box;max-width:53.75rem;margin-inline:auto;padding:1.5rem 2rem 5rem;background-color:var(--penna-c-bg);color:var(--penna-c-text-1);font-family:var(--notion-font-sans);font-size:var(--notion-text-size);font-weight:500;line-height:var(--notion-text-leading);-webkit-font-smoothing:antialiased}@media only screen and (min-width:1400px){.penna-theme-notion .penna-render{max-width:64rem}}@media only screen and (min-width:1800px){.penna-theme-notion .penna-render{max-width:75rem}}.penna-theme-notion .penna-render h1,.penna-theme-notion .penna-render h2,.penna-theme-notion .penna-render h3,.penna-theme-notion .penna-render h4,.penna-theme-notion .penna-render h5,.penna-theme-notion .penna-render h6{position:relative;margin:1.5rem 0 .5rem;padding:0;border:0;font-weight:700;line-height:var(--notion-heading-leading);color:var(--notion-heading-color)}.penna-theme-notion .penna-render h1{margin-top:0;font-size:2rem;line-height:1.25}.penna-theme-notion .penna-render h2{font-size:1.5rem;line-height:1.3}.penna-theme-notion .penna-render h3{font-size:1.25rem;line-height:1.35}.penna-theme-notion .penna-render h4{font-size:1rem;font-weight:600}.penna-theme-notion .penna-render h5{font-size:.875rem;font-weight:600;color:var(--penna-c-text-2)}.penna-theme-notion .penna-render h6{font-size:.75rem;font-weight:600;color:var(--penna-c-text-3)}.penna-theme-notion .penna-render :first-child{margin-top:0}.penna-theme-notion .penna-render p,.penna-theme-notion .penna-render blockquote,.penna-theme-notion .penna-render ul,.penna-theme-notion .penna-render ol,.penna-theme-notion .penna-render dl{margin:0 0 .5rem}.penna-theme-notion .penna-render a{color:var(--notion-link-fg);font-weight:inherit;text-decoration:none;border-bottom:.0625rem solid var(--notion-link-underline);transition:opacity .1s ease-in}.penna-theme-notion .penna-render a:hover{opacity:.85;text-decoration:none}.penna-theme-notion .penna-render blockquote{margin:0 0 .5rem;padding:1rem;border:0;border-left:.1875rem solid var(--penna-c-text-3);border-radius:var(--notion-radius);background:var(--notion-quote-bg);color:var(--penna-c-text-2);font-style:normal;font-weight:400}.penna-theme-notion .penna-render blockquote>:first-child{margin-top:0}.penna-theme-notion .penna-render blockquote>:last-child{margin-bottom:0}.penna-theme-notion .penna-render blockquote blockquote{margin-top:.5rem;padding-right:0;background:color-mix(in srgb,var(--penna-c-text-1) 3%,var(--notion-quote-bg))}.penna-theme-notion .penna-render hr{height:.0625rem;margin:1rem 0;padding:0;border:0;background-color:var(--penna-c-border-soft);overflow:hidden}.penna-theme-notion .penna-render ul,.penna-theme-notion .penna-render ol{padding-left:1.5rem}.penna-theme-notion .penna-render li>ul,.penna-theme-notion .penna-render li>ol{margin:0}.penna-theme-notion .penna-render :not(pre)>code{padding:.125rem .25rem;font-family:var(--notion-font-mono);font-size:.925em;font-weight:500;color:var(--penna-c-code-inline-fg);background:var(--penna-c-code-inline-bg);border:0;border-radius:var(--notion-radius-tag);box-decoration-break:clone}.penna-theme-notion .penna-render pre:not(.penna-code-block__pre){margin:.5rem 0;padding:.5rem .75rem;font-family:var(--notion-font-mono);font-size:.925em;font-weight:500;color:var(--notion-code-fg);background:var(--penna-c-code-block-code-bg);border:0;border-radius:var(--notion-radius);box-shadow:none}.penna-theme-notion .penna-render table{--penna-table-border: var(--penna-c-table-td-border);--penna-table-head-bg: var(--notion-table-a);--penna-table-row-bg: var(--notion-table-b);--penna-table-stripe-bg: var(--notion-table-a);margin:0 0 .5rem;padding:0;font-size:inherit;word-break:initial;border-collapse:collapse}.penna-theme-notion .penna-render table th,.penna-theme-notion .penna-render table td{padding:.375rem .8125rem;border:.0625rem solid var(--penna-c-border-soft);text-align:left}.penna-theme-notion .penna-render table thead th,.penna-theme-notion .penna-render table tr th{font-weight:700;border-bottom:0}.penna-theme-notion .penna-render table tbody tr{border-top:.0625rem solid var(--penna-c-border-soft)}.penna-theme-notion .penna-render table tbody tr:nth-child(odd){background:var(--notion-table-b)}.penna-theme-notion .penna-render table tbody tr:nth-child(2n){background:var(--notion-table-a)}.penna-theme-notion .penna-render img{border-radius:var(--notion-radius)}.penna-theme-notion .penna-render .penna-alert{margin:0 0 .5rem;padding:.5rem .75rem;border:.0625rem solid var(--alert-border);border-left-width:.1875rem;border-radius:var(--notion-radius-tag);box-shadow:none;background:var(--alert-bg);font-size:.875rem;font-weight:400}.penna-theme-notion .penna-render .penna-code-block{--cb-radius: var(--notion-radius);--cb-border: transparent;--cb-shadow: none;--cb-header-bg: var(--penna-c-code-block-header-bg);--cb-code-bg: var(--penna-c-code-block-code-bg);--cb-lang-fg: var(--penna-c-text-2);--cb-lang-bg: transparent;--cb-line-highlight: color-mix( in srgb, var(--penna-c-brand-1) 10%, transparent );margin:.5rem 0;color:var(--notion-code-fg)}.penna-theme-notion .penna-render .penna-code-block__panel{border:0;box-shadow:none}.penna-theme-notion .penna-render .penna-code-block__header{min-height:1.75rem;padding:.5rem .75rem .25rem;border-bottom:0}.penna-theme-notion .penna-render .penna-code-block__lang{padding:0;font-family:var(--notion-font-mono);font-size:.9em;font-weight:500;letter-spacing:0;text-transform:none;background:transparent;border-radius:0}.penna-theme-notion .penna-render .penna-code-block .hljs{background:transparent;color:var(--notion-code-fg)}.penna-theme-notion .penna-render .penna-code-block .hljs-comment{color:var(--penna-c-hljs-comment)}.penna-theme-notion .penna-render .penna-code-block .hljs-keyword,.penna-theme-notion .penna-render .penna-code-block .hljs-attribute{color:var(--penna-c-hljs-keyword)}.penna-theme-notion .penna-render .penna-code-block .hljs-string,.penna-theme-notion .penna-render .penna-code-block .hljs-regexp,.penna-theme-notion .penna-render .penna-code-block .hljs-built_in,.penna-theme-notion .penna-render .penna-code-block .hljs-variable-3{color:var(--penna-c-hljs-string)}.penna-theme-notion .penna-render .penna-code-block .hljs-number,.penna-theme-notion .penna-render .penna-code-block .hljs-literal{color:var(--penna-c-hljs-number)}.penna-theme-notion .penna-render .penna-code-block .hljs-title,.penna-theme-notion .penna-render .penna-code-block .hljs-type,.penna-theme-notion .penna-render .penna-code-block .hljs-def{color:var(--penna-c-hljs-title)}.penna-theme-notion .penna-render .penna-code-block .hljs-variable,.penna-theme-notion .penna-render .penna-code-block .hljs-attr,.penna-theme-notion .penna-render .penna-code-block .hljs-property,.penna-theme-notion .penna-render .penna-code-block .hljs-meta{color:var(--penna-c-hljs-attr)}.penna-theme-notion .penna-render .penna-code-block .hljs-tag,.penna-theme-notion .penna-render .penna-code-block .hljs-name{color:var(--penna-c-hljs-name)}.penna-theme-notion .penna-render .penna-code-block .hljs-operator{color:var(--penna-c-hljs-operator)}.penna-theme-notion .penna-render .penna-card,.penna-theme-notion .penna-render .penna-card.penna-link-card,.penna-theme-notion .penna-render .penna-repo-card,.penna-theme-notion .penna-render .penna-tabs,.penna-theme-notion .penna-render .penna-collapse{border:.0625rem solid var(--penna-c-border-soft);border-radius:var(--notion-radius-tag);background:var(--penna-c-bg);color:var(--penna-c-text-2);box-shadow:none}.penna-theme-notion .penna-render .penna-card,.penna-theme-notion .penna-render .penna-card.penna-link-card,.penna-theme-notion .penna-render .penna-repo-card{padding:1rem 1.25rem}.penna-theme-notion .penna-render .penna-card .penna-card__title,.penna-theme-notion .penna-render .penna-card.penna-link-card .penna-card__title,.penna-theme-notion .penna-render .penna-repo-card .penna-card__title{margin:0 0 .5rem;color:var(--penna-c-text-1);font-weight:600}.penna-theme-notion .penna-render .penna-card.penna-link-card{padding-right:2.75rem;color:var(--penna-c-text-2);text-decoration:none}.penna-theme-notion .penna-render .penna-card.penna-link-card a{color:inherit;border-bottom:0}.penna-theme-notion .penna-render .penna-card.penna-link-card:hover{background:var(--notion-hover-bg);border-color:var(--penna-c-border-soft);box-shadow:none;color:var(--penna-c-text-2)}.penna-theme-notion .penna-render .penna-card.penna-link-card:hover:after{background-color:var(--notion-link-fg)}.penna-theme-notion .penna-render .penna-repo-card a{color:var(--penna-c-text-1);border-bottom:0}.penna-theme-notion .penna-render .penna-repo-card a:hover{color:var(--notion-link-fg);opacity:1}.penna-theme-notion .penna-render .task-list .task-item.done .marker{--marker-color: var(--penna-c-brand-1)}.penna-theme-notion .penna-render sup.penna-footnote-ref{vertical-align:super;font-size:.75em;font-weight:400;line-height:0}.penna-theme-notion .penna-render sup.penna-footnote-ref a{padding:0;border:0;border-radius:0;background:transparent;color:var(--penna-c-text-2);font-size:inherit;font-weight:inherit;text-decoration:none;border-bottom:.0625rem solid var(--notion-link-underline)}.penna-theme-notion .penna-render sup.penna-footnote-ref a:hover{color:var(--notion-link-fg);opacity:1}.penna-dark.penna-theme-notion .penna-render{--notion-font-sans: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, "Apple Color Emoji", Arial, sans-serif, "Segoe UI Emoji", "Segoe UI Symbol";--notion-font-mono: ui-monospace, "SF Mono Medium", "Fira Code", Cousine, Consolas, SFMono-Regular, Menlo, monospace;--notion-text-size: .875rem;--notion-text-leading: 1.5;--notion-heading-leading: 1.3;--notion-radius: 0;--notion-radius-tag: 4px;--notion-radius-pill: 9999px;--notion-radius-link: 16px;--notion-hover-bg: rgba(0, 0, 0, .03);--penna-c-brand-1: #2783de;--penna-c-brand-2: color-mix(in srgb, #2783de 85%, #fff);--penna-c-brand-3: #ebebeb;--penna-c-brand-soft: rgba(39, 131, 222, .16);--penna-c-brand-on-bg: #ebebeb;--penna-c-text-1: #ebebeb;--penna-c-text-2: #9b9a97;--penna-c-text-3: #73726e;--penna-c-bg: #2f3437;--penna-c-bg-elevated: #3f4447;--penna-c-contrast-light: #fff;--penna-c-contrast-dark: #000;--penna-c-brand-mark: #4f4029;--penna-c-code-fg: #ecebeb;--penna-c-border-soft: #393c3f;--penna-c-border-faint: color-mix(in srgb, #393c3f 45%, transparent);--notion-heading-color: #ebebeb;--notion-link-fg: #2783de;--notion-link-underline: color-mix(in srgb, #2783de 45%, transparent);--notion-hover-bg: rgba(255, 255, 255, .06);--notion-mark-fg: #ffffff;--notion-mark-bg: #4f4029;--notion-table-a: #2f3437;--notion-table-b: #2f3437;--notion-footnote-bg: #393c3f;--notion-footnote-fg: #b1b3b4;--penna-c-hljs-comment: #998066;--penna-c-hljs-keyword: #d1949e;--penna-c-hljs-string: #bde052;--penna-c-hljs-number: #d1949e;--penna-c-hljs-title: #eceded;--penna-c-hljs-attr: #ebebeb;--penna-c-hljs-name: #d1949e;--penna-c-hljs-operator: #f5b83d;--penna-c-note: #2783de;--penna-c-note-mark: color-mix( in srgb, #1a3a5c 50%, #2f3437 );--penna-c-note-on-bg: color-mix( in srgb, #2783de 16%, #000 );--penna-c-alert-note-text: #2783de;--penna-c-alert-note-bg: color-mix( in srgb, #2783de 12%, transparent );--penna-c-alert-note-border: color-mix( in srgb, #2783de 26%, transparent );--penna-c-tip: #46a171;--penna-c-tip-mark: color-mix( in srgb, #1a3d2b 50%, #2f3437 );--penna-c-tip-on-bg: color-mix( in srgb, #46a171 16%, #000 );--penna-c-alert-tip-text: #46a171;--penna-c-alert-tip-bg: color-mix( in srgb, #46a171 12%, transparent );--penna-c-alert-tip-border: color-mix( in srgb, #46a171 26%, transparent );--penna-c-warning: #d1949e;--penna-c-warning-mark: color-mix( in srgb, #4a2020 50%, #2f3437 );--penna-c-warning-on-bg: color-mix( in srgb, #d1949e 16%, #000 );--penna-c-alert-warning-text: #d1949e;--penna-c-alert-warning-bg: color-mix( in srgb, #d1949e 12%, transparent );--penna-c-alert-warning-border: color-mix( in srgb, #d1949e 26%, transparent );--penna-c-caution: #998066;--penna-c-caution-mark: color-mix( in srgb, #3d3420 50%, #2f3437 );--penna-c-caution-on-bg: color-mix( in srgb, #998066 16%, #000 );--penna-c-alert-caution-text: #998066;--penna-c-alert-caution-bg: color-mix( in srgb, #998066 12%, transparent );--penna-c-alert-caution-border: color-mix( in srgb, #998066 26%, transparent );--penna-c-danger: #d1949e;--penna-c-danger-mark: color-mix( in srgb, #4a2020 50%, #2f3437 );--penna-c-danger-on-bg: color-mix( in srgb, #d1949e 16%, #000 );--penna-c-alert-danger-text: #d1949e;--penna-c-alert-danger-bg: color-mix( in srgb, #d1949e 12%, transparent );--penna-c-alert-danger-border: color-mix( in srgb, #d1949e 26%, transparent );--penna-c-important: #ebebeb;--penna-c-important-mark: color-mix( in srgb, #3f4447 50%, #2f3437 );--penna-c-important-on-bg: color-mix( in srgb, #ebebeb 16%, #000 );--penna-c-alert-important-text: #ebebeb;--penna-c-alert-important-bg: color-mix( in srgb, #ebebeb 12%, transparent );--penna-c-alert-important-border: color-mix( in srgb, #ebebeb 26%, transparent );--penna-c-image-card-info-fg: var(--penna-c-contrast-light);--penna-c-image-card-scrim: var(--penna-c-contrast-dark);--penna-c-image-card-info-bg: linear-gradient( 180deg, transparent 0%, color-mix(in srgb, var(--penna-c-image-card-scrim) 36%, transparent) 55%, color-mix(in srgb, var(--penna-c-image-card-scrim) 58%, transparent) 100% );--penna-c-image-card-info-bg-hover: linear-gradient( 180deg, transparent 0%, color-mix(in srgb, var(--penna-c-image-card-scrim) 46%, transparent) 35%, color-mix(in srgb, var(--penna-c-image-card-scrim) 68%, transparent) 100% );--penna-c-media-player-bg: var(--penna-c-bg-elevated);--penna-c-media-shade: var(--penna-c-bg);--penna-c-on-brand: #fff;--penna-c-code-inline-bg: #3f4447;--penna-c-code-inline-fg: #ebebeb;--penna-c-code-inline-border: transparent;--penna-c-code-block-header-bg: #3f4447;--penna-c-code-block-code-bg: #3f4447;--penna-c-code-block-shadow: none;--penna-c-table-th-border: #393c3f;--penna-c-table-td-border: color-mix(in srgb, #393c3f 55%, transparent);--penna-c-hr-color: #393c3f;--penna-c-blockquote-border: var(--penna-c-text-3);--notion-quote-bg: #3c4144;--notion-code-fg: #ecebeb}
