@font-face{font-family:JetBrains;src:url('/assets/fonts/jetbrains-mono-latin.woff2') format('woff2');font-display:swap}
:root{color-scheme:dark;font-family:system-ui,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;background:#0b3a8f;color:#f5f3e9;font-size:17px;line-height:1.8}
*{box-sizing:border-box}body{margin:0}a{color:#ffe066;text-underline-offset:4px}a:hover{color:#fff}a:focus-visible{outline:2px solid #ffe066;outline-offset:5px}.blog-page{max-width:880px;margin:auto;padding:0 28px}header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:28px 0;border-bottom:1px solid #ffffff38}header>a:last-child{white-space:nowrap;font-size:14px}.logo img{display:block;width:190px;height:auto}main{padding:30px 0 80px;min-height:65vh}.crumb{font-size:13px;color:#c8d6ed;margin:0 0 44px}.crumb span{overflow-wrap:anywhere}.eyebrow{font:12px JetBrains,monospace;letter-spacing:2px;color:#c8d6ed}h1{font-size:clamp(30px,5vw,46px);line-height:1.35;letter-spacing:-1px;margin:16px 0 22px;overflow-wrap:anywhere}.lead{font-size:20px;color:#d5e0f2;margin:0 0 20px}.meta{font-size:13px;color:#bdcfe9}.post-list{list-style:none;padding:0;margin:40px 0}.post-list li{border-top:1px solid #ffffff38;padding:22px 0}.post-list h2{font-size:24px;line-height:1.45;margin:0 0 10px}.post-list p{margin:8px 0}.prose{margin-top:44px;overflow-wrap:anywhere}.prose h2{font-size:26px;margin:44px 0 18px;line-height:1.5}.prose h3{font-size:21px;margin-top:30px}.prose img{max-width:100%;height:auto}.prose pre{overflow:auto;padding:20px;background:#062b6a;border:1px solid #ffffff38;border-radius:10px;font-size:14px}.prose code{font-family:JetBrains,monospace}.prose :not(pre)>code{background:#ffffff14;padding:2px 5px;border-radius:4px}.prose blockquote{margin:24px 0;padding:4px 20px;border-left:3px solid #ffe066;background:#ffffff08}.prose table{display:block;overflow:auto;border-collapse:collapse}.prose th,.prose td{border:1px solid #ffffff38;padding:10px 14px;text-align:left}.prose hr{border:0;border-top:1px solid #ffffff38;margin:40px 0}aside{margin-top:56px;border-top:1px solid #ffffff38;padding-top:20px}.related{padding-left:24px}.empty{margin:48px 0;color:#c8d6ed}footer{padding:26px 0 36px;border-top:1px solid #ffffff38;color:#bdcfe9;font-size:13px}.skip{position:absolute;left:16px;top:-80px;background:#062b6a;padding:8px 16px}.skip:focus{top:8px}@media(max-width:560px){.blog-page{padding:0 20px}header{padding:20px 0}.logo img{width:145px}.crumb{margin-bottom:32px}.lead{font-size:18px}main{padding-bottom:48px}}
