.blog-section{max-width:clamp(800px,85vw,1200px);margin:0 auto;padding:2rem}.blog-section h2{font-size:2.5rem;color:#333;text-align:center;margin-bottom:3rem;font-weight:700}.blog-post-content h1,.blog-post-content h2,.blog-post-content h3{color:#2c3e50;margin:2rem 0 1rem}.blog-post-content h2{counter-increment:h2counter;counter-reset:h3counter}.blog-post-content h3{counter-increment:h3counter;counter-reset:h4counter}.blog-post-content h4{counter-increment:h4counter}.blog-post-content h2:not(.no-auto-numbering):before{content:counter(h2counter) ". "}.blog-post-content h3:before{content:counter(h2counter) "." counter(h3counter) ". "}.blog-post-content h4:before{content:counter(h2counter) "." counter(h3counter) "." counter(h4counter) ". "}.blog-post-content.no-header-numbering h2:before,.blog-post-content.no-header-numbering h3:before,.blog-post-content.no-header-numbering h4:before{content:none}html[data-theme=dark] .blog-section h2,html[data-theme=dark] .blog-post-content h1,html[data-theme=dark] .blog-post-content h2,html[data-theme=dark] .blog-post-content h3{color:#e0e0e0}.blog-posts{display:flex;flex-direction:column;gap:2rem}.blog-post-preview{background:#fff;border-radius:12px;padding:2rem;box-shadow:0 2px 10px #0000000d;transition:transform .3s ease,box-shadow .3s ease;border:1px solid #e0e0e0}.blog-post-preview:hover{transform:translateY(-5px);box-shadow:0 4px 20px #0000001a}html[data-theme=dark] .blog-post-preview{background:#2d2d2d;border:1px solid #555}.blog-post-header{margin-bottom:1rem}.blog-post-title{margin:0 0 .5rem;font-size:1.5rem;font-weight:600}.blog-post-title a{color:#2c3e50;text-decoration:none;transition:color .3s ease}.blog-post-content a{color:#3498db;text-decoration:none}.blog-post-content a:hover{text-decoration:underline}.blog-post-title a:hover{color:#3498db}.blog-post-content .table-of-contents a{color:#2c3e50;text-decoration:none;font-weight:500;display:inline;transition:color .3s ease}html[data-theme=dark] .blog-post-title a{color:#e0e0e0}html[data-theme=dark] .blog-post-content a{color:#74b9ff}.blog-post-content .table-of-contents a:hover{color:#3498db;text-decoration:none}.blog-post-content .header-anchor{color:#2c3e50;text-decoration:none}.blog-post-content .header-anchor:hover{color:#3498db;text-decoration:underline}html[data-theme=dark] .blog-post-content .header-anchor{color:#e0e0e0}html[data-theme=dark] .blog-post-content .header-anchor:hover,html[data-theme=dark] .blog-post-title a:hover{color:#74b9ff}.blog-post-date{color:#666;font-size:.9rem;font-style:italic}html[data-theme=dark] .blog-post-date{color:#b0b0b0}.blog-post-excerpt{color:#555;line-height:1.6;margin:1rem 0}html[data-theme=dark] .blog-post-excerpt{color:#d0d0d0}.blog-post-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0}.blog-tag{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:.3rem .8rem;border-radius:20px;font-size:.8rem;font-weight:500}.blog-post-footer{text-align:right;margin-top:1.5rem}.read-more{color:#3498db;text-decoration:none;font-weight:500;transition:color .3s ease}.read-more:hover{color:#2980b9}html[data-theme=dark] .read-more{color:#74b9ff}html[data-theme=dark] .read-more:hover{color:#0984e3}.blog-post-body{background:var(--body-bg);min-height:100vh;font-family:Inter,sans-serif;font-optical-sizing:auto;font-feature-settings:"liga" 1,"calt" 1}.blog-nav-bar{background:transparent;padding:1rem 0;border-bottom:1px solid #e0e0e0}html[data-theme=dark] .blog-nav-bar{border-bottom-color:#444}.blog-nav-container{max-width:1200px;margin:0 auto;padding:0 2rem;display:flex;justify-content:space-between;align-items:center}.blog-nav-brand{color:#2c3e50;text-decoration:none;font-size:1.25rem;font-weight:700;transition:color .3s ease}.blog-nav-brand:hover{color:#3498db}html[data-theme=dark] .blog-nav-brand{color:#e0e0e0}html[data-theme=dark] .blog-nav-brand:hover{color:#74b9ff}.blog-nav-links{display:flex;gap:2rem;align-items:center}.blog-nav-link{color:#333;text-decoration:none;font-weight:500;font-size:1rem;transition:color .3s ease;position:relative}.blog-nav-link:hover{color:#3498db}.blog-nav-link:after{content:"";position:absolute;bottom:-4px;left:0;width:0;height:2px;background:#3498db;transition:width .3s ease}.blog-nav-link:hover:after{width:100%}html[data-theme=dark] .blog-nav-link{color:#e0e0e0}html[data-theme=dark] .blog-nav-link:hover{color:#74b9ff}html[data-theme=dark] .blog-nav-link:after{background:#74b9ff}@media (width <= 768px){.blog-nav-container{padding:0 1rem}.blog-nav-brand{font-size:1.1rem}.blog-nav-links{gap:1rem}.blog-nav-link{font-size:.9rem}}.blog-post-main{max-width:clamp(800px,85vw,1200px);margin:0 auto;padding:2rem}.blog-post{background:transparent;padding:0}html[data-theme=dark] .blog-post{background:transparent;color:#e0e0e0}.blog-post-full-header{text-align:center;margin-bottom:3rem;padding-bottom:1rem;border-bottom:2px solid #eee}html[data-theme=dark] .blog-post-full-header{border-bottom-color:#555}.project-euler-body .blog-post-full-header{padding-bottom:.5rem}.blog-post-breadcrumb{margin-bottom:2rem;font-size:.9rem}.blog-post-breadcrumb a{color:#3498db;text-decoration:none;transition:color .3s ease}.blog-post-breadcrumb a:hover{color:#2980b9;text-decoration:underline}.breadcrumb-separator{margin:0 .75rem;color:#999}html[data-theme=dark] .blog-post-breadcrumb a{color:#74b9ff}html[data-theme=dark] .blog-post-breadcrumb a:hover{color:#0984e3}html[data-theme=dark] .breadcrumb-separator{color:#777}.blog-post-full-title{font-size:2.5rem;color:#2c3e50;margin-bottom:1rem;font-weight:700}html[data-theme=dark] .blog-post-full-title{color:#e0e0e0}.blog-post-subtitle{font-size:1.5rem;color:#666;margin-bottom:1.5rem;font-weight:400;font-style:italic}html[data-theme=dark] .blog-post-subtitle{color:#b0b0b0}.blog-post-meta{display:flex;justify-content:center;align-items:center;gap:2rem;flex-wrap:wrap}.blog-post-full-date{color:#999;font-style:italic;font-size:.85rem;font-weight:400}html[data-theme=dark] .blog-post-full-date{color:#777}.blog-post-full-tags{display:flex;gap:.5rem;flex-wrap:wrap}.blog-post-content{line-height:1.8;color:#444;counter-reset:h2counter}html[data-theme=dark] .blog-post-content{color:#d0d0d0}.blog-post-content p{margin-bottom:1.5rem}.blog-post-content ul,.blog-post-content ol{margin-bottom:1.5rem;padding-left:2rem}.blog-post-content li{margin-bottom:.5rem}.blog-post-content blockquote{border:2px solid #3498db;border-radius:8px;margin:1.5rem 0;padding:1rem 1.5rem;background:#3498db1a}html[data-theme=dark] .blog-post-content blockquote{background:#74b9ff1a}.blog-post-content blockquote>*:last-child{margin-bottom:0}.blog-post-content code:not([class*=language-]){background:#f8f9fa;padding:.2rem .4rem;border-radius:4px;font-family:Fira Code,monospace;font-size:.9em;font-feature-settings:"liga" 1,"calt" 1;font-variant-ligatures:contextual}.blog-post-content pre[class*=language-]{margin:1.5rem 0;border-radius:8px;overflow-x:auto;font-size:.9em;box-shadow:0 2px 8px #0000001a}.blog-post-content pre[class*=language-] code,.blog-post-content code[class*=language-]{font-family:Fira Code,monospace;font-feature-settings:"liga" 1,"calt" 1;font-variant-ligatures:contextual}.blog-post-content pre.line-numbers{padding-left:3.8em;counter-reset:linenumber}.blog-post-content pre.line-numbers>code{position:relative;white-space:inherit}html[data-theme=dark] .blog-post-content code:not([class*=language-]){background:#2d3748;color:#e2e8f0}.blog-post-content .line-numbers .line-numbers-rows{position:absolute;pointer-events:none;top:0;font-size:100%;left:-3.8em;width:3em;letter-spacing:-1px;border-right:1px solid #999;-webkit-user-select:none;user-select:none}.blog-post-content .line-numbers-rows>span{pointer-events:none;display:block;counter-increment:linenumber}.blog-post-content .line-numbers-rows>span:before{content:counter(linenumber);color:#999;display:block;padding-right:.8em;text-align:right}.blog-post-content .toolbar{position:relative;top:0;right:0;background:transparent;border:none}.blog-post-content .toolbar-item{display:inline-block}.blog-post-content .toolbar-item button{background:#e0e0e033;border:none;border-radius:4px;cursor:pointer;display:inline-block;font-size:.8em;padding:.2em .5em;color:inherit;opacity:.7;transition:opacity .2s}.blog-post-content .toolbar-item button:hover{opacity:1}html[data-theme=dark] .blog-post-content .toolbar-item button{background:#ffffff1a}.blog-post-full-footer{margin-top:3rem;padding-top:2rem;border-top:2px solid #eee;text-align:center}html[data-theme=dark] .blog-post-full-footer{border-top-color:#555}.return-home{color:#3498db;text-decoration:none;font-weight:500;transition:color .3s ease}.return-home:hover{color:#2980b9}html[data-theme=dark] .return-home{color:#74b9ff}html[data-theme=dark] .return-home:hover{color:#0984e3}.blog-post-content figure{margin:2rem 0;text-align:center}.blog-post-content figure img{max-width:100%;height:auto;display:block;margin:0 auto}.blog-post-content figure.centered{display:flex;flex-direction:column;align-items:center}.blog-post-content figure.width-50{max-width:50%;margin-left:auto;margin-right:auto}.blog-post-content figure.width-80{max-width:80%;margin-left:auto;margin-right:auto}.blog-post-content figure.width-120{width:120%;max-width:none;margin-left:-10%;margin-right:-10%}.blog-post-content figcaption{margin-top:.5rem;font-size:.9rem;color:#666;font-style:italic;line-height:1.4;text-align:center;max-width:100%}html[data-theme=dark] .blog-post-content figcaption{color:#b0b0b0}.blog-post-content .table-of-contents{margin:2rem 0;counter-reset:toc1counter}.blog-post-content .table-of-contents ul{list-style-type:none;margin:0;padding-left:2rem}.blog-post-content .table-of-contents>ul{padding-left:0}.blog-post-content .table-of-contents li{margin-bottom:.4rem;line-height:1.4;counter-increment:toc1counter}.blog-post-content .footnotes li{margin-bottom:.8rem}.blog-post-content .table-of-contents>ul>li>ul{counter-reset:toc2counter;margin-top:0;margin-bottom:0;padding-left:2rem}.blog-post-content .table-of-contents>ul>li>ul>li{counter-increment:toc2counter;counter-reset:toc3counter}.blog-post-content .table-of-contents>ul>li>ul>li>ul>li{counter-increment:toc3counter}.blog-post-content .table-of-contents>ul>li:before{content:counter(toc1counter) ". ";display:inline}.blog-post-content .table-of-contents>ul>li>ul>li:before{content:counter(toc1counter) "." counter(toc2counter) ". ";display:inline}.blog-post-content .table-of-contents>ul>li>ul>li>ul>li:before{content:counter(toc1counter) "." counter(toc2counter) "." counter(toc3counter) ". ";display:inline}html[data-theme=dark] .blog-post-content .table-of-contents a{color:#e0e0e0}html[data-theme=dark] .blog-post-content .table-of-contents a:hover{color:#74b9ff}.blog-post-content .footnotes-sep{margin:3rem 0 2rem;border:none;border-top:2px solid #eee}html[data-theme=dark] .blog-post-content .footnotes-sep{border-top-color:#444}.blog-post-content .footnotes{margin-top:2rem;font-size:.9rem;line-height:1.6}.blog-post-content .footnotes ol{padding-left:1.5rem}.blog-post-content .footnote-ref{color:#3498db;text-decoration:none;font-size:.8em;vertical-align:super;margin:0 .1em}.blog-post-content .footnote-ref:hover{text-decoration:underline}html[data-theme=dark] .blog-post-content .footnote-ref{color:#74b9ff}.blog-post-content .footnote-backref{color:#3498db;text-decoration:none;margin-left:.3rem}.blog-post-content .footnote-backref:hover{text-decoration:underline}html[data-theme=dark] .blog-post-content .footnote-backref{color:#74b9ff}.blog-post-content .collapsible-header{cursor:pointer;-webkit-user-select:none;user-select:none;position:relative;transition:color .2s ease}.blog-post-content .collapsible-header:hover{color:#3498db!important}.blog-post-content .collapsible-header:focus-visible{outline:2px solid #3498db;outline-offset:2px}html[data-theme=dark] .blog-post-content .collapsible-header:hover{color:#74b9ff!important}html[data-theme=dark] .blog-post-content .collapsible-header:focus-visible{outline-color:#74b9ff}.blog-post-content h2.collapsible-header:after,.blog-post-content h3.collapsible-header:after,.blog-post-content h4.collapsible-header:after,.blog-post-content h5.collapsible-header:after,.blog-post-content h6.collapsible-header:after{content:"▼";display:inline-block;position:absolute;left:0;top:50%;transition:transform .3s ease;transform:translateY(-50%) rotate(0);transform-origin:center;width:1em;font-size:.8em;color:#666}html[data-theme=dark] .blog-post-content h2.collapsible-header:after,html[data-theme=dark] .blog-post-content h3.collapsible-header:after,html[data-theme=dark] .blog-post-content h4.collapsible-header:after,html[data-theme=dark] .blog-post-content h5.collapsible-header:after,html[data-theme=dark] .blog-post-content h6.collapsible-header:after{color:#b0b0b0}.blog-post-content h2.collapsible-header,.blog-post-content h3.collapsible-header,.blog-post-content h4.collapsible-header,.blog-post-content h5.collapsible-header,.blog-post-content h6.collapsible-header{position:relative}.blog-post-content h2.collapsible-header:before,.blog-post-content h3.collapsible-header:before,.blog-post-content h4.collapsible-header:before,.blog-post-content h5.collapsible-header:before,.blog-post-content h6.collapsible-header:before{padding-left:1.2em}.blog-post-content h2.collapsible-header.collapsed:after,.blog-post-content h3.collapsible-header.collapsed:after,.blog-post-content h4.collapsible-header.collapsed:after,.blog-post-content h5.collapsible-header.collapsed:after,.blog-post-content h6.collapsible-header.collapsed:after{transform:translateY(-50%) rotate(-90deg)}.blog-post-content .collapsible-content{overflow-x:visible;overflow-y:clip;max-height:none;opacity:1;transition:max-height .3s ease-out,opacity .2s ease-out}.blog-post-content .collapsible-content.collapsed{max-height:0!important;opacity:.3}@media (width <= 768px){.blog-post-content h2.collapsible-header:after,.blog-post-content h3.collapsible-header:after,.blog-post-content h4.collapsible-header:after,.blog-post-content h5.collapsible-header:after,.blog-post-content h6.collapsible-header:after{transform-origin:center}.blog-post-content h2.collapsible-header.collapsed:after,.blog-post-content h3.collapsible-header.collapsed:after,.blog-post-content h4.collapsible-header.collapsed:after,.blog-post-content h5.collapsible-header.collapsed:after,.blog-post-content h6.collapsible-header.collapsed:after{transform:translateY(-50%) rotate(-90deg)}}.euler-problems{margin:2rem 0}.euler-problem{margin-bottom:.5rem}.euler-problem h2{font-size:1.25rem;margin:0}@media (width >= 1440px) and (width < 1920px){.blog-section h2,.blog-post-full-title{font-size:2.75rem}.blog-post-subtitle{font-size:1.65rem}.blog-post-content{font-size:1.05rem}.blog-post-content h1,.blog-post-content h2,.blog-post-content h3{font-size:1.1em}.blog-post-title{font-size:1.65rem}}@media (width >= 1920px){.blog-section,.blog-post-main{max-width:clamp(700px,55vw,1000px)}.blog-section h2,.blog-post-full-title{font-size:2.25rem}.blog-post-subtitle{font-size:1.4rem}.blog-post-content{font-size:1rem}.blog-post-title{font-size:1.4rem}}@media (width <= 768px){.blog-section{padding:1rem}.blog-post-preview{padding:1.5rem}.blog-post-main{padding:1rem}.blog-post{padding:1.5rem}.blog-post-full-title{font-size:2rem}.blog-post-meta{flex-direction:column;gap:1rem}.blog-post-content figure.width-50,.blog-post-content figure.width-80,.blog-post-content figure.width-120{max-width:100%}}.blog-post-external-links{display:flex;justify-content:center;flex-wrap:wrap;gap:.75rem;margin-top:1rem}.external-link{display:flex;align-items:center;gap:.5rem;padding:.4rem .8rem;background:transparent;border:1px solid #ccc;border-radius:20px;color:#555;text-decoration:none;font-size:.85rem;font-weight:500;transition:all .3s ease}.external-link:hover{border-color:#3498db;color:#3498db;transform:translateY(-2px);box-shadow:0 2px 8px #0000001a}.external-link-icon{height:1rem;width:auto}html[data-theme=dark] .external-link{border-color:#555;color:#b0b0b0}html[data-theme=dark] .external-link:hover{border-color:#74b9ff;color:#74b9ff}html[data-theme=dark] .external-link-icon[src*=github]{filter:invert(1)}@media (width <= 768px){.blog-post-external-links{gap:.5rem}.external-link{padding:.35rem .6rem;font-size:.8rem}}.benchmark-reference{display:inline;padding:2px 6px;background:#e8f4fd;border:1px solid #bee5eb;border-radius:4px;color:#0c5460;font-family:Fira Code,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.9em;font-weight:500;cursor:pointer;transition:all .2s ease;text-decoration:none;position:relative}.benchmark-reference:hover{background:#cce7f0;border-color:#86cfda;color:#0a4a54;transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.benchmark-reference:focus{outline:2px solid #06c;outline-offset:2px}html[data-theme=dark] .benchmark-reference{background:#1e3a3f;border-color:#2d5a61;color:#7dd3fc}html[data-theme=dark] .benchmark-reference:hover{background:#2d5a61;border-color:#3d7a81;color:#87e5ff}.benchmark-reference--memory{background:#f3e8ff;border-color:#d8b4fe;color:#6b21a8}.benchmark-reference--memory:hover{background:#e9d5ff;border-color:#c084fc;color:#581c87}html[data-theme=dark] .benchmark-reference--memory{background:#3b1f5c;border-color:#6b21a8;color:#d8b4fe}html[data-theme=dark] .benchmark-reference--memory:hover{background:#4c1d95;border-color:#7c3aed;color:#e9d5ff}.benchmark-tooltip{position:fixed;z-index:1004;background:#fff;border:1px solid #e0e0e0;border-radius:8px;box-shadow:0 8px 32px #0000001a;max-width:90vw;max-height:80vh;opacity:0;visibility:hidden;transform:translateY(-10px);transition:all .3s ease;pointer-events:none}.benchmark-tooltip.visible{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto}.benchmark-tooltip-content{position:relative;padding:1rem;max-height:80vh;overflow:auto}.benchmark-close{position:absolute;top:.75rem;right:.75rem;background:none;border:none;font-size:1.25rem;color:#666;cursor:pointer;padding:.25rem;line-height:1;border-radius:4px;transition:all .2s ease;z-index:1005}.benchmark-close:hover{background:#f0f0f0;color:#333}.benchmark-output{font-family:Fira Code,monospace!important;font-size:.85rem;line-height:1.15;background:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;padding:1rem;margin:0;white-space:pre;overflow-x:auto;color:#333;min-width:400px;letter-spacing:-.05em;font-variant-ligatures:none;font-feature-settings:"liga" 0,"calt" 0;text-rendering:geometricprecision;font-kerning:none}.ansi-red{color:#c82829}.ansi-green{color:#718c00}.ansi-yellow{color:#eab700}.ansi-blue{color:#4271ae}.ansi-magenta{color:#8959a8}.ansi-cyan{color:#3e999f}.ansi-white{color:#1d1f21}.ansi-gray{color:#8e908c}.ansi-bold{font-weight:700}html[data-theme=dark] .ansi-red{color:#ea4335}html[data-theme=dark] .ansi-green{color:#34a853}html[data-theme=dark] .ansi-yellow{color:#fbbc05}html[data-theme=dark] .ansi-blue{color:#4285f4}html[data-theme=dark] .ansi-magenta{color:#a142f4}html[data-theme=dark] .ansi-cyan{color:#24c1e0}html[data-theme=dark] .ansi-white{color:#fff}html[data-theme=dark] .ansi-gray{color:#5f6368}.benchmark-cpu-selector{padding:.5rem 1rem;display:flex;justify-content:center}.benchmark-cpu-dropdown{width:auto;padding:.25rem 1.5rem .25rem .5rem;font-family:Fira Code,monospace;font-size:.85rem;color:#333;background:#f8f9fa;border:1px solid #e0e0e0;border-radius:4px;cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 12 12'%3E%3Cpath fill='%23666' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .5rem center}.benchmark-cpu-dropdown:hover{background-color:#f0f0f0;border-color:#ccc}.benchmark-cpu-dropdown:focus{outline:2px solid #06c;outline-offset:2px}html[data-theme=dark] .benchmark-tooltip{background:#2d2d2d;border-color:#555;box-shadow:0 8px 32px #0000004d}html[data-theme=dark] .benchmark-close{color:#ccc}html[data-theme=dark] .benchmark-close:hover{background:#555;color:#fff}html[data-theme=dark] .benchmark-output{background:#1e1e1e;border-color:#555;color:#e0e0e0}html[data-theme=dark] .benchmark-cpu-dropdown{color:#e0e0e0;background-color:#1e1e1e;border-color:#555;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23ccc' d='M6 8L1 3h10z'/%3E%3C/svg%3E")}html[data-theme=dark] .benchmark-cpu-dropdown:hover{background-color:#333;border-color:#666}@media (width <= 768px){.benchmark-tooltip{max-width:95vw;max-height:90svh}.benchmark-tooltip-content{padding:.75rem;max-height:90svh}.benchmark-output{font-size:.8rem;min-width:unset}}@media (prefers-reduced-motion: no-preference){.benchmark-reference{transition:all .2s cubic-bezier(.4,0,.2,1)}.benchmark-tooltip{transition:all .3s cubic-bezier(.4,0,.2,1)}}@media (prefers-reduced-motion: reduce){.benchmark-reference,.benchmark-tooltip{transition:none}}.floating-toc{position:fixed;top:160px;right:20px;width:280px;max-height:80vh;background:#fff;border:1px solid #ddd;border-radius:8px;box-shadow:0 4px 12px #00000026;z-index:var(--z-floating-toc);overflow:hidden;font-size:14px;font-family:Inter,sans-serif}html[data-theme=dark] .floating-toc{background:#2d2d2d;border:1px solid #555;box-shadow:0 4px 12px #0000004d}.floating-toc-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;font-weight:600;border-bottom:1px solid #ddd;background:#f8f9fa;color:#333}html[data-theme=dark] .floating-toc-header{background:#3a3a3a;border-bottom-color:#555;color:#e0e0e0}.floating-toc-close{background:none;border:none;font-size:18px;cursor:pointer;color:#666;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .2s,color .2s}.floating-toc-close:hover{background:#0000001a;color:#333}html[data-theme=dark] .floating-toc-close{color:#b0b0b0}html[data-theme=dark] .floating-toc-close:hover{background:#ffffff1a;color:#e0e0e0}.floating-toc-content{padding:8px 16px 16px;overflow-y:auto;max-height:calc(80vh - 60px);scroll-behavior:smooth}.floating-toc ol{list-style:none;padding-left:0;margin:0}.floating-toc-section{margin:6px 0}.floating-toc-section.no-subsections{margin:4px 0}.floating-toc-subsection{padding-left:20px;margin-top:4px}.floating-toc-section.collapsed .floating-toc-subsection{display:none}.section-heading{position:relative}.section-heading.no-toggle{cursor:default}.section-heading:not(.no-toggle){cursor:pointer;-webkit-user-select:none;user-select:none}.section-toggle{display:inline-block;font-size:10px;margin-right:6px;transition:transform .2s ease;color:#666}html[data-theme=dark] .section-toggle{color:#b0b0b0}.floating-toc-section.collapsed .section-toggle{transform:rotate(-90deg)}.floating-toc-item{margin:3px 0}.floating-toc a{display:block;padding:4px 0;color:#333;text-decoration:none;line-height:1.4;font-size:14px;transition:color .2s ease;border-radius:4px}.floating-toc-subsection a{font-size:13px;padding:3px 0;color:#666}.floating-toc a:hover,.floating-toc-subsection a:hover{color:#3498db}.floating-toc a.active,.floating-toc-subsection a.active{color:#3498db;font-weight:600}html[data-theme=dark] .floating-toc a{color:#e0e0e0}html[data-theme=dark] .floating-toc-subsection a{color:#b0b0b0}html[data-theme=dark] .floating-toc a:hover,html[data-theme=dark] .floating-toc-subsection a:hover,html[data-theme=dark] .floating-toc a.active,html[data-theme=dark] .floating-toc-subsection a.active{color:#74b9ff}@media (width <= 1500px){.floating-toc{display:none}}.floating-toc-content::-webkit-scrollbar{width:6px}.floating-toc-content::-webkit-scrollbar-track{background:transparent}.floating-toc-content::-webkit-scrollbar-thumb{background:#ccc;border-radius:3px}.floating-toc-content::-webkit-scrollbar-thumb:hover{background:#999}html[data-theme=dark] .floating-toc-content::-webkit-scrollbar-thumb{background:#555}html[data-theme=dark] .floating-toc-content::-webkit-scrollbar-thumb:hover{background:#777}.floating-toc-restore{position:fixed;top:160px;right:30px;z-index:var(--z-floating-toc-restore);background:var(--content-bg);border:2px solid var(--nav-dot-active);border-radius:50%;width:60px;height:60px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.floating-toc-restore:hover{transform:scale(1.1);box-shadow:0 4px 20px #0003}.floating-toc-restore:focus{outline:2px solid var(--nav-dot-active);outline-offset:2px}.floating-toc-restore:focus-visible{outline:2px solid var(--nav-dot-active);outline-offset:2px}.restore-icon{font-size:1.5rem;transition:transform .3s ease}@media (width <= 1500px){.floating-toc-restore{display:none}}@media (width <= 768px){.floating-toc{max-height:80svh}.floating-toc-content{max-height:calc(80svh - 60px)}}.blog-post-content table{border-collapse:collapse;margin:1.5rem auto}.blog-post-content th,.blog-post-content td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid #e0e0e0;transition:border-color .5s ease,color .5s ease}.blog-post-content th{font-weight:600;border-bottom-width:2px}html[data-theme=dark] .blog-post-content th,html[data-theme=dark] .blog-post-content td{border-bottom-color:#4a5568}.blog-post-content .table-wrapper{overflow-x:auto}.citation{color:#06c;text-decoration:none;border-bottom:1px dotted #06c;position:relative;cursor:pointer}.citation:hover{color:#06c;border-bottom-color:#06c}.citation:visited{color:#06c}.citation-missing{color:#c00;background-color:#fee;padding:2px 4px;border-radius:3px;font-size:.9em;font-weight:700}.citation-tooltip{position:absolute;background:#333;color:#fff;padding:8px 12px;border-radius:6px;font-size:.85em;line-height:1.4;max-width:300px;z-index:1001;box-shadow:0 4px 12px #00000026;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease;pointer-events:none;white-space:normal}.citation-tooltip:before{content:"";position:absolute;top:-6px;left:50%;transform:translate(-50%);width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #333}html[data-theme=dark] .citation-tooltip{background:#1f2937;color:#f9fafb}html[data-theme=dark] .citation-tooltip:before{border-bottom-color:#1f2937}.citation:hover .citation-tooltip{opacity:1;visibility:visible}.references{color:#333!important}.references h2{color:#333;font-size:1.5rem;margin-bottom:1.5rem}.reference{margin-bottom:1rem;font-size:.95em;line-height:1.5;color:#333!important}.reference,.reference *{color:#333!important}.reference:target{background:#fffacd;transition:background .5s ease}.ref-author-list{font-weight:600;color:#333!important}.reference i{font-style:italic;color:#333!important}.reference b{font-weight:600;color:#333!important}.reference a{color:#06c;text-decoration:none;margin-right:.5rem}.reference a:hover{text-decoration:underline}.reference a:visited{color:#06c}html[data-theme=dark] .citation,html[data-theme=dark] .citation:hover{color:#66b3ff;border-bottom-color:#66b3ff}html[data-theme=dark] .citation:visited{color:#66b3ff}html[data-theme=dark] .citation-missing{color:#fca5a5;background-color:#431313}html[data-theme=dark] .references{color:#e5e7eb!important}html[data-theme=dark] .references h2{color:#f9fafb}html[data-theme=dark] .reference,html[data-theme=dark] .reference *{color:#e5e7eb!important}html[data-theme=dark] .reference:target{background:#1a365d}html[data-theme=dark] .ref-author-list{color:#f3f4f6!important}html[data-theme=dark] .reference i,html[data-theme=dark] .reference b{color:#e5e7eb!important}html[data-theme=dark] .reference a{color:#66b3ff}html[data-theme=dark] .reference a:hover{text-decoration:underline}html[data-theme=dark] .reference a:visited{color:#66b3ff}code[class*=language-],pre[class*=language-]{background:#282c34;color:#abb2bf;text-shadow:0 1px rgba(0,0,0,.3);font-family:Fira Code,Fira Mono,Menlo,Consolas,DejaVu Sans Mono,monospace;direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;line-height:1.5;-moz-tab-size:2;-o-tab-size:2;tab-size:2;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::-moz-selection,code[class*=language-] *::-moz-selection,pre[class*=language-] *::-moz-selection{background:#3e4451;color:inherit;text-shadow:none}code[class*=language-]::selection,code[class*=language-] *::selection,pre[class*=language-] *::selection{background:#3e4451;color:inherit;text-shadow:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto;border-radius:.3em}:not(pre)>code[class*=language-]{padding:.2em .3em;border-radius:.3em;white-space:normal}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}.token.comment,.token.prolog,.token.cdata{color:#5c6370}.token.doctype,.token.punctuation,.token.entity{color:#abb2bf}.token.attr-name,.token.class-name,.token.boolean,.token.constant,.token.number,.token.atrule{color:#d19a66}.token.keyword{color:#c678dd}.token.property,.token.tag,.token.symbol,.token.deleted,.token.important{color:#e06c75}.token.selector,.token.string,.token.char,.token.builtin,.token.inserted,.token.regex,.token.attr-value,.token.attr-value>.token.punctuation{color:#98c379}.token.variable,.token.operator,.token.function{color:#61afef}.token.url{color:#56b6c2}.token.attr-value>.token.punctuation.attr-equals,.token.special-attr>.token.attr-value>.token.value.css{color:#abb2bf}.language-css .token.selector{color:#e06c75}.language-css .token.property{color:#abb2bf}.language-css .token.function,.language-css .token.url>.token.function{color:#56b6c2}.language-css .token.url>.token.string.url{color:#98c379}.language-css .token.important,.language-css .token.atrule .token.rule,.language-javascript .token.operator{color:#c678dd}.language-javascript .token.template-string>.token.interpolation>.token.interpolation-punctuation.punctuation{color:#be5046}.language-json .token.operator{color:#abb2bf}.language-json .token.null.keyword{color:#d19a66}.language-markdown .token.url,.language-markdown .token.url>.token.operator,.language-markdown .token.url-reference.url>.token.string{color:#abb2bf}.language-markdown .token.url>.token.content{color:#61afef}.language-markdown .token.url>.token.url,.language-markdown .token.url-reference.url{color:#56b6c2}.language-markdown .token.blockquote.punctuation,.language-markdown .token.hr.punctuation{color:#5c6370;font-style:italic}.language-markdown .token.code-snippet{color:#98c379}.language-markdown .token.bold .token.content{color:#d19a66}.language-markdown .token.italic .token.content{color:#c678dd}.language-markdown .token.strike .token.content,.language-markdown .token.strike .token.punctuation,.language-markdown .token.list.punctuation,.language-markdown .token.title.important>.token.punctuation{color:#e06c75}.token.bold{font-weight:700}.token.comment,.token.italic{font-style:italic}.token.entity{cursor:help}.token.namespace{opacity:.8}.token.token.tab:not(:empty):before,.token.token.cr:before,.token.token.lf:before,.token.token.space:before{color:#abb2bf26;text-shadow:none}div.code-toolbar>.toolbar.toolbar>.toolbar-item{margin-right:.4em}div.code-toolbar>.toolbar.toolbar>.toolbar-item>button,div.code-toolbar>.toolbar.toolbar>.toolbar-item>a,div.code-toolbar>.toolbar.toolbar>.toolbar-item>span{background:#3a3f4b;color:#828997;padding:.1em .4em;border-radius:.3em}div.code-toolbar>.toolbar.toolbar>.toolbar-item>button:hover,div.code-toolbar>.toolbar.toolbar>.toolbar-item>button:focus,div.code-toolbar>.toolbar.toolbar>.toolbar-item>a:hover,div.code-toolbar>.toolbar.toolbar>.toolbar-item>a:focus,div.code-toolbar>.toolbar.toolbar>.toolbar-item>span:hover,div.code-toolbar>.toolbar.toolbar>.toolbar-item>span:focus{background:#3e4451;color:#abb2bf}.line-highlight.line-highlight{background:#99bbff0a}.line-highlight.line-highlight:before,.line-highlight.line-highlight[data-end]:after{background:#3a3f4b;color:#abb2bf;padding:.1em .6em;border-radius:.3em;box-shadow:0 2px #0003}pre[id].linkable-line-numbers.linkable-line-numbers span.line-numbers-rows>span:hover:before{background-color:#99bbff0a}.line-numbers.line-numbers .line-numbers-rows,.command-line .command-line-prompt{border-right-color:#abb2bf26}.line-numbers .line-numbers-rows>span:before,.command-line .command-line-prompt>span:before{color:#636d83}.rainbow-braces .token.token.punctuation.brace-level-1,.rainbow-braces .token.token.punctuation.brace-level-5,.rainbow-braces .token.token.punctuation.brace-level-9{color:#e06c75}.rainbow-braces .token.token.punctuation.brace-level-2,.rainbow-braces .token.token.punctuation.brace-level-6,.rainbow-braces .token.token.punctuation.brace-level-10{color:#98c379}.rainbow-braces .token.token.punctuation.brace-level-3,.rainbow-braces .token.token.punctuation.brace-level-7,.rainbow-braces .token.token.punctuation.brace-level-11{color:#61afef}.rainbow-braces .token.token.punctuation.brace-level-4,.rainbow-braces .token.token.punctuation.brace-level-8,.rainbow-braces .token.token.punctuation.brace-level-12{color:#c678dd}pre.diff-highlight>code .token.token.deleted:not(.prefix),pre>code.diff-highlight .token.token.deleted:not(.prefix){background-color:#ff526626}pre.diff-highlight>code .token.token.deleted:not(.prefix)::-moz-selection,pre.diff-highlight>code .token.token.deleted:not(.prefix) *::-moz-selection,pre>code.diff-highlight .token.token.deleted:not(.prefix)::-moz-selection,pre>code.diff-highlight .token.token.deleted:not(.prefix) *::-moz-selection{background-color:#fb566940}pre.diff-highlight>code .token.token.deleted:not(.prefix)::selection,pre.diff-highlight>code .token.token.deleted:not(.prefix) *::selection,pre>code.diff-highlight .token.token.deleted:not(.prefix)::selection,pre>code.diff-highlight .token.token.deleted:not(.prefix) *::selection{background-color:#fb566940}pre.diff-highlight>code .token.token.inserted:not(.prefix),pre>code.diff-highlight .token.token.inserted:not(.prefix){background-color:#1aff5b26}pre.diff-highlight>code .token.token.inserted:not(.prefix)::-moz-selection,pre.diff-highlight>code .token.token.inserted:not(.prefix) *::-moz-selection,pre>code.diff-highlight .token.token.inserted:not(.prefix)::-moz-selection,pre>code.diff-highlight .token.token.inserted:not(.prefix) *::-moz-selection{background-color:#38e06240}pre.diff-highlight>code .token.token.inserted:not(.prefix)::selection,pre.diff-highlight>code .token.token.inserted:not(.prefix) *::selection,pre>code.diff-highlight .token.token.inserted:not(.prefix)::selection,pre>code.diff-highlight .token.token.inserted:not(.prefix) *::selection{background-color:#38e06240}.prism-previewer.prism-previewer:before,.prism-previewer-gradient.prism-previewer-gradient div{border-color:#262931}.prism-previewer-color.prism-previewer-color:before,.prism-previewer-gradient.prism-previewer-gradient div,.prism-previewer-easing.prism-previewer-easing:before{border-radius:.3em}.prism-previewer.prism-previewer:after{border-top-color:#262931}.prism-previewer-flipped.prism-previewer-flipped.after{border-bottom-color:#262931}.prism-previewer-angle.prism-previewer-angle:before,.prism-previewer-time.prism-previewer-time:before,.prism-previewer-easing.prism-previewer-easing{background:#31363f}.prism-previewer-angle.prism-previewer-angle circle,.prism-previewer-time.prism-previewer-time circle{stroke:#abb2bf;stroke-opacity:1}.prism-previewer-easing.prism-previewer-easing circle,.prism-previewer-easing.prism-previewer-easing path,.prism-previewer-easing.prism-previewer-easing line{stroke:#abb2bf}.prism-previewer-easing.prism-previewer-easing circle{fill:transparent}pre[class*=language-].line-numbers{position:relative;padding-left:3.8em;counter-reset:linenumber}pre[class*=language-].line-numbers>code{position:relative;white-space:inherit}.line-numbers .line-numbers-rows{position:absolute;pointer-events:none;top:0;font-size:100%;left:-3.8em;width:3em;letter-spacing:-1px;border-right:1px solid #999;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.line-numbers-rows>span{display:block;counter-increment:linenumber}.line-numbers-rows>span:before{content:counter(linenumber);color:#999;display:block;padding-right:.8em;text-align:right}div.code-toolbar{position:relative}div.code-toolbar>.toolbar{position:absolute;z-index:10;top:.3em;right:.2em;transition:opacity .3s ease-in-out;opacity:0}div.code-toolbar:hover>.toolbar{opacity:1}div.code-toolbar:focus-within>.toolbar{opacity:1}div.code-toolbar>.toolbar>.toolbar-item{display:inline-block}div.code-toolbar>.toolbar>.toolbar-item>a{cursor:pointer}div.code-toolbar>.toolbar>.toolbar-item>button{background:none;border:0;color:inherit;font:inherit;line-height:normal;overflow:visible;padding:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}div.code-toolbar>.toolbar>.toolbar-item>a,div.code-toolbar>.toolbar>.toolbar-item>button,div.code-toolbar>.toolbar>.toolbar-item>span{color:#bbb;font-size:.8em;padding:0 .5em;background:#f5f2f0;background:#e0e0e033;box-shadow:0 2px #0003;border-radius:.5em}div.code-toolbar>.toolbar>.toolbar-item>a:hover,div.code-toolbar>.toolbar>.toolbar-item>a:focus,div.code-toolbar>.toolbar>.toolbar-item>button:hover,div.code-toolbar>.toolbar>.toolbar-item>button:focus,div.code-toolbar>.toolbar>.toolbar-item>span:hover,div.code-toolbar>.toolbar>.toolbar-item>span:focus{color:inherit;text-decoration:none}
