:root{--bg: #fafaf8;--fg: #25282c;--muted: #6b7078;--line: #e4e4de;--accent: #0b5cad;--accent-bg: #e9f1fa;--code-bg: #1f2430;--code-fg: #e6e9ef;--font: "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", "微軟正黑體", system-ui, -apple-system, "Segoe UI", sans-serif;--mono: ui-monospace, "SF Mono", Menlo, Consolas, "Noto Sans Mono CJK TC", "Microsoft JhengHei", monospace}@media(prefers-color-scheme:dark){:root{--bg: #16181c;--fg: #dfe2e6;--muted: #98a0aa;--line: #2c3037;--accent: #7db7f2;--accent-bg: #1e2a38;--code-bg: #0e1014}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--fg);font:17px/1.85 var(--font);letter-spacing:.01em;word-break:break-word;overflow-wrap:anywhere}a{color:var(--accent);text-decoration-thickness:1px;text-underline-offset:3px}.wrap{max-width:760px;margin:0 auto;padding:0 20px}.site-header{border-bottom:1px solid var(--line);background:var(--bg)}.header-inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;padding-top:16px;padding-bottom:16px}.brand{display:flex;align-items:center;gap:12px;color:inherit;text-decoration:none}.brand img{border-radius:10px;width:48px;height:48px;object-fit:cover}.brand strong{display:block;font-size:1.25rem;line-height:1.3}.brand small{display:block;color:var(--muted);font-size:.85rem;line-height:1.4}nav[aria-label=主選單]{display:flex;flex-wrap:wrap;gap:4px 18px}nav[aria-label=主選單] a{color:var(--fg);text-decoration:none;padding:4px 0;border-bottom:2px solid transparent;font-size:.95rem}nav[aria-label=主選單] a:hover,nav[aria-label=主選單] a.active{border-bottom-color:var(--accent)}main{padding-top:28px;padding-bottom:56px;min-height:60vh}.archive-title{font-size:1.5rem;margin:0 0 20px;line-height:1.4}.archive-title small{color:var(--muted);font-weight:400;font-size:.85rem}.post-list{list-style:none;margin:0;padding:0}.post-list li{padding:20px 0;border-bottom:1px solid var(--line)}.post-list h2{font-size:1.3rem;line-height:1.5;margin:0 0 4px}.post-list h2 a{color:var(--fg);text-decoration:none}.post-list h2 a:hover{color:var(--accent)}.excerpt{margin:8px 0 0;color:var(--muted);font-size:.95rem;line-height:1.7;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.meta{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;color:var(--muted);font-size:.85rem}.chip{display:inline-block;background:var(--accent-bg);color:var(--accent);border-radius:999px;padding:0 10px;font-size:.8rem;line-height:1.7;text-decoration:none;margin-right:6px}.tags{margin-top:32px;color:var(--muted);font-size:.9rem}.pager{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:28px;font-size:.95rem}.pager .num{color:var(--muted);font-size:.85rem}.post header h1{font-size:1.85rem;line-height:1.4;margin:0 0 8px}.post header{margin-bottom:24px}.prose{font-size:1.05rem}.prose h1,.prose h2,.prose h3,.prose h4{line-height:1.45;margin:2em 0 .6em}.prose h1{font-size:1.5rem}.prose h2{font-size:1.4rem;padding-bottom:.25em;border-bottom:1px solid var(--line)}.prose h3{font-size:1.2rem}.prose h4{font-size:1.05rem}.prose p,.prose ul,.prose ol,.prose blockquote,.prose pre,.prose .video{margin:1.1em 0}.prose ul,.prose ol{padding-left:1.6em}.prose li{margin:.3em 0}.prose li>p{margin:.4em 0}.prose img{max-width:100%;height:auto;border-radius:4px;vertical-align:middle}.prose blockquote{border-left:4px solid var(--line);padding:.1em 1em;color:var(--muted);background:transparent;margin-left:0}.prose hr{border:0;border-top:1px solid var(--line);margin:2em 0}.prose code{font-family:var(--mono);font-size:.88em;background:var(--accent-bg);padding:.12em .4em;border-radius:4px}.prose pre{background:var(--code-bg);color:var(--code-fg);padding:14px 16px;border-radius:8px;overflow-x:auto;font-family:var(--mono);font-size:.88rem;line-height:1.65;tab-size:4;-webkit-overflow-scrolling:touch;word-break:normal;overflow-wrap:normal}.prose pre code{background:none;padding:0;font-size:inherit;color:inherit;white-space:pre}.prose table{border-collapse:collapse;display:block;overflow-x:auto}.prose th,.prose td{border:1px solid var(--line);padding:6px 12px}.prose .video{position:relative;aspect-ratio:16 / 9;max-width:100%}.prose .video iframe{position:absolute;inset:0;width:100%;height:100%;border:0;border-radius:6px}.prevnext{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:48px;padding-top:24px;border-top:1px solid var(--line)}.prevnext a{display:block;text-decoration:none;color:var(--fg);font-size:.95rem;line-height:1.5;padding:10px 12px;border:1px solid var(--line);border-radius:8px}.prevnext a:hover{border-color:var(--accent)}.prevnext small{display:block;color:var(--muted);margin-bottom:2px}.prevnext .newer{text-align:right}.year h2{font-size:1.25rem;margin:28px 0 8px}.year h2 small{color:var(--muted);font-size:.8rem;font-weight:400}.archive{list-style:none;padding:0;margin:0}.archive li{padding:3px 0;font-size:.97rem}.archive time{color:var(--muted);font-family:var(--mono);font-size:.85rem;margin-right:8px}.site-footer{border-top:1px solid var(--line);color:var(--muted);font-size:.85rem;padding:24px 0 40px}.site-footer .cats a{display:inline-block;margin:0 14px 4px 0;color:var(--muted)}.site-footer .cats a span{margin-left:3px;opacity:.7;font-size:.8em}@media(max-width:560px){body{font-size:16px}.post header h1{font-size:1.5rem}.prevnext{grid-template-columns:1fr}.prevnext .newer{text-align:left}}.comments{margin-top:48px;padding-top:24px;border-top:1px solid var(--line)}.comments h2{font-size:1.25rem;margin:0 0 4px}.comments-note{color:var(--muted);font-size:.85rem;margin:0 0 16px}.comments ol{list-style:none;margin:0;padding:0}.comment{margin-left:calc(var(--depth, 0) * 24px);padding:12px 14px;margin-bottom:10px;border:1px solid var(--line);border-radius:8px;border-left:3px solid var(--accent-bg)}.comment[style*="--depth:0"]{border-left-color:var(--line)}.comment-meta{font-size:.85rem;color:var(--muted)}.comment-meta strong{color:var(--fg);margin-right:6px}.comment-body p{margin:.4em 0 0;font-size:.97rem;line-height:1.75;white-space:pre-line}@media(max-width:560px){.comment{margin-left:calc(var(--depth, 0) * 14px)}}
