:root{--bg-color:#ffffff;--text-color:#333333;--accent-color:#0066cc;--border-color:#dddddd;--code-bg:#f5f5f5;--blockquote-bg:#f9f9f9;--blockquote-border:#e5e5e5;--font-family:Georgia, serif;--heading-font:Georgia, serif;--mono-font:"SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;--transition-time:0.3s}[data-theme=dark]{--bg-color:#1a1a1a;--text-color:#e0e0e0;--accent-color:#4d9fff;--border-color:#444444;--code-bg:#2d2d2d;--blockquote-bg:#252525;--blockquote-border:#444444}*{box-sizing:border-box;margin:0;padding:0}html{font-size:16px}body{background-color:var(--bg-color);color:var(--text-color);font-family:var(--font-family);line-height:1.6;letter-spacing:.02em;max-width:700px;margin:0 auto;padding:2rem 1rem;transition:background-color var(--transition-time),color var(--transition-time)}h1,h2,h3,h4,h5,h6{margin:2rem 0 1rem;line-height:1.3;font-weight:600;font-family:var(--heading-font)}h1{font-size:2rem;margin-top:0}h2{font-size:1.5rem}h3{font-size:1.25rem}p,ul,ol{margin-bottom:1.5rem}a{color:var(--accent-color);text-decoration:none;transition:color var(--transition-time)}a:hover{text-decoration:underline}header{margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color);display:flex;flex-direction:column;align-items:flex-start}header h1{font-size:1.75rem;margin-bottom:1rem}nav ul{display:flex;flex-wrap:wrap;list-style:none;margin:0;padding:0}nav li{margin-right:1.5rem;margin-bottom:.5rem}nav a{font-weight:500;font-family:var(--heading-font)}nav a.active{font-weight:600;text-decoration:underline}main{margin-bottom:3rem}footer{margin-top:2rem;padding-top:1rem;border-top:1px solid var(--border-color);font-size:.875rem;color:var(--text-color);opacity:.8;display:flex;justify-content:space-between;align-items:center}pre,code{font-family:var(--mono-font);font-size:.8rem}pre,pre[class*=language-]{font-size:.78rem!important}code,code[class*=language-]{font-size:.78rem!important}pre code,pre code[class*=language-]{font-size:.78rem!important}.token{font-size:.78rem!important}pre code.language-python{font-size:.78rem!important}code{background-color:var(--code-bg);padding:.2em .4em;border-radius:3px;color:var(--text-color)}pre{background-color:var(--code-bg);padding:1rem;border-radius:5px;overflow-x:auto;margin-bottom:1.5rem;border:1px solid var(--border-color);position:relative}pre code{background-color:transparent;padding:0}.copy-button{position:absolute;top:.5rem;right:.5rem;padding:.25rem .5rem;background-color:var(--bg-color);color:var(--text-color);border:1px solid var(--border-color);border-radius:3px;font-size:.7rem;cursor:pointer;opacity:0;transition:opacity .2s ease-in-out}pre:hover .copy-button{opacity:1}.copy-button:hover{background-color:var(--accent-color);color:#fff}.copy-button:active{transform:scale(.95)}[data-theme=dark] .highlight{background-color:#2d2d2d}[data-theme=dark] .highlight .c,[data-theme=dark] .highlight .c1,[data-theme=dark] .highlight .cm{color:#75715e}[data-theme=dark] .highlight .k,[data-theme=dark] .highlight .kc,[data-theme=dark] .highlight .kd,[data-theme=dark] .highlight .kn,[data-theme=dark] .highlight .kp,[data-theme=dark] .highlight .kr,[data-theme=dark] .highlight .kt{color:#66d9ef}[data-theme=dark] .highlight .s,[data-theme=dark] .highlight .sb,[data-theme=dark] .highlight .sc,[data-theme=dark] .highlight .sd,[data-theme=dark] .highlight .s2,[data-theme=dark] .highlight .se,[data-theme=dark] .highlight .sh,[data-theme=dark] .highlight .si,[data-theme=dark] .highlight .sx,[data-theme=dark] .highlight .sr,[data-theme=dark] .highlight .s1,[data-theme=dark] .highlight .ss{color:#e6db74}[data-theme=dark] .highlight .na,[data-theme=dark] .highlight .nb,[data-theme=dark] .highlight .nc,[data-theme=dark] .highlight .no,[data-theme=dark] .highlight .nd,[data-theme=dark] .highlight .ni,[data-theme=dark] .highlight .ne,[data-theme=dark] .highlight .nf,[data-theme=dark] .highlight .nl,[data-theme=dark] .highlight .nn,[data-theme=dark] .highlight .nx,[data-theme=dark] .highlight .py,[data-theme=dark] .highlight .nt,[data-theme=dark] .highlight .nv,[data-theme=dark] .highlight .ow,[data-theme=dark] .highlight .w,[data-theme=dark] .highlight .bp{color:#f8f8f2}[data-theme=dark] .highlight .m,[data-theme=dark] .highlight .mf,[data-theme=dark] .highlight .mh,[data-theme=dark] .highlight .mi,[data-theme=dark] .highlight .mo,[data-theme=dark] .highlight .il{color:#ae81ff}[data-theme=dark] .highlight .o,[data-theme=dark] .highlight .p{color:#f8f8f2}blockquote{background-color:var(--blockquote-bg);border-left:4px solid var(--blockquote-border);padding:1rem;margin-bottom:1.5rem}ul,ol{padding-left:1.5rem}li{margin-bottom:.5rem}img{max-width:100%;height:auto;display:block;margin:1.5rem 0}.theme-toggle{background:0 0;border:none;cursor:pointer;width:2rem;height:2rem;padding:0;display:flex;align-items:center;justify-content:center;color:var(--text-color);transition:color var(--transition-time)}.theme-toggle:hover{color:var(--accent-color)}.theme-toggle svg{width:1.25rem;height:1.25rem}.theme-toggle-icon.sun{display:none}.theme-toggle-icon.moon{display:block}[data-theme=light] .theme-toggle-icon.sun{display:block}[data-theme=light] .theme-toggle-icon.moon{display:none}.header-container{display:flex;justify-content:space-between;align-items:center;width:100%;margin-bottom:1rem}.header-right{display:flex;align-items:center;gap:1rem}.search-container{position:relative;margin-right:.5rem}#search-input{border:1px solid var(--border-color);border-radius:20px;padding:.4rem 1rem;font-size:.9rem;width:200px;background-color:var(--bg-color);color:var(--text-color);transition:all var(--transition-time)}#search-input:focus{outline:none;border-color:var(--accent-color);box-shadow:0 0 0 2px rgba(0,102,204,.2);width:220px}.search-results{display:none;position:absolute;top:100%;left:0;right:0;background-color:var(--bg-color);border:1px solid var(--border-color);border-radius:4px;box-shadow:0 4px 8px rgba(0,0,0,.1);max-height:300px;overflow-y:auto;z-index:1000;margin-top:.5rem;padding:.5rem}.search-results a{display:block;padding:.75rem .5rem;color:var(--text-color);text-decoration:none;border-bottom:1px solid var(--border-color)}.search-results a:last-child{border-bottom:none}.search-results a:hover{background-color:var(--code-bg)}.search-result-type{font-size:.7rem;background-color:var(--code-bg);padding:.2em .5em;border-radius:3px;margin-left:.5rem;text-transform:uppercase;color:var(--accent-color)}.search-result-excerpt{font-size:.8rem;color:var(--text-color);opacity:.8;margin-top:.25rem}.search-no-results{padding:.75rem .5rem;color:var(--text-color);opacity:.7;font-style:italic}.search-more-results{padding:.5rem;text-align:center;font-size:.8rem;color:var(--text-color);opacity:.7;border-top:1px dashed var(--border-color)}#search-input:focus~.search-results,.search-results:hover{display:block}@media(max-width:600px){#search-input{width:150px}#search-input:focus{width:170px}}@media(max-width:600px){html{font-size:15px}body{padding:1.5rem 1rem}header{margin-bottom:1.5rem}}.math{overflow-x:auto;margin:1rem 0}.post-list{margin-top:2rem}.post-item{margin-bottom:2.5rem}.post-title{margin-top:0;margin-bottom:.5rem}.post-meta{font-size:.875rem;color:var(--text-color);opacity:.8;margin-bottom:1rem}.post-authors{display:block;font-style:italic;margin-top:.5rem;margin-bottom:.75rem}.post-description,.post-summary{margin-top:1rem}.post-actions{margin-top:1rem}.page-header{margin-bottom:2rem}.page-title{margin-top:0;margin-bottom:.5rem}.page-meta{font-size:.875rem;color:var(--text-color);opacity:.8}.page-content{margin-bottom:2rem}.tag-link,.post-tag{display:inline-block;background-color:var(--code-bg);color:var(--accent-color);padding:.2rem .5rem;border-radius:3px;font-size:.85rem;margin-right:.5rem;margin-bottom:.5rem;text-decoration:none;border:1px solid var(--border-color);transition:background-color var(--transition-time),color var(--transition-time)}.tag-link:hover,.post-tag:hover{background-color:var(--accent-color);color:#fff;text-decoration:none}.post-tags{margin-top:.5rem;display:block}.page-tags{margin-top:2rem;display:flex;flex-wrap:wrap;align-items:center}.page-tags span{margin-right:.5rem}.tags-list{margin-top:2rem;display:flex;flex-wrap:wrap}.tag-item{margin-bottom:1rem;margin-right:1rem}.tag-count{font-size:.8rem;opacity:.8}.tag-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.all-tags-link{font-size:.9rem}.footer-container{display:flex;justify-content:space-between;width:100%}@media(max-width:600px){.footer-container{flex-direction:column;align-items:center}}.cite-button{display:inline-block;background-color:var(--accent-color);color:#fff;padding:.35rem .85rem;border-radius:4px;font-size:1rem;margin-right:.5rem;text-decoration:none;border:none;cursor:pointer;transition:background-color var(--transition-time);line-height:normal}.cite-button:hover{background-color:var(--text-color)}.citation-popup{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.5);z-index:1000;justify-content:center;align-items:center}.citation-popup.active{display:flex}.citation-content{background-color:var(--bg-color);padding:2rem;border-radius:5px;max-width:600px;width:90%;position:relative;box-shadow:0 4px 6px rgba(0,0,0,.1)}.citation-close{position:absolute;top:.5rem;right:.5rem;background:0 0;border:none;font-size:1.5rem;cursor:pointer;color:var(--text-color)}.citation-title{margin-top:0;margin-bottom:1rem}.citation-text{background-color:var(--code-bg);padding:1rem;border-radius:5px;font-family:var(--mono-font);font-size:.85rem;white-space:pre-wrap;overflow-x:auto;margin-bottom:1rem}.copy-citation-button{background-color:var(--accent-color);color:#fff;border:none;padding:.5rem 1rem;border-radius:3px;cursor:pointer;font-size:.9rem;transition:background-color var(--transition-time)}.copy-citation-button:hover{background-color:var(--text-color)}.journal-button{display:inline-block;background-color:#2a9d8f;color:#fff;padding:.35rem .85rem;border-radius:4px;font-size:1rem;margin-left:0;text-decoration:none;border:none;cursor:pointer;transition:background-color var(--transition-time);line-height:normal}.journal-button:hover{background-color:#264653}@media(max-width:600px){.tag-header{flex-direction:column;align-items:flex-start;gap:.5rem}}