:root{--font-mono:'JetBrains Mono','Fira Code','Cascadia Code','Consolas',monospace;--font-sans:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;--sidebar-width:280px;--topbar-height:38px;--dot-size:12px;--dot-gap:6px;--transition-speed:0.25s;--transition-fast:0.15s;--transition-slow:0.3s;--bg-primary:#0d1117;--bg-secondary:#161b22;--bg-tertiary:#21262d;--bg-hover:#30363d;--border:#30363d;--text-primary:#e6edf3;--text-secondary:#8b949e;--text-muted:#848d97;--accent-green:#3fb950;--accent-blue:#58a6ff;--accent-purple:#bc8cff;--accent-orange:#d29922;--accent-red:#f85149;--accent-cyan:#39d353;--prompt-color:#3fb950;--overlay-bg:rgba(13, 17, 23, 0.95);--hljs-bg:#161b22}html.theme-switching,html.theme-switching #content,html.theme-switching #markdown-output,html.theme-switching #sidebar,html.theme-switching #terminal-bar,html.theme-switching .theme-btn,html.theme-switching .toc-item,html.theme-switching body,html.theme-switching code,html.theme-switching pre{transition:background-color .2s,color .2s}[data-color-mode=light]{--bg-primary:#ffffff;--bg-secondary:#f6f8fa;--bg-tertiary:#e8ecf0;--bg-hover:#d0d7de;--border:#d0d7de;--text-primary:#1f2328;--text-secondary:#59636e;--text-muted:#656d76;--accent-green:#1a7f37;--accent-blue:#0969da;--accent-purple:#8250df;--accent-orange:#9a6700;--accent-red:#cf222e;--accent-cyan:#0969da;--prompt-color:#1a7f37;--overlay-bg:rgba(255, 255, 255, 0.95);--hljs-bg:#f6f8fa}[data-color-mode=dark][data-color-theme=highcontrast]{--bg-primary:#000000;--bg-secondary:#0a0a0a;--bg-tertiary:#1a1a1a;--bg-hover:#2a2a2a;--border:#444444;--text-primary:#ffffff;--text-secondary:#cccccc;--text-muted:#999999;--accent-green:#ffffff;--accent-blue:#dddddd;--accent-purple:#bbbbbb;--accent-orange:#cccccc;--accent-red:#ffffff;--accent-cyan:#eeeeee;--prompt-color:#ffffff;--overlay-bg:rgba(0, 0, 0, 0.95);--hljs-bg:#0a0a0a}[data-color-mode=light][data-color-theme=highcontrast]{--bg-primary:#ffffff;--bg-secondary:#f0f0f0;--bg-tertiary:#e0e0e0;--bg-hover:#cccccc;--border:#999999;--text-primary:#000000;--text-secondary:#333333;--text-muted:#555555;--accent-green:#000000;--accent-blue:#222222;--accent-purple:#333333;--accent-orange:#222222;--accent-red:#000000;--accent-cyan:#111111;--prompt-color:#000000;--overlay-bg:rgba(255, 255, 255, 0.95);--hljs-bg:#f0f0f0}[data-color-mode=light] code,[data-color-mode=light] pre{--hljs-bg:#f6f8fa}[data-color-mode=light] .hljs{background:var(--bg-secondary)!important;color:#1f2328!important}[data-color-mode=light] .hljs-attr,[data-color-mode=light] .hljs-string{color:#0a3069!important}[data-color-mode=light] .hljs-built_in,[data-color-mode=light] .hljs-keyword{color:#cf222e!important}[data-color-mode=light] .hljs-title,[data-color-mode=light] .hljs-title\.class_,[data-color-mode=light] .hljs-title\.function_{color:#8250df!important}[data-color-mode=light] .hljs-comment,[data-color-mode=light] .hljs-quote{color:#6e7781!important}[data-color-mode=light] .hljs-literal,[data-color-mode=light] .hljs-number{color:#0550ae!important}[data-color-mode=light] .hljs-template-variable,[data-color-mode=light] .hljs-variable{color:#953800!important}[data-color-mode=light] .hljs-type{color:#0550ae!important}[data-color-mode=light] .hljs-name,[data-color-mode=light] .hljs-selector-tag{color:#116329!important}[data-color-mode=light] .hljs-bullet,[data-color-mode=light] .hljs-symbol{color:#0550ae!important}[data-color-mode=light] .hljs-meta{color:#6e7781!important}[data-color-mode=light] .hljs-params{color:#1f2328!important}[data-os=macos] .terminal-dots{display:flex;gap:var(--dot-gap);margin-right:16px;order:-1}[data-os=macos] .dot{width:var(--dot-size);height:var(--dot-size);border-radius:50%}[data-os=macos] .dot-1{background:#ff5f57}[data-os=macos] .dot-2{background:#febc2e}[data-os=macos] .dot-3{background:#28c840}[data-os=macos] .terminal-title{text-align:center}[data-os=windows] .terminal-dots{display:flex;gap:0;margin-left:auto;margin-right:8px;order:1}[data-os=windows] .dot{width:30px;height:var(--topbar-height);border-radius:0;background:0 0;display:flex;align-items:center;justify-content:center;transition:background .15s}[data-os=windows] .dot:hover{background:var(--bg-hover)}[data-os=windows] .dot-1::after{content:'—';font-size:.7rem;color:var(--text-secondary)}[data-os=windows] .dot-2::after{content:'☐';font-size:.75rem;color:var(--text-secondary)}[data-os=windows] .dot-3::after{content:'✕';font-size:.8rem;color:var(--text-secondary)}[data-os=windows] .dot-3:hover{background:#e81123}[data-os=windows] .dot-3:hover::after{color:#fff}[data-os=windows] .terminal-title{text-align:center;order:0}[data-os=windows] #terminal-bar{border-radius:0}[data-os=linux] .terminal-dots{display:flex;gap:6px;margin-right:16px;order:-1}[data-os=linux] .dot{width:14px;height:14px;border-radius:3px;position:relative}[data-os=linux] .dot-1{background:var(--bg-tertiary);border:1px solid var(--border)}[data-os=linux] .dot-1::after{content:'—';font-size:8px;position:absolute;top:50%;left:50%;transform:translate(-50%,-55%);color:var(--text-muted)}[data-os=linux] .dot-2{background:var(--bg-tertiary);border:1px solid var(--border)}[data-os=linux] .dot-2::after{content:'□';font-size:8px;position:absolute;top:50%;left:50%;transform:translate(-50%,-55%);color:var(--text-muted)}[data-os=linux] .dot-3{background:var(--bg-tertiary);border:1px solid var(--border)}[data-os=linux] .dot-3::after{content:'✕';font-size:7px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--text-muted)}[data-os=linux] .terminal-title{text-align:center}*,::after,::before{margin:0;padding:0;box-sizing:border-box}html{font-size:15px;scroll-behavior:smooth}body{font-family:var(--font-mono);background:var(--bg-primary);color:var(--text-primary);line-height:1.6;overflow:hidden;height:100vh;transition:background var(--transition-speed),color var(--transition-speed)}#terminal-bar{height:var(--topbar-height);background:var(--bg-secondary);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 12px;position:fixed;top:0;left:0;right:0;z-index:100;-webkit-app-region:drag;transition:background var(--transition-speed),border-color var(--transition-speed)}.terminal-dots{display:flex;gap:6px;margin-right:16px}.dot{width:12px;height:12px;border-radius:50%;transition:background var(--transition-speed),border-color var(--transition-speed)}.terminal-title{flex:1;text-align:center;font-size:.8rem;color:var(--text-secondary);font-family:var(--font-mono)}.terminal-controls{display:flex;align-items:center;gap:4px}#sidebar-toggle{display:none;background:0 0;border:none;color:var(--text-secondary);font-size:1.2rem;cursor:pointer;padding:4px 8px}#theme-switcher{display:flex;align-items:center;gap:6px;margin-right:8px}.theme-btn{background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-primary);border-radius:4px;width:28px;height:24px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:14px;transition:.15s;padding:0}.theme-btn:focus-visible,.theme-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.font-size-btn{font-family:var(--font-mono);font-size:11px;font-weight:700;letter-spacing:-.5px;width:26px}.font-size-btn:disabled{opacity:.3;cursor:default}[data-color-mode=dark] .icon-dark{display:inline}[data-color-mode=dark] .icon-light,[data-color-mode=light] .icon-dark{display:none}[data-color-mode=light] .icon-light,[data-color-theme=default] .icon-default,[data-color-theme=highcontrast] .icon-highcontrast{display:inline}[data-color-theme=default] .icon-highcontrast,[data-color-theme=highcontrast] .icon-default{display:none}.os-selector{display:flex;gap:2px;background:var(--bg-tertiary);border-radius:4px;padding:2px}.os-btn{background:0 0;border:none;color:var(--text-muted);border-radius:3px;width:24px;height:22px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s,color .15s;padding:0}.os-btn:focus-visible,.os-btn:hover{color:var(--text-primary);background:var(--bg-hover)}.os-btn.active{background:var(--bg-primary);color:var(--accent-blue);box-shadow:0 1px 2px rgba(0,0,0,.2)}#app{display:flex;position:fixed;top:var(--topbar-height);left:0;right:0;bottom:0;z-index:1}#sidebar{width:var(--sidebar-width);min-width:285px;max-width:50vw;background:var(--bg-secondary);border-right:none;display:flex;flex-direction:column;overflow:hidden;transition:background var(--transition-speed),border-color var(--transition-speed);flex-shrink:0}#sidebar-resize-handle{width:4px;cursor:col-resize;background:var(--border);transition:background .15s;flex-shrink:0}#sidebar-resize-handle.dragging,#sidebar-resize-handle:hover,[data-color-mode=light] #sidebar-resize-handle.tour-highlight{background:var(--accent-blue)}body.sidebar-resizing{cursor:col-resize!important;user-select:none}.sidebar-header{padding:16px 16px 8px;font-size:.8rem;color:var(--text-muted);border-bottom:1px solid var(--border);margin-bottom:8px}.prompt{color:var(--prompt-color);font-weight:700}.cmd{color:var(--accent-blue)}#toc{flex:1;padding:4px 0;overflow-y:auto;overflow-x:hidden;scrollbar-width:auto;scrollbar-color:var(--text-muted) var(--bg-secondary)}.toc-section{margin-bottom:4px}.toc-section-title{display:flex;align-items:center;padding:6px 16px;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);cursor:pointer;user-select:none}.toc-section-title::before{display:none}.toc-section-arrow{cursor:pointer;margin-right:6px;font-size:.65rem;display:inline-block;transition:transform .2s}.toc-section-arrow::before{content:'▸'}.toc-section-title.open .toc-section-arrow{transform:rotate(90deg)}.toc-items{overflow:hidden;display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s}.toc-items-inner{overflow:hidden}.toc-items.open{grid-template-rows:1fr}.toc-item,.toc-item:link{display:flex;align-items:center;padding:5px 16px 5px 32px;font-size:.82rem;color:var(--text-secondary);text-decoration:none;cursor:pointer;transition:background .15s,color .15s;border-left:2px solid transparent;position:relative}.toc-item:visited{color:#8b949e!important}[data-color-mode=light] .toc-item:visited{color:#59636e!important}.toc-item:focus-within .toc-item-icon,.toc-item:hover .toc-item-icon{opacity:1}.toc-item-copy{visibility:hidden;background:0 0;border:none;color:inherit;cursor:pointer;font-size:.65rem;padding:1px 3px;border-radius:3px;flex-shrink:0;margin-left:auto;opacity:0}.toc-item.copy-shown .toc-item-copy,.toc-item:hover .toc-item-copy{visibility:visible;opacity:.5}.toc-item.copy-shown .toc-item-copy:focus-visible,.toc-item.copy-shown .toc-item-copy:hover,.toc-item:hover .toc-item-copy:focus-visible,.toc-item:hover .toc-item-copy:hover{opacity:1!important;background:var(--bg-hover)}.toc-item:focus-visible,.toc-item:hover{background:var(--bg-hover);color:var(--text-primary)}.toc-item.active{background:rgba(56,139,253,.1);color:var(--accent-blue);border-left-color:var(--accent-blue)}.toc-item.prefetch-error,.toc-item.prefetch-loaded,.toc-item.prefetch-loading{position:relative}.toc-item.prefetch-error::after,.toc-item.prefetch-loaded::after,.toc-item.prefetch-loading::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;transform-origin:left;will-change:transform,opacity}.toc-item.prefetch-loading::after{background:var(--accent-green,#238636);animation:.8s ease-in-out infinite prefetch-bar}@keyframes prefetch-bar{0%{transform:scaleX(0);opacity:.6}50%{transform:scaleX(.7);opacity:1}100%{transform:scaleX(1);opacity:.6}}.toc-item.prefetch-loaded::after{background:var(--accent-green,#238636);animation:.3s ease-out forwards prefetch-done}@keyframes prefetch-done{from{transform:scaleX(1);opacity:.5}to{transform:scaleX(1);opacity:0}}.toc-item.prefetch-error::after{background:var(--accent-red,#f85149);transform:scaleX(1);opacity:.4}.toc-item-icon{display:inline-block;transition:opacity .15s;margin-right:8px;font-size:.75rem;opacity:.7;width:16px;min-width:16px;text-align:center;flex-shrink:0}.toc-item-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.toc-tree{margin-bottom:2px}.toc-item-parent{position:relative}.toc-expand-btn{position:absolute;left:10px;top:50%;transform:translateY(-50%);background:0 0;border:none;color:var(--text-secondary);cursor:pointer;font-size:.75rem;width:20px;padding:0;margin:0;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform .2s;border-radius:4px}.toc-expand-btn:focus-visible,.toc-expand-btn:hover{background:var(--bg-hover)}.toc-item-parent.expanded .toc-expand-btn{transform:translateY(-50%) rotate(90deg)}.toc-children{overflow:hidden;display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s}.toc-children-inner{overflow:hidden}.toc-children.open{grid-template-rows:1fr}.toc-item-child{padding-left:44px!important;font-size:.78rem}.toc-item-child .toc-item-icon{font-size:.6rem;opacity:.5}.toc-heading-wrapper{display:contents}.toc-headings{border-left:2px solid var(--accent-blue);margin-left:70px;display:grid;grid-template-rows:0fr;transition:grid-template-rows .5s;overflow:hidden}.toc-headings.open{grid-template-rows:1fr}.toc-headings-inner{overflow:hidden;padding:0}.toc-headings.open .toc-headings-inner{padding:2px 0}.toc-headings.collapsed{grid-template-rows:0fr}.toc-heading,.toc-heading:link{display:flex;align-items:center;padding:3px 8px 3px 12px;font-size:.72rem;color:var(--text-secondary);position:relative;text-decoration:none;overflow:visible;cursor:pointer;transition:color .15s,background .15s,padding-left .15s}.toc-heading:visited{color:#8b949e!important}[data-color-mode=light] .toc-heading:visited{color:#59636e!important}.toc-heading-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.toc-heading:hover{color:var(--text-primary)!important;background:var(--bg-hover)}.toc-heading-h3{padding-left:24px;font-size:.68rem}.toc-heading.active{color:var(--accent-blue)!important;font-weight:700;background:rgba(56,139,253,.12);border-left:2px solid var(--accent-blue)}[data-color-mode=light] .toc-heading.active{color:#0550ae!important;background:rgba(9,105,218,.1)}.toc-heading-copy{visibility:hidden;background:0 0;border:none;color:inherit;cursor:pointer;font-size:.6rem;padding:1px 3px;border-radius:3px;flex-shrink:0;margin-left:auto;opacity:0}.toc-heading.copy-shown .toc-heading-copy,.toc-heading:hover .toc-heading-copy{visibility:visible;opacity:.5}.toc-heading.copy-shown .toc-heading-copy:focus-visible,.toc-heading.copy-shown .toc-heading-copy:hover,.toc-heading:hover .toc-heading-copy:focus-visible,.toc-heading:hover .toc-heading-copy:hover{opacity:1!important;background:var(--bg-hover)}#toc-tooltip{position:fixed;transform:translateY(-50%);background:var(--bg-primary);color:var(--accent-blue);border:1px solid var(--accent-blue);padding:6px 12px;border-radius:6px;font-size:.78rem;font-family:var(--font-mono);max-width:350px;white-space:normal;pointer-events:none;opacity:0;z-index:200;box-shadow:0 4px 16px rgba(0,0,0,.4);transition:opacity .2s}#toc-tooltip.visible{opacity:1}.toc-tooltip-title{font-weight:600}.toc-tooltip-desc{color:var(--text-secondary);font-size:.72rem;margin-top:3px;opacity:.85}.sidebar-footer{padding:12px 16px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:8px}.cta-hire-me{display:block;width:100%;text-align:center;padding:8px 16px;background:var(--accent-green);color:#000;font-family:var(--font-mono);font-size:.8rem;font-weight:600;text-decoration:none;border-radius:6px;transition:background .2s,transform .15s;letter-spacing:.03em}.cta-hire-me:hover{filter:brightness(1.15);transform:translateY(-1px)}[data-color-mode=light] .cta-hire-me{color:#fff}[data-color-mode=dark][data-color-theme=highcontrast] .cta-hire-me{color:#000;background:#fff;border:2px solid #fff}[data-color-mode=light][data-color-theme=highcontrast] .cta-hire-me{color:#000;background:#fff;border:2px solid #000}.cta-hire-wrap{position:relative;width:100%}.cta-hire-tooltip{position:absolute;bottom:calc(100% + 10px);left:50%;transform:translateX(-50%) translateY(6px);background:var(--bg-primary);border:1px solid var(--accent-green);border-radius:8px;padding:10px 16px;white-space:nowrap;text-align:center;font-family:var(--font-mono);font-size:.78rem;color:var(--text-primary);box-shadow:0 6px 24px rgba(0,0,0,.25);opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;z-index:300}.cta-hire-tooltip.visible{opacity:1;transform:translateX(-50%) translateY(0);pointer-events:auto}.cta-hire-tooltip strong{display:block;color:var(--accent-green);font-size:.82rem;margin-bottom:2px}.cta-hire-tooltip span{display:block;color:var(--text-secondary);font-size:.72rem}.cta-hire-tooltip-arrow{position:absolute;bottom:-6px;left:50%;transform:translateX(-50%) rotate(45deg);width:10px;height:10px;background:var(--bg-primary);border-right:1px solid var(--accent-green);border-bottom:1px solid var(--accent-green)}#accent-palette{position:absolute;top:calc(var(--topbar-height) + 4px);right:60px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;padding:10px 12px;z-index:200;box-shadow:0 8px 24px rgba(0,0,0,.4);display:none;flex-direction:column;gap:8px;font-family:var(--font-mono);font-size:.72rem}#accent-palette.open{display:flex}.palette-title{color:var(--text-muted);font-size:.68rem;text-transform:uppercase;letter-spacing:.06em}.palette-title::after{content:'\2588';animation:1s step-end infinite blink;margin-left:4px;font-size:.6rem}.palette-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.palette-swatch{width:28px;height:28px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:border-color var(--transition-fast),transform var(--transition-fast);padding:0;outline:0}.palette-swatch:focus-visible,.palette-swatch:hover{transform:scale(1.2);border-color:var(--text-primary)}.palette-swatch.active{border-color:var(--text-primary);box-shadow:0 0 0 2px var(--bg-primary),0 0 0 4px var(--text-primary)}.default-swatch{background:conic-gradient(#3fb950 0deg,#58a6ff 60deg,#bc8cff 120deg,#d29922 180deg,#f85149 240deg,#f778ba 300deg,#3fb950 360deg)}.palette-hc-notice{color:var(--text-muted);font-size:.62rem;font-style:italic;display:none}.hire-modal-content{max-width:480px}.hire-form{display:flex;flex-direction:column;gap:14px}.hire-label{font-size:.82rem;color:var(--text-secondary)}.hire-input,.hire-textarea{width:100%;margin-top:4px;padding:8px 12px;background:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border);border-radius:6px;font-size:.85rem;outline:0;box-sizing:border-box}.hire-input{font-family:var(--font-mono)}.hire-textarea{font-family:var(--font-sans);resize:vertical;line-height:1.5}.hire-input:focus,.hire-textarea:focus{border-color:var(--accent-blue)}.hire-submit{padding:10px 20px;background:#166534;color:#fff;border:none;border-radius:6px;font-family:var(--font-mono);font-size:.85rem;font-weight:600;cursor:pointer;transition:background .15s}.hire-submit:hover{background:#15803d}.sidebar-social{display:flex;gap:12px}.social-link{display:flex;align-items:center;gap:5px;font-size:.75rem;color:var(--text-secondary);text-decoration:none;transition:color .15s}.social-link:hover{color:var(--accent-blue)}.social-link svg{flex-shrink:0}.sidebar-actions{display:flex;align-items:center;gap:6px}.contact-link{font-size:.8rem;color:var(--text-secondary);cursor:pointer;padding:4px 0;transition:color .15s}.contact-link:hover{color:var(--accent-blue)}.contact-copy{opacity:0;visibility:hidden;background:0 0;border:none;cursor:pointer;font-size:.7rem;margin-left:6px;vertical-align:middle;transition:opacity .15s,visibility .15s}.sidebar-footer:focus-within .contact-copy,.sidebar-footer:hover .contact-copy{opacity:.6;visibility:visible}.contact-copy:focus-visible,.contact-copy:hover{opacity:1!important;visibility:visible}#content{flex:1;overflow-y:auto;overflow-x:hidden;padding:32px 48px;scrollbar-width:auto;scrollbar-color:var(--text-muted) var(--bg-secondary);position:relative}#code-watermark{white-space:pre;font-family:var(--font-mono);font-size:.72rem;line-height:1.8;color:var(--text-muted);opacity:.07;position:fixed;top:var(--topbar-height);left:var(--sidebar-width);right:0;bottom:0;padding:40px 60px;pointer-events:none;z-index:0;overflow:hidden;transform:translateY(calc(var(--scroll-y,0) * -.15));will-change:transform}[data-color-mode=light] #code-watermark{opacity:.05}[data-color-theme=highcontrast] #code-watermark{opacity:.03}#loading{color:var(--text-muted);font-size:.9rem}.cursor.blink{animation:1s step-end infinite blink}@keyframes blink{50%{opacity:0}}#markdown-output{padding:10px;max-width:1200px;font-family:var(--font-sans);line-height:1.7}#markdown-output h1{font-family:var(--font-mono);font-size:2rem;color:var(--accent-green);margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid var(--border)}#markdown-output h1::before{content:'# ';color:var(--text-muted);font-weight:400}#markdown-output h2{font-family:var(--font-mono);font-size:1.4rem;color:var(--accent-blue);margin-top:32px;margin-bottom:12px}#markdown-output h2::before{content:'## ';color:var(--text-muted);font-weight:400}#markdown-output h3{padding:5px;font-family:var(--font-mono);font-size:1.1rem;color:var(--accent-purple);margin-top:24px;margin-bottom:8px}#markdown-output h3::before{content:'### ';color:var(--text-muted);font-weight:400}.heading-link{color:inherit;text-decoration:none;padding:5px}.heading-link:hover{text-decoration:underline;text-decoration-style:dotted;text-underline-offset:4px}.heading-copy{opacity:0;visibility:hidden;background:0 0;border:none;cursor:pointer;font-size:.6em;margin-left:.4em;padding:5px;vertical-align:middle;transition:opacity .15s,visibility .15s}#markdown-output h1:focus-within .heading-copy,#markdown-output h1:hover .heading-copy,#markdown-output h2:focus-within .heading-copy,#markdown-output h2:hover .heading-copy,#markdown-output h3:focus-within .heading-copy,#markdown-output h3:hover .heading-copy,#markdown-output h4:focus-within .heading-copy,#markdown-output h4:hover .heading-copy{opacity:.5;visibility:visible}.heading-copy:focus-visible,.heading-copy:hover{opacity:1!important;visibility:visible}#markdown-output p{margin-bottom:16px;color:var(--text-primary)}#markdown-output a{color:var(--accent-blue);text-decoration:underline;text-decoration-style:dotted;text-underline-offset:3px}#markdown-output a:hover{text-decoration-style:solid}#markdown-output strong{color:var(--accent-orange);font-weight:600}#markdown-output a strong,#markdown-output a>strong{color:inherit!important}#markdown-output em{color:var(--text-secondary);font-style:italic}#markdown-output ol,#markdown-output ul{margin-bottom:16px;padding-left:24px}#markdown-output li{margin-bottom:6px;color:var(--text-primary)}#markdown-output li::marker{color:var(--accent-green)}#markdown-output blockquote{border-left:3px solid var(--accent-green);padding:8px 16px;margin:16px 0;background:var(--bg-secondary);border-radius:0 4px 4px 0;color:var(--text-secondary);font-style:italic}#markdown-output code{font-family:var(--font-mono);background:var(--bg-tertiary);padding:2px 6px;border-radius:3px;font-size:.88em;color:var(--accent-cyan)}.code-block{position:relative}.code-copy{position:absolute;top:8px;right:8px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:4px;cursor:pointer;font-size:.75rem;padding:2px 6px;opacity:0;visibility:hidden;transition:opacity .15s,visibility .15s;z-index:1}.code-block:focus-within .code-copy,.code-block:hover .code-copy{opacity:.7;visibility:visible}.code-copy:focus-visible,.code-copy:hover{opacity:1!important;visibility:visible}#markdown-output pre{background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;padding:16px;margin:16px 0;overflow-x:auto}#markdown-output pre code{background:0 0;padding:0;font-size:.85rem;color:var(--text-primary)}#markdown-output hr{border:none;border-top:1px solid var(--border);margin:32px 0}#markdown-output table{width:100%;border-collapse:collapse;margin:16px 0;font-size:.9rem}#markdown-output th{background:var(--bg-tertiary);color:var(--text-primary);text-align:left;padding:10px 12px;border:1px solid var(--border);font-family:var(--font-mono);font-size:.82rem;text-transform:uppercase;letter-spacing:.05em}#markdown-output td{padding:8px 12px;border:1px solid var(--border)}#markdown-output tr:nth-child(2n){background:var(--bg-secondary)}.tech-badge{display:inline-block;padding:2px 8px;margin:2px 4px 2px 0;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:12px;font-family:var(--font-mono);font-size:.75rem;color:var(--accent-cyan)}.mermaid{background:var(--bg-secondary);border-radius:6px;padding:16px;margin:16px 0;text-align:center;position:relative}.mermaid-container{display:block;width:100%;max-height:500px;overflow:auto}.mermaid-container svg{display:block;max-width:100%;height:auto;margin:0 auto}.mermaid-container picture{display:block;width:100%}.mermaid-static{display:block;max-width:100%;max-height:480px;width:auto;height:auto;margin:0 auto;cursor:pointer;object-fit:contain}.mermaid-container svg:hover,.mermaid-static:hover{opacity:.8;transition:opacity .2s}.mermaid-overlay{position:fixed;top:var(--topbar-height);left:0;width:100vw;height:calc(100vh - var(--topbar-height));background:var(--overlay-bg);z-index:1000;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.mermaid-overlay-content{position:relative;width:95vw;height:95vh;display:flex;flex-direction:column}.mermaid-controls{position:absolute;top:10px;right:10px;display:flex;gap:8px;z-index:1001}.mermaid-controls button{background:var(--bg-secondary);border:2px solid var(--border);color:var(--text-secondary);border-radius:6px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:18px;font-weight:700;transition:.2s}.mermaid-controls button:focus-visible,.mermaid-controls button:hover{background:var(--bg-tertiary);color:var(--text-primary)}.mermaid-zoom-in:hover{color:var(--accent-green)}.mermaid-zoom-out:hover{color:var(--accent-orange)}.mermaid-reset:hover{color:var(--accent-blue)}.mermaid-close:hover{color:var(--accent-red)}.mermaid-full-diagram{flex:1;background:var(--bg-primary);border-radius:8px;overflow:hidden;position:relative}.mermaid-zoom-container{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;cursor:grab;-webkit-user-select:none;user-select:none;transition:none}.mermaid-zoom-container:active{cursor:grabbing}.mermaid-zoom-container svg{display:block;max-width:none;max-height:none}#sidebar-backdrop{display:none;position:fixed;top:var(--topbar-height);left:0;right:0;bottom:0;background:rgba(0,0,0,.6);z-index:49;opacity:0;transition:opacity .3s}#sidebar-backdrop.visible{opacity:1}@media (max-width:768px){#sidebar-toggle{display:block}#sidebar-resize-handle{display:none}#btn-color-theme,.os-selector{display:none!important}#sidebar{position:fixed;left:-100%;top:var(--topbar-height);height:calc(100vh - var(--topbar-height));z-index:50;transition:left .3s;box-shadow:4px 0 20px rgba(0,0,0,.5)}#sidebar.open{left:0}#sidebar-backdrop.visible,#sidebar.open~#sidebar-backdrop{display:block}#content{padding:24px 16px}#code-watermark{left:0}#markdown-output h1{font-size:1.5rem}}@media (max-width:480px){html{font-size:14px}#content{padding:16px 12px}}::-webkit-scrollbar{width:12px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--text-muted);border-radius:6px;border:3px solid var(--bg-secondary)}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}[data-color-mode=light] .toc-item.active{background:rgba(9,105,218,.06);color:#0550ae}[data-color-mode=light] #markdown-output pre{background:#f6f8fa;border-color:#d0d7de}[data-color-mode=light] #markdown-output code{color:#0550ae}[data-color-mode=light] #markdown-output blockquote{background:#f6f8fa}[data-color-mode=light] .mermaid{background:#fff}[data-color-mode=light] .mermaid-full-diagram{background:#fff;border:1px solid #000}.search-modal{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);z-index:1000;align-items:flex-start;justify-content:center;padding-top:15vh}.search-modal.open{display:flex}.search-modal-content{width:90%;max-width:560px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:10px;overflow:hidden;box-shadow:0 16px 48px rgba(0,0,0,.4)}.search-input-wrap{display:flex;align-items:center;padding:12px 16px;border-bottom:1px solid var(--border);gap:10px}.search-icon{font-size:1rem;opacity:.6}#search-input{flex:1;background:0 0;border:none;outline:0;color:var(--text-primary);font-family:var(--font-mono);font-size:.95rem}#search-input::placeholder{color:var(--text-muted)}.search-kbd{font-family:var(--font-mono);font-size:.65rem;color:var(--text-muted);background:var(--bg-tertiary);border:1px solid var(--border);padding:2px 6px;border-radius:3px}.search-results{max-height:50vh;overflow-y:auto}.search-result-item{display:flex;align-items:center;padding:10px 16px;cursor:pointer;transition:background .1s;gap:10px;border-bottom:1px solid var(--border)}.search-result-item:last-child{border-bottom:none}.search-result-item.active,.search-result-item:hover{background:var(--bg-hover)}.search-result-section{font-size:.65rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;min-width:70px}.search-result-title{flex:1;font-size:.85rem;color:var(--text-primary)}.search-result-main{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.search-result-date{font-size:.65rem;color:var(--text-muted);white-space:nowrap;margin-left:auto}.search-result-tags{display:flex;gap:4px;flex-wrap:wrap;margin-top:2px}.search-tag{font-size:.6rem;background:var(--bg-tertiary);color:var(--accent-cyan);padding:1px 5px;border-radius:8px;border:1px solid var(--border)}.search-result-title mark{background:rgba(88,166,255,.25);color:var(--accent-blue);border-radius:2px;padding:0 1px}.search-no-results{padding:24px 16px;text-align:center;color:var(--text-muted);font-size:.85rem}@media print{#sidebar,#sidebar-backdrop,#sidebar-toggle,#terminal-bar,.search-modal{display:none!important}#content{padding:0;overflow:visible}body{background:#fff;color:#000;overflow:visible;height:auto}#markdown-output h1,#markdown-output h2,#markdown-output h3{color:#000}#markdown-output h1::before,#markdown-output h2::before,#markdown-output h3::before{display:none}}.heading-anchor-target{position:absolute;outline:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.help-btn{background:0 0;border:none;color:var(--text-muted);cursor:pointer;font-size:.72rem;padding:2px 6px;margin-left:auto;border-radius:4px;transition:color .15s,background .15s}.help-btn:focus,.help-btn:hover{color:var(--text-primary);background:var(--bg-hover)}.cv-btn-wrap{position:relative;display:inline-block}.cv-tray{position:absolute;bottom:calc(100% + 10px);left:50%;transform:translateX(-50%) translateY(6px);background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;padding:4px;white-space:nowrap;font-family:var(--font-mono);font-size:.75rem;box-shadow:0 4px 16px rgba(0,0,0,.3);opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:300}.cv-tray.open{opacity:1;transform:translateX(-50%) translateY(0);pointer-events:auto}.cv-tray-arrow{position:absolute;bottom:-5px;left:50%;transform:translateX(-50%) rotate(45deg);width:8px;height:8px;background:var(--bg-secondary);border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.cv-tray-item{display:block;width:100%;padding:5px 12px;border:none;background:0 0;color:var(--text-secondary);text-decoration:none;text-align:left;font:inherit;cursor:pointer;border-radius:4px;transition:color .15s,background .15s}.cv-tray-item:focus-visible,.cv-tray-item:hover{color:var(--accent-green);background:var(--bg-hover)}.cv-modal .cv-modal-content{max-width:80vw;width:80vw;height:80vh;max-height:80vh;display:flex;flex-direction:column}.cv-modal-body{flex:1;padding:0;overflow:hidden}.cv-modal-body iframe{width:100%;height:100%;border:none;background:#fff}.help-modal{display:flex;position:fixed;top:0;left:0;width:100vw;height:100vh;background:var(--overlay-bg);z-index:100;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s}.help-modal.open{opacity:1;visibility:visible}.help-modal-content{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;max-width:520px;width:90%;max-height:80vh;overflow-y:auto;box-shadow:0 8px 32px rgba(0,0,0,.4);transform:scale(.9) translateY(20px);transition:transform .25s}.help-modal.open .help-modal-content{transform:scale(1) translateY(0)}.help-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border)}.help-modal-header h2{margin:0;font-size:1rem;font-family:var(--font-mono);color:var(--text-primary)}.help-modal-close{background:0 0;border:none;color:var(--text-secondary);font-size:1.4rem;cursor:pointer;padding:4px 8px;border-radius:4px;line-height:1}.help-modal-close:focus-visible,.help-modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.help-modal-body{padding:16px 20px}.help-modal-body h3{font-size:.85rem;font-family:var(--font-mono);color:var(--accent-blue);margin:16px 0 8px}.help-modal-body table{width:100%;border-collapse:collapse;font-size:.82rem}.help-modal-body td{padding:6px 8px;border-bottom:1px solid var(--border);color:var(--text-secondary)}.help-modal-body td:first-child{white-space:nowrap;color:var(--text-primary);width:40%}.help-modal-body kbd{display:inline-block;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:3px;padding:1px 5px;font-family:var(--font-mono);font-size:.78rem;color:var(--text-primary)}#markdown-output h4{margin-bottom:10px}@keyframes pulse-glow{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--accent-green) 60%,transparent)}70%{box-shadow:0 0 0 10px color-mix(in srgb,var(--accent-green) 0,transparent)}100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--accent-green) 0,transparent)}}.hire-pulse,.tour-pulse{animation:1.5s ease-in-out infinite pulse-glow;border-radius:4px}.tour-btn-wrap{position:relative;display:inline-block}.tour-btn-tooltip{position:fixed;transform:translateX(-50%) translateY(-100%) translateY(-6px);background:var(--bg-primary);border:1px solid var(--accent-green);border-radius:8px;padding:10px 16px;white-space:nowrap;text-align:center;font-family:var(--font-mono);font-size:.78rem;color:var(--text-primary);box-shadow:0 6px 24px rgba(0,0,0,.25);opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;z-index:9000}.tour-btn-tooltip.visible{opacity:1;transform:translateX(-50%) translateY(-100%);pointer-events:auto}.tour-btn-tooltip strong{display:block;color:var(--accent-green);font-size:.82rem;margin-bottom:2px}.tour-btn-tooltip span{display:block;color:var(--text-secondary);font-size:.72rem}.tour-btn-tooltip-arrow{position:absolute;bottom:-6px;left:50%;transform:translateX(-50%) rotate(45deg);width:10px;height:10px;background:var(--bg-primary);border-right:1px solid var(--accent-green);border-bottom:1px solid var(--accent-green)}#tour-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:2000;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}#tour-overlay.open{opacity:1;visibility:visible}.tour-spotlight{position:fixed;border-radius:8px;box-shadow:0 0 0 9999px rgba(0,0,0,.7);transition:top .35s,left .35s,width .35s,height .35s;z-index:2001;pointer-events:none}[data-color-mode=light] .tour-spotlight{box-shadow:0 0 0 9999px rgba(0,0,0,.5)}[data-color-theme=highcontrast] .tour-spotlight{border:2px solid var(--accent-green)}.tour-tooltip{position:fixed;z-index:2002;width:320px;max-width:calc(100vw - 32px);background:var(--bg-secondary);border:2px solid var(--accent-green);border-radius:10px;box-shadow:0 8px 32px rgba(0,0,0,.4);font-family:var(--font-mono);transition:top .35s,left .35s,transform .35s}@keyframes tour-tooltip-in{from{opacity:0;transform:scale(.92) translateY(8px)}to{opacity:1}}.tour-tooltip-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--border)}.tour-tooltip-step{font-size:.65rem;color:var(--text-muted);letter-spacing:.05em;text-transform:uppercase}.tour-tooltip-close{background:0 0;border:none;color:var(--text-secondary);font-size:1.2rem;cursor:pointer;padding:2px 6px;border-radius:4px;line-height:1}.tour-tooltip-close:focus-visible,.tour-tooltip-close:hover{background:var(--bg-hover);color:var(--text-primary)}.tour-tooltip-title{margin:0;padding:10px 14px 4px;font-size:.9rem;color:var(--accent-green);font-weight:600}.tour-tooltip-desc{margin:0;padding:0 14px 10px;font-size:.78rem;color:var(--text-secondary);line-height:1.5}.tour-tooltip-footer{display:flex;align-items:center;justify-content:space-between;padding:8px 14px;border-top:1px solid var(--border);gap:8px}.tour-progress{display:flex;gap:5px}.tour-dot{width:7px;height:7px;border-radius:50%;background:var(--bg-hover);transition:background .2s}.tour-dot.active{background:var(--accent-green)}.tour-dot.completed{background:var(--text-muted)}.tour-tooltip-nav{display:flex;gap:6px}.tour-btn{background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-primary);font-family:var(--font-mono);font-size:.72rem;padding:5px 12px;border-radius:5px;cursor:pointer;transition:background .15s,border-color .15s}.tour-btn:focus-visible,.tour-btn:hover{background:var(--bg-hover);border-color:var(--accent-green)}.tour-btn-next{background:var(--accent-green);color:#000;border-color:var(--accent-green);font-weight:600}.tour-btn-next:focus-visible,.tour-btn-next:hover{filter:brightness(1.15)}[data-color-mode=light] .tour-btn-next{color:#fff}body.tour-active{overflow:hidden}@media (max-width:768px){.tour-tooltip{width:calc(100vw - 32px);max-width:none}}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*!
  Theme: GitHub Dark
  Description: Dark theme as seen on github.com
  Author: github.com
  Maintainer: @Hirse
  Updated: 2021-05-15

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