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:hover img,.post-card:hover img,div[class*=article-image]:hover img,div[class*=post-image]:hover img{transform:scale(1.05)}body{font-family:noto sans tc,open sans,sans-serif;line-height:1.75;color:#1a1a1a;font-size:16px;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}.content{max-width:68ch;margin:0 auto;padding:0 1rem}.content p{margin-bottom:1.75rem;letter-spacing:.02em}h1,h2,h3,h4,h5,h6{font-family:noto serif tc,serif;color:#111;font-weight:700;letter-spacing:.01em}h2{font-size:1.8rem;margin-top:2.5rem;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid #eee}h3{font-size:1.5rem;margin-top:2rem;margin-bottom:1rem}pre{background-color:#f8f9fa !important;border-radius:8px;padding:1.5rem;overflow-x:auto;margin:1.5rem 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:1.6}pre code{background-color:transparent;padding:0;font-size:.95rem;color:#333;line-height:1.7;tab-size:4}.copy-button{position:absolute;top:.5rem;right:.5rem;padding:.25rem .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:.25rem .7rem;font-size:.75rem;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:1.5rem 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:1.5rem}li{margin-bottom:.5rem;line-height:1.7}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:1.5rem}ul.styled-list li{position:relative;padding-left:1.2rem;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:1.5rem 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:.75rem 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:rgba(255,255,255,.95);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:1.5rem auto;display:block;box-shadow:0 3px 10px rgba(0,0,0,.1)}@media(max-width:768px){body{font-size:15px}h2{font-size:1.5rem}h3{font-size:1.3rem}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#f1f1f1}::-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:1.5rem;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:.85em}.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}