@import url('https://fonts.googleapis.com/css2?family=Source+Serif+4:ital,opsz,wght@0,8..60,400;0,8..60,600;1,8..60,400&family=Noto+Serif+SC:wght@400;600&family=Noto+Serif+TC:wght@400;600&family=Inter:wght@400;500&family=JetBrains+Mono:wght@400;500&display=swap');:root{--font-serif:'Source Serif 4','Noto Serif SC','Noto Serif TC',Georgia,serif;--font-sans:'Noto Sans SC','Source Sans Pro',-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;--font-mono:'JetBrains Mono','Courier New',monospace;--text:#1e1e1e;--muted:#666666;--border:#dcdcda;--bg:#f5f5f2;--accent:#2d5a27;--code-bg:#efefed;--max-width:680px}html{font-size:18px}body{font-family:var(--font-serif);color:var(--text);background:var(--bg);margin:0;padding:0;line-height:1.75}.container{display:flex;min-height:100vh}.sidebar{width:160px;padding:3.5rem 2.5rem;border-right:1px solid var(--border);position:sticky;top:0;height:100vh;flex-shrink:0;background:var(--bg);display:flex;flex-direction:column}.content{flex-grow:1;padding:3.5rem 3rem;display:flex;flex-direction:column;align-items:center}main{width:100%;max-width:var(--max-width);min-height:50vh}footer{width:100%;max-width:var(--max-width);margin-top:6rem;padding-top:1.5rem;padding-bottom:3rem;border-top:1px solid var(--border);font-size:0.8rem;color:var(--muted)}.logo{margin-bottom:0.5rem}.logo a{font-family:var(--font-serif);font-size:1.15rem;font-weight:600;color:var(--text);text-decoration:none!important;letter-spacing:0.02em;border:none}nav{display:flex;flex-direction:column;gap:0.85rem;margin-top:2.5rem}nav a{font-family:var(--font-sans);font-size:0.82rem;color:var(--muted);text-decoration:none!important;letter-spacing:0.08em;text-transform:uppercase;transition:color 0.15s;border:none!important}nav a:hover{color:var(--accent)}h1{font-family:var(--font-serif);font-size:1.8rem;font-weight:600;line-height:1.3;margin-bottom:0.25rem;margin-top:0}h2,h3,h4,h5,h6{font-family:var(--font-serif)}h2{font-size:1.35rem;margin-top:2.5rem}h3{font-size:1.1rem;margin-top:2rem}h4{font-size:1rem;margin-top:1.75rem}h5{font-size:0.95rem;margin-top:1.5rem}h6{font-size:0.9rem;margin-top:1.25rem}h2,h3{font-weight:600;line-height:1.4}p{margin:1.2rem 0;text-align:justify;hyphens:auto}a{color:var(--accent);text-decoration:none;border-bottom:1px solid transparent;transition:border-color 0.15s}a:hover{border-bottom-color:var(--accent)}.post-meta{font-size:0.85rem;color:var(--muted);margin-bottom:2.5rem;font-family:var(--font-sans)}code{font-family:var(--font-mono);font-size:0.85em;background:var(--code-bg);padding:0.15em 0.35em;border-radius:3px}pre{background:var(--code-bg);border:1px solid var(--border);border-radius:4px;padding:1.2rem;overflow-x:auto;line-height:1.6;margin:1.5rem 0}pre code{background:none;padding:0;font-size:0.85rem;color:var(--text)}.code-block-container{position:relative;margin:1.8rem 0}.code-block-container pre{margin:0}.copy-button{position:absolute;top:0.75rem;right:0.75rem;width:32px;height:32px;display:flex;align-items:center;justify-content:center;color:var(--muted);background:var(--bg);border:1px solid var(--border);border-radius:3px;cursor:pointer;opacity:0;transition:opacity 0.15s,color 0.15s;z-index:10}.code-block-container:hover .copy-button{opacity:1}.copy-button:hover{color:var(--accent)}.copy-button.copied{color:var(--accent);border-color:var(--accent)}.copy-button svg{display:block}.sourceCode .co{color:#8e908c;font-style:italic}.sourceCode .ot{color:#8959a8}.sourceCode .at{color:#eab700}.sourceCode .ss{color:#718c00}.sourceCode .st{color:#718c00}.sourceCode .va{color:#c82829}.sourceCode .cf{color:#8959a8;font-weight:bold}.sourceCode .op{color:#3e999f}.sourceCode .bu{color:#eab700}.sourceCode .ex{color:#4271ae}.sourceCode .pp{color:#8959a8}.sourceCode .do{color:#8e908c;font-style:italic}.sourceCode .an{color:#eab700}.sourceCode .cv{color:#8e908c;font-style:italic}.sourceCode .in{color:#8e908c;font-style:italic}.sourceCode .kw{color:#8959a8;font-weight:bold}.sourceCode .dt{color:#eab700}.sourceCode .dv{color:#f5871f}.sourceCode .bn{color:#f5871f}.sourceCode .fl{color:#f5871f}.sourceCode .ch{color:#718c00}.sourceCode .fu{color:#4271ae}.post-list{list-style:none;padding:0;margin:0}.post-list li{display:flex;justify-content:space-between;align-items:baseline;padding:0.6rem 0;border-bottom:1px solid var(--border);gap:1rem}.post-list li:first-child{border-top:1px solid var(--border)}.post-list .post-date{font-family:var(--font-sans);font-size:0.8rem;color:var(--muted);white-space:nowrap}blockquote{font-family:var(--font-serif);margin:1.5rem 0;padding:0.8rem 1.2rem;border-left:3px solid var(--border);color:var(--muted)}blockquote p{margin:0;text-align:left}.callout{margin:1.5rem 0;padding:0.75rem 1.1rem;border-left:2px solid var(--border);background:transparent}.callout-title{font-family:var(--font-sans);font-weight:500;font-size:0.78rem;margin-bottom:0.35rem;text-transform:uppercase;letter-spacing:0.08em;color:var(--muted)}.callout p{margin:0;font-size:0.95em}.callout-note{border-color:#5a7fa8}.callout-note .callout-title{color:#5a7fa8}.callout-info{border-color:#3a8fa8}.callout-info .callout-title{color:#3a8fa8}.callout-tip{border-color:var(--accent)}.callout-tip .callout-title{color:var(--accent)}.callout-warning{border-color:#b07d2a}.callout-warning .callout-title{color:#b07d2a}.callout-danger,.callout-error{border-color:#a03030}.callout-danger .callout-title,.callout-error .callout-title{color:#a03030}.callout-important{border-color:#7a3a8a}.callout-important .callout-title{color:#7a3a8a}.callout-example{border-color:#6a4aaa}.callout-example .callout-title{color:#6a4aaa}.callout-quote{border-color:var(--muted)}.callout-quote .callout-title{color:var(--muted)}.callout-success{border-color:#2d7a4a}.callout-success .callout-title{color:#2d7a4a}mark{background:#fff3b0;color:inherit;padding:0.05em 0.2em;border-radius:2px}hr{border:none;border-top:1px solid var(--border);margin:2.5rem 0}img{max-width:100%;height:auto}@media (max-width:850px){.container{flex-direction:column}.sidebar{width:100%;height:auto;position:static;padding:2.5rem 1.5rem;border-right:none;border-bottom:1px solid var(--border);flex-direction:column;align-items:center;text-align:center}nav{flex-direction:row;flex-wrap:wrap;justify-content:center;gap:1.2rem;margin-top:1.5rem}.content{padding:2.5rem 1.5rem}header,main,footer{padding:0}}