:root{color-scheme:light;--blue:#235bc7;--bg:#f6f9ff;--ink:#172b4d;--muted:#536681;--line:#d5dfef;--accent:#e1edff;--button:#235bc7;--button-text:#fff;--panel:#edf3fc;background:var(--bg);color:var(--ink);font-synthesis:none;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans TC,PingFang TC,Microsoft JhengHei,sans-serif}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-underline-offset:5px}a:hover{text-decoration:underline}a:focus-visible,button:focus-visible{outline:3px solid var(--ink);outline-offset:5px}::selection{color:#122b52;background:#bcd7ff}.site-shell{max-width:1160px;margin:auto;padding:0 48px}.site-header{border-bottom:1px solid var(--line);align-items:center;gap:36px;min-height:110px;display:flex}.wordmark{letter-spacing:-2px;font-family:Georgia,serif;font-size:37px;font-weight:700;text-decoration:none}.wordmark span{color:var(--blue)}.site-header nav{gap:28px;margin-left:auto;display:flex}.site-header nav a,.language-link{font-size:13px;text-decoration:none}.site-header nav a{color:var(--muted);padding:8px 0}.site-header nav a[aria-current]{color:var(--ink);border-bottom:1px solid var(--ink)}.language-link{border-left:1px solid var(--line);padding-left:24px}.skip-link{z-index:9;background:var(--ink);color:var(--bg);padding:14px;position:absolute;top:-100px;left:20px}.skip-link:focus{top:12px}main{min-height:65vh}.hero{padding:78px 0 80px;position:relative;overflow:hidden}.eyebrow{text-transform:uppercase;letter-spacing:1.8px;align-items:center;gap:9px;font-size:11px;font-weight:600;display:flex}.status-dot{background:var(--blue);border-radius:50%;width:7px;height:7px}.hero h1{letter-spacing:-3px;max-width:760px;margin:31px 0 24px;font-family:Georgia,Noto Serif TC,Songti TC,serif;font-size:clamp(48px,6.2vw,76px);font-weight:400;line-height:1.09}.hero-description{max-width:560px;color:var(--muted);font-size:17px;line-height:1.85}.hero-links{flex-wrap:wrap;align-items:center;gap:28px;margin-top:30px;font-size:13px;display:flex}.primary-link{background:var(--button);color:var(--button-text);border-radius:3px;padding:14px 20px;text-decoration:none}.primary-link span{margin-left:14px}.text-link{text-decoration:none}.hero-index{color:var(--muted);font:11px ui-monospace,monospace;position:absolute;bottom:40px;right:0}.hero-index span{color:var(--line);margin:0 10px}.topics{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:1fr 1fr;display:grid}.topic{gap:22px;padding:32px 28px 32px 0;text-decoration:none;display:flex}.topic:last-child{border-left:1px solid var(--line);padding-left:32px}.topic:hover{background:var(--panel);text-decoration:none}.topic-number{color:var(--muted);padding-top:7px;font:11px ui-monospace,monospace}.topic h2{letter-spacing:-.5px;justify-content:space-between;gap:25px;margin:0 0 10px;font-size:20px;font-weight:500;display:flex}.topic p{color:var(--muted);max-width:350px;margin:0;font-size:13px;line-height:1.8}.notebook{padding:50px 0 60px}.section-heading{justify-content:space-between;align-items:center;margin-bottom:27px;display:flex}.section-heading h2{font-size:15px;font-weight:500}.section-heading a{font-size:12px;text-decoration:none}.empty-state{background:var(--panel);border:1px solid var(--line);border-radius:3px;align-items:flex-start;gap:28px;margin-bottom:48px;padding:40px;display:flex}.empty-mark{color:var(--blue);font-size:36px;line-height:1.3}.empty-state h2{letter-spacing:-.3px;margin:3px 0 10px;font-size:20px;font-weight:500}.empty-state p{max-width:580px;color:var(--muted);margin:0 0 10px;font-size:14px;line-height:1.9}.site-footer{border-top:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:24px;padding:32px 0 40px;display:flex}.footer-name{font-family:Georgia,serif;font-size:23px;font-weight:600;text-decoration:none}.site-footer p{color:var(--muted);margin-top:10px;font-size:11px}.footer-links{flex-wrap:wrap;gap:23px;padding-top:10px;display:flex}.footer-links a{font-size:11px;text-decoration:none}.page-heading{max-width:850px;padding:64px 0 34px}.page-heading h1{letter-spacing:-2px;margin:25px 0 20px;font-family:Georgia,Noto Serif TC,Songti TC,serif;font-size:clamp(40px,5vw,60px);font-weight:400;line-height:1.18}.page-heading>p:not(.eyebrow){color:var(--muted);max-width:650px;line-height:1.9}.filters{flex-wrap:wrap;gap:12px;margin:0 0 32px;display:flex}.filters a{border:1px solid var(--line);border-radius:3px;padding:10px 16px;font-size:13px;text-decoration:none}.filters a[aria-current]{background:var(--ink);color:var(--bg)}.tags{flex-wrap:wrap;gap:15px;margin:25px 0;font-size:13px;display:flex}.post-list{margin-bottom:60px}.post-row{border-top:1px solid var(--line);padding:28px 0}.post-meta{color:var(--muted);font-size:12px;line-height:1.8}.post-meta span{padding:0 10px}.post-row h2{margin:12px 0;font-size:26px;font-weight:500;line-height:1.4}.post-row h2 a{text-decoration:none}.post-row h2 span{font-size:20px}.post-row p{color:var(--muted);max-width:720px;font-size:15px;line-height:1.8}.prose{overflow-wrap:anywhere;max-width:720px;margin-bottom:55px;font-size:17px;line-height:1.9}.prose h2{margin:45px 0 20px;font-size:27px;line-height:1.4}.prose h3{line-height:1.5}.prose img{max-width:100%;height:auto}.prose pre{border-radius:4px;padding:24px;font-size:13px;line-height:1.7;overflow-x:auto}.prose :not(pre)>code{background:var(--accent);border-radius:3px;padding:3px 5px;font-size:.85em}.prose blockquote{border-left:3px solid var(--line);color:var(--muted);margin-left:0;padding-left:24px}.prose table{border-collapse:collapse;display:block;overflow:auto}.prose td,.prose th{border:1px solid var(--line);padding:10px}.lead{font-size:21px}.toc{background:var(--panel);border:1px solid var(--line);max-width:720px;margin-bottom:35px;padding:22px 28px}.toc h2{margin:0;font-size:14px}.toc li{font-size:14px;line-height:2}.post-pagination{justify-content:space-between;gap:25px;padding:25px 0 50px;font-size:14px;display:flex}h2,h3{scroll-margin-top:25px}html[lang=zh-TW] .hero h1{letter-spacing:-1px;max-width:800px;font-size:clamp(40px,5.5vw,64px);line-height:1.4}html[lang=zh-TW] .hero-description,html[lang=zh-TW] .prose{line-height:2}@media (prefers-color-scheme:dark){:root:not([data-theme]){color-scheme:dark;--blue:#8abbff;--bg:#101a2c;--ink:#e4edfc;--muted:#aabbd4;--line:#2e405c;--accent:#243d61;--button:#93bfff;--button-text:#102344;--panel:#18263c}}:root[data-theme=dark]{color-scheme:dark;--blue:#8abbff;--bg:#101a2c;--ink:#e4edfc;--muted:#aabbd4;--line:#2e405c;--accent:#243d61;--button:#93bfff;--button-text:#102344;--panel:#18263c}@media (width<=720px){.site-shell{padding:0 24px}.site-header{flex-wrap:wrap;gap:18px;min-height:100px;padding:20px 0}.site-header nav{order:3;justify-content:space-between;gap:12px;width:100%;margin:0}.language-link{border:0;margin-left:auto;padding:0;font-size:12px}.wordmark{font-size:31px}.hero{padding:48px 0 67px}.hero h1{letter-spacing:-2px;font-size:51px}.hero-description{font-size:15px}.hero-index{font-size:10px;bottom:24px}.hero-links{gap:20px}.topics{grid-template-columns:1fr}.topic,.topic:last-child{border-left:0;padding:25px 0}.topic:last-child{border-top:1px solid var(--line)}.topic>div{width:100%}.topic p{max-width:none}.empty-state{gap:17px;padding:25px 20px}.empty-state h2{font-size:18px}.empty-state p{font-size:13px}.empty-mark{font-size:28px}.site-footer{flex-direction:column}.footer-links{gap:20px;padding:0}.notebook{padding:30px 0 15px}.page-heading{padding:40px 0 25px}.page-heading h1{font-size:43px}.prose{font-size:16px}.lead{font-size:19px}.post-pagination{flex-direction:column}html[lang=zh-TW] .hero h1{font-size:43px}}.theme-toggle{border:1px solid var(--line);background:var(--panel);min-width:44px;min-height:44px;color:var(--blue);font:inherit;cursor:pointer;border-radius:6px;justify-content:center;align-items:center;gap:7px;padding:9px 12px;font-size:12px}.theme-toggle:not([hidden]){display:inline-flex}.theme-toggle:hover{background:var(--accent)}.theme-toggle svg{width:17px;height:17px}.theme-toggle .sun{display:none}:root[data-theme=dark] .theme-toggle .sun{display:block}:root[data-theme=dark] .theme-toggle .moon{display:none}@media (width<=720px){.site-header{column-gap:12px}.theme-toggle{padding:8px}}.profile-photo{object-fit:cover;border:3px solid var(--line);border-radius:50%;width:112px;height:112px;margin-bottom:24px;display:block}
