footer{max-width:100%;margin:0 auto;padding:2rem 0 0}footer .section{padding:2rem 0}footer .img-fluid{max-height:72px;width:auto}footer .list-inline-item a{font-size:28px;margin:0 10px;display:inline-block}footer .list-inline-item:first-child a{margin-left:0}footer .list-inline-item i{vertical-align:middle;line-height:72px}.article-card .article-image,.post-card .post-image,div[class*=article-image],div[class*=post-image]{position:relative !important;overflow:hidden !important;height:200px !important;padding-top:0 !important;padding-right:0 !important;padding-left:0 !important;padding-bottom:0 !important;max-height:none !important;min-height:0 !important}.article-card .article-image a,.post-card .post-image a,div[class*=article-image] a,div[class*=post-image] a{display:block !important;width:100% !important;height:100% !important}.article-card .article-image img,.post-card .post-image img,div[class*=article-image] img,div[class*=post-image] img,.article-img{width:100% !important;height:100% !important;object-fit:cover !important;object-position:center !important;transition:transform .3s ease !important;max-height:none !important;min-height:0 !important}.article-card:hover img,.post-card:hover img,div[class*=article-image]:hover img,div[class*=post-image]:hover img{transform:scale(1) !important}body{font-family:noto sans tc,open sans,sans-serif;line-height:2;color:#333;font-size:16px;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}.content{max-width:90ch;margin:0 auto}.content p{margin-bottom:2rem;letter-spacing:.01rem}h1,h2,h3,h4,h5,h6{color:#222;font-weight:700;letter-spacing:.01rem}h2{font-size:2rem;margin-top:3rem;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid #eee}h3{font-size:2rem;margin-top:2rem;margin-bottom:1rem}pre{background-color:#f8f9fa !important;border-radius:8px;padding:2rem;overflow-x:auto;margin:2rem 0;border:1px solid #e9ecef;position:relative;box-shadow:0 2px 8px rgba(0,0,0,5%)}code{font-family:source code pro,Consolas,Monaco,monospace;font-size:.9rem;padding:.2rem .4rem;border-radius:3px;background-color:#f0f0f0;color:#333;line-height:2}pre code{background-color:transparent;padding:0;font-size:1rem;color:#333;line-height:2;tab-size:4}.copy-button{position:absolute;top:.5rem;right:.5rem;padding:.3rem .5rem;border:none;background-color:rgba(255,255,255,.7);border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#555;transition:all .2s ease-in-out;opacity:0;z-index:10}pre:hover .copy-button{opacity:1}.copy-button:hover{background-color:rgba(255,255,255,.9);color:#000;box-shadow:0 2px 5px rgba(0,0,0,.1)}.copy-button.copied{background-color:#b3e6b3;color:#060}pre::before{content:attr(data-lang);position:absolute;top:0;left:0;padding:.3rem .7rem;font-size:.8rem;color:#666;background-color:#f0f0f0;border-radius:0 0 4px 0;font-family:source code pro,monospace;z-index:5}blockquote{border-left:4px solid #6c757d;padding:.5rem 1rem;margin:2rem 0;color:#495057;font-style:italic;background-color:#f8f9fa;border-radius:0 4px 4px 0}blockquote p{margin-bottom:.5rem !important}ul,ol{padding-left:2rem;margin-bottom:2rem}li{margin-bottom:.5rem;line-height:2}ul li{position:relative}ul li::marker{color:#06c}ol li::marker{color:#06c;font-weight:500}ul.styled-list{list-style:none;padding-left:2rem}ul.styled-list li{position:relative;padding-left:1rem;margin-bottom:.8rem}ul.styled-list li:before{content:'';position:absolute;left:0;top:.5rem;width:6px;height:6px;border-radius:50%;background-color:#06c}ul.compact,ol.compact{margin-bottom:1rem}ul.compact li,ol.compact li{margin-bottom:.3rem}table{width:100%;margin:2rem 0;border-collapse:collapse;font-size:.9rem;border-radius:8px;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,5%)}thead{border-bottom:2px solid #dee2e6}th,td{padding:.8rem 1rem;border:1px solid #dee2e6;text-align:left;vertical-align:top}th{background-color:#f0f4f8;font-weight:600;color:#333;position:sticky;top:0}tbody tr:nth-child(even){background-color:#f8f9fa}tbody tr:hover{background-color:#f0f4f8}a{color:#06c;text-decoration:none;border-bottom:1px solid transparent;transition:all .2s}a:hover{color:#004999;border-bottom-color:initial}.card{transition:transform .3s,box-shadow .3s;border-radius:8px;overflow:hidden;border:none;box-shadow:0 2px 10px rgba(0,0,0,5%)}.card:hover{transform:translateY(-5px);box-shadow:0 10px 20px rgba(0,0,0,.1)}.navigation{background-color:#fff;box-shadow:0 2px 10px rgba(0,0,0,5%)}.footer{background-color:#f8f9fa;padding:3rem 0}.buymeacoffee-container{margin:2rem 0;text-align:center}.content img{max-width:100%;height:auto;border-radius:4px;margin:2rem auto;display:block;box-shadow:0 3px 10px rgba(0,0,0,.1)}@media(max-width:768px){body{font-size:15px}h2{font-size:2rem}h3{font-size:1rem}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#f1f1f1}h1,.h1{font-size:2rem !important;line-height:1;margin-bottom:1rem}h1.post-title{font-size:2rem !important}.article-content h2 a,.post-content h2 a{font-size:1rem !important;line-height:1}.post h1,.post h2,.post h3,article h1,article h2,article h3{margin-top:2rem;margin-bottom:1rem}.tag-category-title{font-size:1rem;margin-bottom:.8rem}.tag-items{display:flex;flex-wrap:wrap;gap:.5rem}.tag-item{font-size:.8rem;padding:.3rem .6rem;background-color:#f8f9fa;border-radius:4px;display:inline-block;transition:all .2s;text-decoration:none;border:1px solid #e9ecef}.tag-item:hover{background-color:#e9ecef;transform:translateY(-2px)}.tag-name{font-size:.8rem;font-weight:500;color:#495057}.tag-count{font-size:.7rem;color:#868e96;margin-left:.3rem}::-webkit-scrollbar-thumb{background:#c5c5c5;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.mermaid{margin:2rem auto;text-align:center;background-color:#fafafa;padding:2rem;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,5%);overflow-x:auto;max-width:100%}@media(max-width:768px){.mermaid{font-size:12px;padding:1rem}}.mermaid .node rect,.mermaid .node circle,.mermaid .node ellipse,.mermaid .node polygon,.mermaid .node path{fill:#e1f5fe;stroke:#4fc3f7;stroke-width:1px}.mermaid .node.current rect,.mermaid .node.current circle,.mermaid .node.current ellipse,.mermaid .node.current polygon{fill:#bbdefb;stroke:#2196f3;stroke-width:2px}.mermaid .edgeLabel{background-color:#fff;padding:2px 5px;border-radius:3px;font-size:.9em}.mermaid .cluster rect{fill:#f5f5f5;stroke:#bdbdbd;stroke-width:1px;rx:5px;ry:5px}.mermaid .node.rhombus rect,.mermaid .node.rhombus circle,.mermaid .node.rhombus ellipse,.mermaid .node.rhombus polygon{fill:#fff8e1;stroke:#ffc107}.mermaid .node.end rect,.mermaid .node.end circle,.mermaid .node.end ellipse,.mermaid .node.end polygon{fill:#e8f5e9;stroke:#66bb6a}