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

  Outdated base version: https://github.com/primer/github-syntax-light
  Current colors taken from GitHub's CSS
*/.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#005cc5}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-comment,.hljs-code,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0}:root{--react-pdf-annotation-layer: 1;--annotation-unfocused-field-background: url("data:image/svg+xml;charset=UTF-8,<svg width='1px' height='1px' xmlns='http://www.w3.org/2000/svg'><rect width='100%' height='100%' style='fill:rgba(0, 54, 255, 0.13);'/></svg>");--input-focus-border-color: Highlight;--input-focus-outline: 1px solid Canvas;--input-unfocused-border-color: transparent;--input-disabled-border-color: transparent;--input-hover-border-color: black;--link-outline: none}@media screen and (forced-colors: active){:root{--input-focus-border-color: CanvasText;--input-unfocused-border-color: ActiveText;--input-disabled-border-color: GrayText;--input-hover-border-color: Highlight;--link-outline: 1.5px solid LinkText}.annotationLayer .textWidgetAnnotation :is(input,textarea):required,.annotationLayer .choiceWidgetAnnotation select:required,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:required{outline:1.5px solid selectedItem}.annotationLayer .linkAnnotation:hover{-webkit-backdrop-filter:invert(100%);backdrop-filter:invert(100%)}}.annotationLayer{position:absolute;top:0;left:0;pointer-events:none;transform-origin:0 0;z-index:3}.annotationLayer[data-main-rotation="90"] .norotate{transform:rotate(270deg) translate(-100%)}.annotationLayer[data-main-rotation="180"] .norotate{transform:rotate(180deg) translate(-100%,-100%)}.annotationLayer[data-main-rotation="270"] .norotate{transform:rotate(90deg) translateY(-100%)}.annotationLayer canvas{position:absolute;width:100%;height:100%}.annotationLayer section{position:absolute;text-align:initial;pointer-events:auto;box-sizing:border-box;margin:0;transform-origin:0 0}.annotationLayer .linkAnnotation{outline:var(--link-outline)}.textLayer.selecting~.annotationLayer section{pointer-events:none}.annotationLayer :is(.linkAnnotation,.buttonWidgetAnnotation.pushButton)>a{position:absolute;font-size:1em;top:0;left:0;width:100%;height:100%}.annotationLayer :is(.linkAnnotation,.buttonWidgetAnnotation.pushButton)>a:hover{opacity:.2;background:#ff0;box-shadow:0 2px 10px #ff0}.annotationLayer .textAnnotation img{position:absolute;cursor:pointer;width:100%;height:100%;top:0;left:0}.annotationLayer .textWidgetAnnotation :is(input,textarea),.annotationLayer .choiceWidgetAnnotation select,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input{background-image:var(--annotation-unfocused-field-background);border:2px solid var(--input-unfocused-border-color);box-sizing:border-box;font:calc(9px * var(--total-scale-factor)) sans-serif;height:100%;margin:0;vertical-align:top;width:100%}.annotationLayer .textWidgetAnnotation :is(input,textarea):required,.annotationLayer .choiceWidgetAnnotation select:required,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:required{outline:1.5px solid red}.annotationLayer .choiceWidgetAnnotation select option{padding:0}.annotationLayer .buttonWidgetAnnotation.radioButton input{border-radius:50%}.annotationLayer .textWidgetAnnotation textarea{resize:none}.annotationLayer .textWidgetAnnotation :is(input,textarea)[disabled],.annotationLayer .choiceWidgetAnnotation select[disabled],.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input[disabled]{background:none;border:2px solid var(--input-disabled-border-color);cursor:not-allowed}.annotationLayer .textWidgetAnnotation :is(input,textarea):hover,.annotationLayer .choiceWidgetAnnotation select:hover,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:hover{border:2px solid var(--input-hover-border-color)}.annotationLayer .textWidgetAnnotation :is(input,textarea):hover,.annotationLayer .choiceWidgetAnnotation select:hover,.annotationLayer .buttonWidgetAnnotation.checkBox input:hover{border-radius:2px}.annotationLayer .textWidgetAnnotation :is(input,textarea):focus,.annotationLayer .choiceWidgetAnnotation select:focus{background:none;border:2px solid var(--input-focus-border-color);border-radius:2px;outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) :focus{background-image:none;background-color:transparent}.annotationLayer .buttonWidgetAnnotation.checkBox :focus{border:2px solid var(--input-focus-border-color);border-radius:2px;outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation.radioButton :focus{border:2px solid var(--input-focus-border-color);outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after,.annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{background-color:CanvasText;content:"";display:block;position:absolute}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after{height:80%;left:45%;width:1px}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before{transform:rotate(45deg)}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after{transform:rotate(-45deg)}.annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{border-radius:50%;height:50%;left:30%;top:20%;width:50%}.annotationLayer .textWidgetAnnotation input.comb{font-family:monospace;padding-left:2px;padding-right:0}.annotationLayer .textWidgetAnnotation input.comb:focus{width:103%}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input{-webkit-appearance:none;-moz-appearance:none;appearance:none}.annotationLayer .popupTriggerArea{height:100%;width:100%}.annotationLayer .fileAttachmentAnnotation .popupTriggerArea{position:absolute}.annotationLayer .popupWrapper{position:absolute;font-size:calc(9px * var(--total-scale-factor));width:100%;min-width:calc(180px * var(--total-scale-factor));pointer-events:none}.annotationLayer .popup{position:absolute;max-width:calc(180px * var(--total-scale-factor));background-color:#ff9;box-shadow:0 calc(2px * var(--total-scale-factor)) calc(5px * var(--total-scale-factor)) #888;border-radius:calc(2px * var(--total-scale-factor));padding:calc(6px * var(--total-scale-factor));margin-left:calc(5px * var(--total-scale-factor));cursor:pointer;font:message-box;white-space:normal;word-wrap:break-word;pointer-events:auto}.annotationLayer .popup>*{font-size:calc(9px * var(--total-scale-factor))}.annotationLayer .popup h1{display:inline-block}.annotationLayer .popupDate{display:inline-block;margin-left:calc(5px * var(--total-scale-factor))}.annotationLayer .popupContent{border-top:1px solid rgba(51,51,51,1);margin-top:calc(2px * var(--total-scale-factor));padding-top:calc(2px * var(--total-scale-factor))}.annotationLayer .richText>*{white-space:pre-wrap;font-size:calc(9px * var(--total-scale-factor))}.annotationLayer .highlightAnnotation,.annotationLayer .underlineAnnotation,.annotationLayer .squigglyAnnotation,.annotationLayer .strikeoutAnnotation,.annotationLayer .freeTextAnnotation,.annotationLayer .lineAnnotation svg line,.annotationLayer .squareAnnotation svg rect,.annotationLayer .circleAnnotation svg ellipse,.annotationLayer .polylineAnnotation svg polyline,.annotationLayer .polygonAnnotation svg polygon,.annotationLayer .caretAnnotation,.annotationLayer .inkAnnotation svg polyline,.annotationLayer .stampAnnotation,.annotationLayer .fileAttachmentAnnotation{cursor:pointer}.annotationLayer section svg{position:absolute;width:100%;height:100%;top:0;left:0}.annotationLayer .annotationTextContent{position:absolute;width:100%;height:100%;opacity:0;color:transparent;-webkit-user-select:none;user-select:none;pointer-events:none}.annotationLayer .annotationTextContent span{width:100%;display:inline-block}:root{--react-pdf-text-layer: 1;--highlight-bg-color: rgba(180, 0, 170, 1);--highlight-selected-bg-color: rgba(0, 100, 0, 1)}@media screen and (forced-colors: active){:root{--highlight-bg-color: Highlight;--highlight-selected-bg-color: ButtonText}}[data-main-rotation="90"]{transform:rotate(90deg) translateY(-100%)}[data-main-rotation="180"]{transform:rotate(180deg) translate(-100%,-100%)}[data-main-rotation="270"]{transform:rotate(270deg) translate(-100%)}.textLayer{position:absolute;text-align:initial;top:0;right:0;bottom:0;left:0;overflow:hidden;line-height:1;text-size-adjust:none;forced-color-adjust:none;transform-origin:0 0;z-index:2}.textLayer :is(span,br){color:transparent;position:absolute;white-space:pre;cursor:text;margin:0;transform-origin:0 0}.textLayer span.markedContent{top:0;height:0}.textLayer .highlight{margin:-1px;padding:1px;background-color:var(--highlight-bg-color);border-radius:4px}.textLayer .highlight.appended{position:initial}.textLayer .highlight.begin{border-radius:4px 0 0 4px}.textLayer .highlight.end{border-radius:0 4px 4px 0}.textLayer .highlight.middle{border-radius:0}.textLayer .highlight.selected{background-color:var(--highlight-selected-bg-color)}.textLayer br::selection{background:transparent}.textLayer .endOfContent{display:block;position:absolute;top:100%;right:0;bottom:0;left:0;z-index:-1;cursor:default;-webkit-user-select:none;user-select:none}.textLayer.selecting .endOfContent{top:0}.hiddenCanvasElement{position:absolute;top:0;left:0;width:0;height:0;display:none}:root{--bg: #f6f8fc;--bg-panel: #ffffff;--bg-subtle: #f1f5f9;--bg-hover: #eef3fb;--border: #e4e9f2;--border-strong: #cbd5e1;--text: #0b1220;--text-muted: #6b7a90;--text-soft: #445069;--accent: #2563eb;--accent-strong: #1d4ed8;--accent-soft: #e0edff;--accent-softer: #f0f6ff;--ring: rgba(37, 99, 235, .22);--shadow-sm: 0 1px 2px rgba(15, 23, 42, .04);--shadow-md: 0 6px 18px rgba(15, 23, 42, .07);--shadow-lg: 0 24px 48px rgba(15, 23, 42, .12);--radius: 10px;--radius-lg: 14px;--radius-xl: 18px;--sidebar-w: 288px;--topbar-h: 60px;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}html{scroll-behavior:smooth}body{margin:0;font-family:var(--font-sans);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.55;font-feature-settings:"cv02","cv03","cv04","cv11"}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit;cursor:pointer}input,button{font-size:inherit}::selection{background:var(--accent-soft);color:var(--accent-strong)}.app{min-height:100%;display:flex;flex-direction:column;background:radial-gradient(1200px 500px at 80% -100px,rgba(37,99,235,.08),transparent 60%),radial-gradient(900px 400px at -100px 0,rgba(14,165,233,.06),transparent 60%),var(--bg)}.topbar{position:sticky;top:0;z-index:40;height:var(--topbar-h);display:flex;align-items:center;gap:12px;padding:0 20px;background:#ffffffd9;backdrop-filter:saturate(160%) blur(12px);-webkit-backdrop-filter:saturate(160%) blur(12px);border-bottom:1px solid var(--border)}.menu-toggle{display:none;width:40px;height:40px;border-radius:8px;border:1px solid var(--border);background:var(--bg-panel);color:var(--text);align-items:center;justify-content:center}.menu-icon,.menu-icon:before,.menu-icon:after{content:"";display:block;width:18px;height:2px;background:currentColor;border-radius:2px;position:relative}.menu-icon:before{position:absolute;top:-6px}.menu-icon:after{position:absolute;top:6px}.brand{display:flex;align-items:center;gap:10px;color:var(--text);font-weight:600;font-size:15px;letter-spacing:-.005em}.brand:hover{text-decoration:none}.brand-mark{width:30px;height:30px;border-radius:8px;background:linear-gradient(135deg,#60a5fa,#2563eb 60%,#1d4ed8);color:#fff;display:grid;place-items:center;font-weight:700;font-size:15px;box-shadow:0 4px 10px #2563eb66,inset 0 1px #ffffff40}.brand-mark.big{width:44px;height:44px;border-radius:12px;font-size:22px}.brand-name{letter-spacing:-.01em}.topbar-spacer{flex:1}.topbar-tag{font-size:11.5px;padding:3px 9px;background:var(--accent-soft);color:var(--accent-strong);border-radius:999px;font-weight:600;letter-spacing:.02em}.user-menu{position:relative}.user-chip{display:inline-flex;align-items:center;gap:8px;padding:5px 10px 5px 5px;background:var(--bg-panel);border:1px solid var(--border);border-radius:999px;color:var(--text);font-size:13px;font-weight:500;transition:border-color .15s,background .15s}.user-chip:hover{border-color:var(--border-strong);background:var(--bg-subtle)}.user-avatar{width:26px;height:26px;border-radius:50%;background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;display:grid;place-items:center;font-weight:700;font-size:12px;letter-spacing:.02em}.user-name{color:var(--text)}.user-chevron{color:var(--text-muted);font-size:10px}.user-menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:49}.user-menu-popover{position:absolute;top:calc(100% + 8px);right:0;z-index:50;min-width:200px;background:var(--bg-panel);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-lg);overflow:hidden}.user-menu-header{padding:10px 14px;border-bottom:1px solid var(--border)}.user-menu-name{font-weight:600;font-size:13.5px;color:var(--text)}.user-menu-sub{font-size:12px;color:var(--text-muted)}.user-menu-item{width:100%;text-align:left;padding:10px 14px;background:transparent;border:none;color:var(--text);font-size:13.5px;font-weight:500}.user-menu-item:hover{background:var(--bg-subtle)}.shell{display:grid;grid-template-columns:var(--sidebar-w) 1fr;flex:1;min-height:0}.sidebar{background:#ffffffa6;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border-right:1px solid var(--border);position:sticky;top:var(--topbar-h);height:calc(100vh - var(--topbar-h));overflow-y:auto}.sidebar::-webkit-scrollbar{width:8px}.sidebar::-webkit-scrollbar-thumb{background:#d7ddea;border-radius:8px}.sidebar-inner{padding:14px 12px 24px}.sidebar-search{padding:4px 4px 12px;position:relative}.sidebar-search input{width:100%;padding:9px 12px 9px 34px;border:1px solid var(--border);border-radius:8px;font-size:13px;background:var(--bg-panel);color:var(--text);transition:border-color .15s,box-shadow .15s,background .15s}.sidebar-search:before{content:"";position:absolute;left:16px;top:50%;width:14px;height:14px;margin-top:-7px;background:center/contain no-repeat url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b7a90' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='11' cy='11' r='7'/><path d='m20 20-3-3'/></svg>");pointer-events:none;opacity:.9}.sidebar-search input:focus{outline:none;border-color:var(--accent);background:var(--bg-panel);box-shadow:0 0 0 3px var(--ring)}.sidebar-empty{padding:8px 10px;color:var(--text-muted);font-size:13px}.sidebar-nav{font-size:14px}.tree{list-style:none;margin:0;padding:0}.tree .tree{padding-left:14px;border-left:1px dashed var(--border);margin-left:10px}.tree-root{margin-top:4px}.tree-folder{margin:2px 0}.folder-toggle{display:flex;align-items:center;gap:6px;width:100%;padding:6px 8px;border:none;background:transparent;border-radius:6px;color:var(--text-soft);font-weight:600;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase}.folder-toggle:hover{background:var(--bg-hover);color:var(--text)}.chevron{display:inline-block;transition:transform .18s ease;font-size:14px;color:var(--text-muted);width:12px}.chevron.open{transform:rotate(90deg)}.tree-doc{margin:1px 0;position:relative}.tree-doc .link{display:block;padding:7px 10px;border-radius:7px;color:var(--text-soft);font-size:13.5px;line-height:1.35;text-decoration:none;transition:background .15s,color .15s,transform .15s}.tree-doc .link:hover{background:var(--bg-hover);color:var(--text);text-decoration:none}.tree-doc .link.active{background:var(--accent-soft);color:var(--accent-strong);font-weight:600;box-shadow:inset 2px 0 0 var(--accent)}.main{min-width:0;padding:28px 32px 60px}.main-inner{max-width:1100px;margin:0 auto}.hero{position:relative;overflow:hidden;padding:54px 44px;border-radius:var(--radius-xl);border:1px solid var(--border);background:radial-gradient(600px 300px at 90% -80px,rgba(37,99,235,.18),transparent 70%),radial-gradient(500px 260px at -10% 120%,rgba(14,165,233,.14),transparent 70%),linear-gradient(180deg,#fff,#f5f9ff);box-shadow:var(--shadow-sm);margin-bottom:36px}.hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(37,99,235,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(37,99,235,.08) 1px,transparent 1px);background-size:40px 40px;mask:radial-gradient(500px 300px at 80% 0,black,transparent 70%);pointer-events:none;opacity:.5}.hero>*{position:relative}.hero-eyebrow{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;background:#ffffffb3;border:1px solid var(--border);color:var(--accent-strong);border-radius:999px;font-size:11.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;margin-bottom:18px;box-shadow:var(--shadow-sm)}.hero-eyebrow:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px #2563eb33}.hero h1{font-size:40px;line-height:1.1;letter-spacing:-.03em;margin:0 0 12px;color:var(--text);max-width:22ch}.hero .lead{font-size:17px;color:var(--text-soft);max-width:60ch;margin:0 0 26px}.hero-pillars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 26px;max-width:720px}.pillar{display:flex;align-items:center;gap:10px;padding:12px 14px;background:#ffffffc7;border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-sm);transition:border-color .15s,box-shadow .2s,transform .15s}.pillar:hover{border-color:#b6cdf6;box-shadow:var(--shadow-md);transform:translateY(-1px)}.pillar-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;box-shadow:0 0 0 4px #ffffffb3}.pillar-dot-product{background:#2563eb;box-shadow:0 0 0 4px #2563eb24}.pillar-dot-tech{background:#0ea5e9;box-shadow:0 0 0 4px #0ea5e924}.pillar-dot-biz{background:#8b5cf6;box-shadow:0 0 0 4px #8b5cf624}.pillar-text{display:flex;flex-direction:column;min-width:0}.pillar-title{font-size:13.5px;font-weight:600;color:var(--text);letter-spacing:-.005em}.pillar-sub{font-size:12px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hero-actions{display:flex;gap:10px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;gap:6px;padding:10px 18px;border-radius:10px;font-weight:500;font-size:14px;border:1px solid transparent;transition:background .15s,border-color .15s,color .15s,box-shadow .15s,transform .1s}.btn:hover{text-decoration:none}.btn:active{transform:translateY(1px)}.btn.primary{background:linear-gradient(180deg,#3b82f6,#2563eb);color:#fff;box-shadow:0 4px 12px #2563eb47,inset 0 1px #ffffff3d}.btn.primary:hover{background:linear-gradient(180deg,#2563eb,#1d4ed8);box-shadow:0 6px 16px #2563eb52}.btn.primary:disabled{background:#94a3b8;box-shadow:none;cursor:not-allowed}.btn.ghost{background:var(--bg-panel);color:var(--text);border-color:var(--border)}.btn.ghost:hover{border-color:var(--border-strong);background:var(--bg-subtle)}.btn.wide{width:100%;justify-content:center;padding-top:12px;padding-bottom:12px}.section-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:16px}.section-head h2{font-size:20px;margin:0;letter-spacing:-.01em}.muted{color:var(--text-muted);font-size:13px}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.card{position:relative;display:flex;flex-direction:column;gap:10px;padding:20px 22px;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-lg);color:var(--text);text-decoration:none;transition:border-color .15s,box-shadow .2s,transform .15s;box-shadow:var(--shadow-sm);overflow:hidden}.card:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;background:linear-gradient(180deg,#2563eb00,#2563eb0a);opacity:0;transition:opacity .2s}.card:hover{border-color:#b6cdf6;box-shadow:var(--shadow-md);text-decoration:none;transform:translateY(-2px)}.card:hover:after{opacity:1}.card-top{display:flex;justify-content:space-between}.card-chip{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--accent-strong);background:var(--accent-soft);padding:3px 9px;border-radius:999px}.card-title{font-size:17px;margin:0;letter-spacing:-.01em;line-height:1.25}.card-excerpt{font-size:13.5px;color:var(--text-muted);margin:0;line-height:1.55;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.card-cta{margin-top:auto;color:var(--accent);font-size:13.5px;font-weight:600;display:inline-flex;align-items:center;gap:4px;transition:gap .2s}.card:hover .card-cta{gap:8px}.doc{display:flex;flex-direction:column;gap:20px}.breadcrumbs{font-size:13px;color:var(--text-muted);display:flex;flex-wrap:wrap;align-items:center;gap:4px}.breadcrumbs a{color:var(--text-soft)}.breadcrumbs a:hover{color:var(--accent)}.breadcrumbs .sep{color:var(--border-strong);margin:0 2px}.crumb-current{color:var(--text);font-weight:500}.crumb-folder{color:var(--text-soft)}.doc-grid-layout{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:48px;align-items:start}.toc{position:sticky;top:calc(var(--topbar-h) + 24px);padding-left:20px;border-left:1px solid var(--border);font-size:13px;max-height:calc(100vh - var(--topbar-h) - 48px);overflow-y:auto}.toc-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:12px}.toc ul{list-style:none;padding:0;margin:0}.toc li{margin:2px 0}.toc a{color:var(--text-soft);display:block;padding:3px 0 3px 12px;line-height:1.45;border-left:2px solid transparent;margin-left:-12px;transition:color .15s,border-color .15s,background .15s;border-radius:0 6px 6px 0}.toc a:hover{color:var(--accent);text-decoration:none;border-left-color:var(--accent-soft);background:var(--accent-softer)}.toc a.active{color:var(--accent-strong);border-left-color:var(--accent);background:var(--accent-softer);font-weight:600}.toc-lvl-3 a{padding-left:24px;font-size:12.5px}.toc-lvl-3 a.active{font-weight:500}.markdown{min-width:0;color:var(--text);font-size:15.5px;line-height:1.7}.markdown>*:first-child{margin-top:0}.markdown h1,.markdown h2,.markdown h3,.markdown h4,.markdown h5,.markdown h6{color:var(--text);letter-spacing:-.018em;line-height:1.25;scroll-margin-top:calc(var(--topbar-h) + 20px)}.markdown h1{font-size:34px;margin:0 0 18px;padding-bottom:14px;border-bottom:1px solid var(--border)}.markdown h2{font-size:24px;margin:40px 0 14px}.markdown h3{font-size:19px;margin:28px 0 10px}.markdown h4{font-size:16px;margin:22px 0 8px}.markdown p{margin:0 0 14px}.markdown strong{color:var(--text);font-weight:600}.markdown em{color:var(--text-soft)}.markdown blockquote{margin:18px 0;padding:12px 20px;border-left:3px solid var(--accent);background:var(--accent-softer);color:var(--text-soft);border-radius:0 10px 10px 0}.markdown blockquote p{margin:6px 0}.markdown ul,.markdown ol{padding-left:26px;margin:0 0 16px}.markdown li{margin:5px 0}.markdown li::marker{color:var(--accent)}.markdown li>p{margin:2px 0}.markdown hr{border:none;border-top:1px solid var(--border);margin:36px 0}.markdown code{font-family:var(--font-mono);font-size:.87em;padding:2px 6px;background:var(--accent-softer);border:1px solid #d6e4fb;border-radius:6px;color:#0b3b8a;font-weight:500}.markdown pre{background:#0b1220;color:#e2e8f0;padding:16px 18px;border-radius:12px;overflow-x:auto;font-size:13.5px;line-height:1.6;margin:18px 0;border:1px solid #1e293b;box-shadow:var(--shadow-sm)}.markdown pre code{background:transparent;border:none;padding:0;color:inherit;font-size:inherit;font-weight:400}.markdown img{max-width:100%;border-radius:10px;border:1px solid var(--border);box-shadow:var(--shadow-sm)}.table-wrap{overflow-x:auto;margin:20px 0;border:1px solid var(--border);border-radius:12px;background:var(--bg-panel);box-shadow:var(--shadow-sm)}.markdown table{width:100%;border-collapse:collapse;font-size:14px}.markdown th,.markdown td{padding:11px 16px;text-align:left;border-bottom:1px solid var(--border);vertical-align:top}.markdown th{background:var(--bg-subtle);font-weight:600;color:var(--text);font-size:12px;text-transform:uppercase;letter-spacing:.05em}.markdown tr:last-child td{border-bottom:none}.markdown tr:hover td{background:var(--accent-softer)}.markdown a{color:var(--accent);text-decoration:none;border-bottom:1px solid rgba(37,99,235,.3);transition:border-color .15s,color .15s}.markdown a:hover{color:var(--accent-strong);border-bottom-color:var(--accent);text-decoration:none}.doc-empty{text-align:center;padding:80px 20px;color:var(--text-soft)}.doc-empty h1{margin-bottom:8px}.doc-empty code{background:var(--bg-subtle);padding:2px 6px;border-radius:4px;font-family:var(--font-mono)}.auth-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px 24px;position:relative;overflow:hidden;background:linear-gradient(180deg,#eef4ff,#f8faff,#fff)}.auth-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(600px 360px at 20% 20%,rgba(37,99,235,.18),transparent 70%),radial-gradient(500px 300px at 80% 80%,rgba(14,165,233,.15),transparent 70%)}.auth-backdrop:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(37,99,235,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(37,99,235,.07) 1px,transparent 1px);background-size:48px 48px;mask:radial-gradient(700px 500px at 50% 40%,black,transparent 70%)}.auth-card{position:relative;width:100%;max-width:420px;padding:34px 32px 28px;background:#ffffffe6;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg)}.auth-brand{display:flex;align-items:center;gap:14px;margin-bottom:22px}.auth-brand-name{font-size:17px;font-weight:700;color:var(--text);letter-spacing:-.01em}.auth-brand-sub{font-size:12.5px;color:var(--text-muted)}.auth-title{font-size:24px;margin:0 0 6px;letter-spacing:-.02em;color:var(--text)}.auth-lead{font-size:14px;color:var(--text-muted);margin:0 0 22px;line-height:1.55}.auth-form{display:flex;flex-direction:column;gap:14px}.field{display:flex;flex-direction:column;gap:6px}.field-label{font-size:12.5px;font-weight:600;color:var(--text-soft);letter-spacing:.01em}.field input{padding:11px 13px;border:1px solid var(--border);border-radius:10px;font-size:14px;background:var(--bg-panel);color:var(--text);transition:border-color .15s,box-shadow .15s}.field input::placeholder{color:#94a3b8}.field input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--ring)}.auth-error{padding:10px 12px;background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;border-radius:10px;font-size:13px;font-weight:500}.auth-hint{margin-top:18px;padding:12px 14px;background:var(--accent-softer);border:1px dashed #b6cdf6;border-radius:10px;font-size:12.5px;color:var(--text-soft);display:flex;align-items:center;gap:8px;flex-wrap:wrap}.auth-hint .hint-title{font-weight:700;color:var(--accent-strong);text-transform:uppercase;font-size:11px;letter-spacing:.06em;margin-right:2px}.auth-hint code{font-family:var(--font-mono);background:var(--bg-panel);border:1px solid var(--border);padding:2px 7px;border-radius:6px;color:var(--accent-strong);font-size:12px;font-weight:600}.auth-footer{margin-top:24px;font-size:12px;color:var(--text-muted);position:relative}.mobile-fab,.toc-sheet{display:none}@keyframes fab-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes sheet-fade{0%{opacity:0}to{opacity:1}}@keyframes sheet-slide{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media (max-width: 960px){.doc-grid-layout{grid-template-columns:minmax(0,1fr);gap:24px}.toc{display:none}.hero{padding:40px 28px}.hero h1{font-size:32px}.hero-pillars{grid-template-columns:1fr}.mobile-fab{display:flex;flex-direction:column;align-items:flex-end;gap:10px;position:fixed;right:14px;bottom:calc(14px + env(safe-area-inset-bottom));z-index:35;pointer-events:none}.fab{pointer-events:auto;border:1px solid var(--border);background:var(--bg-panel);color:var(--text);border-radius:999px;box-shadow:var(--shadow-md);font-weight:600;font-size:14px;display:inline-flex;align-items:center;justify-content:center;animation:fab-fade-in .18s ease}.fab:active{transform:translateY(1px)}.fab-top{width:44px;height:44px;padding:0;font-size:20px;line-height:1}.fab-toc{padding:11px 16px;gap:8px;background:linear-gradient(180deg,#3b82f6,#2563eb);color:#fff;border-color:transparent;box-shadow:0 6px 18px #2563eb59,inset 0 1px #ffffff38}.fab-toc-icon{font-size:16px;line-height:1}.toc-sheet{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:60}.toc-sheet-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0b12207a;animation:sheet-fade .18s ease}.toc-sheet-panel{position:absolute;left:0;right:0;bottom:0;max-height:78vh;background:var(--bg-panel);border-top-left-radius:20px;border-top-right-radius:20px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;padding-bottom:env(safe-area-inset-bottom);animation:sheet-slide .24s ease}.toc-sheet-grip{width:40px;height:4px;background:var(--border-strong);border-radius:999px;margin:8px auto 4px;opacity:.6}.toc-sheet-header{display:flex;align-items:center;justify-content:space-between;padding:6px 18px 10px;border-bottom:1px solid var(--border)}.toc-sheet-title{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-soft)}.toc-sheet-close{border:none;background:var(--bg-subtle);color:var(--text-soft);font-size:22px;line-height:1;width:32px;height:32px;border-radius:50%;display:grid;place-items:center}.toc-sheet-list{list-style:none;margin:0;padding:10px 14px 22px;overflow-y:auto;-webkit-overflow-scrolling:touch;flex:1}.toc-sheet-list li{margin:1px 0}.toc-sheet-list a{display:block;padding:11px 14px;color:var(--text-soft);border-radius:10px;font-size:14.5px;line-height:1.4;text-decoration:none;border-left:3px solid transparent}.toc-sheet-list a.active{background:var(--accent-softer);color:var(--accent-strong);font-weight:600;border-left-color:var(--accent)}.toc-sheet-list .toc-lvl-3 a{padding-left:28px;font-size:13.5px}}@media (max-width: 768px){:root{--sidebar-w: 280px}.menu-toggle{display:inline-flex}.shell{grid-template-columns:1fr}.sidebar{position:fixed;top:var(--topbar-h);left:0;bottom:0;width:var(--sidebar-w);height:calc(100vh - var(--topbar-h));transform:translate(-100%);transition:transform .22s ease;z-index:30;box-shadow:var(--shadow-lg);background:var(--bg-panel)}.shell.sidebar-open .sidebar{transform:translate(0)}.main{padding:20px 18px 48px}.topbar-tag,.user-name{display:none}.hero{padding:32px 22px}.hero h1{font-size:28px}}.sidebar-section+.sidebar-section{margin-top:18px;padding-top:14px;border-top:1px dashed var(--border)}.sidebar-section-label{padding:4px 10px 8px;font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted)}.deck-page .deck-header{margin:6px 0 18px}.deck-page .deck-header h1{font-size:30px;letter-spacing:-.02em;margin:0 0 6px}.deck-page .deck-header .lead{color:var(--text-soft);font-size:15px;margin:0}.deck-viewer{display:flex;flex-direction:column;gap:14px;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-xl);padding:14px;box-shadow:var(--shadow-sm)}.deck-viewer.is-fullscreen{border-radius:0;border:none;padding:0;background:#0b1220;height:100vh;display:grid;grid-template-rows:1fr auto}.deck-stage{position:relative;width:100%;background:linear-gradient(180deg,#f8fafc,#eef3fb);border-radius:var(--radius-lg);overflow:hidden;display:flex;align-items:center;justify-content:center;min-height:320px;-webkit-user-select:none;user-select:none}.is-fullscreen .deck-stage{background:#0b1220;border-radius:0;min-height:0}.deck-stage canvas{display:block;max-width:100%;height:auto!important;border-radius:var(--radius-lg);box-shadow:0 8px 24px #0f172a1f}.is-fullscreen .deck-stage canvas{border-radius:0;box-shadow:none;max-height:100vh}.deck-stage .react-pdf__Document{display:flex;align-items:center;justify-content:center;width:100%}.deck-loading{width:min(100%,960px);aspect-ratio:16 / 9;background:linear-gradient(100deg,#eef3fb 30%,#f7faff,#eef3fb 70%);background-size:200% 100%;border-radius:var(--radius-lg);animation:deck-shimmer 1.4s ease infinite}@keyframes deck-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.deck-error{padding:40px 24px;color:var(--text-soft);text-align:center}.deck-error-detail{margin-top:8px;font-family:var(--font-mono);font-size:12.5px;color:var(--text-muted)}.deck-toolbar{display:flex;align-items:center;gap:8px;padding:4px 6px;flex-wrap:wrap}.is-fullscreen .deck-toolbar{background:#0b1220eb;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding:12px 18px;border-top:1px solid rgba(255,255,255,.08)}.deck-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border);background:var(--bg-panel);color:var(--text);font-weight:500;font-size:13.5px;padding:8px 14px;border-radius:8px;transition:border-color .15s,background .15s,color .15s,box-shadow .15s}.deck-btn:hover:not(:disabled){border-color:var(--border-strong);background:var(--bg-subtle)}.deck-btn:disabled{opacity:.45;cursor:not-allowed}.deck-btn-ghost{background:transparent}.is-fullscreen .deck-btn{background:#ffffff14;border-color:#ffffff26;color:#f1f5f9}.is-fullscreen .deck-btn:hover:not(:disabled){background:#ffffff29;border-color:#ffffff47}.deck-counter{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;background:var(--bg-subtle);border:1px solid var(--border);border-radius:8px;font-size:13px;color:var(--text-soft)}.is-fullscreen .deck-counter{background:#ffffff0f;border-color:#ffffff1f;color:#cbd5e1}.deck-page-input{width:38px;text-align:center;border:none;background:transparent;color:var(--text);font-weight:600;font-size:13px;padding:2px 0}.is-fullscreen .deck-page-input{color:#f1f5f9}.deck-page-input:focus{outline:none;background:var(--bg-panel);border-radius:4px}.deck-counter-sep{opacity:.6}.deck-counter-total{font-weight:600;color:var(--text)}.is-fullscreen .deck-counter-total{color:#f1f5f9}.deck-toolbar-spacer{flex:1}a.deck-btn{text-decoration:none;display:inline-flex;align-items:center;line-height:1}@media (max-width: 600px){.deck-page .deck-header h1{font-size:24px}.deck-toolbar{justify-content:center}.deck-toolbar-spacer{display:none}}@media (max-width: 900px),(hover: none) and (pointer: coarse){.deck-btn-desktop{display:none!important}}
