@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/source-serif-4-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0327,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Serif 4";font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/source-serif-4-italic-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0327,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:400 600;font-display:swap;src:url(/fonts/inter-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0327,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--font-body: "Source Serif 4", "Source Serif Pro", Georgia, "Times New Roman", serif;--font-ui: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-code: "IBM Plex Mono", "SF Mono", ui-monospace, Menlo, Consolas, monospace;--text-base: 1.0625rem;--text-sm: .875rem;--text-xs: .8125rem;--text-lg: 1.25rem;--text-xl: 1.5rem;--text-2xl: 1.875rem;--leading-tight: 1.15;--leading-normal: 1.5;--leading-relaxed: 1.65;--leading-code: 1.45;--content-width: 700px;--page-width: 960px;--s1: 2px;--s2: 4px;--s3: 6px;--s4: 8px;--s6: 12px;--s8: 16px;--s12: 24px;--s16: 32px;--s24: 48px;--s32: 64px;--bg: #fafaf7;--bg-surface: #ffffff;--bg-hover: #f5f4f0;--text-1: #1a2332;--text-2: #3d4f5f;--text-3: #657585;--border: #e5e2da;--border-light: #eeebe4;--accent: #1a5276;--accent-hover: #154360;--green: #15803d;--green-bg: #dcfce7;--code-bg: #f5f3ee;--tag-bg: #edeae2;--avatar-size: 40px;--avatar-sm: 24px;--avatar-radius: 4px}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:clamp(100%,.925rem + .25vw,112.5%);-webkit-text-size-adjust:100%}body{font-family:var(--font-body);font-size:var(--text-base);line-height:var(--leading-relaxed);color:var(--text-2);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--accent);text-decoration:none;text-underline-offset:2px}a:hover{text-decoration:underline;color:var(--accent-hover)}.site-header{border-bottom:1px solid var(--border);background:var(--bg-surface)}.header-inner{max-width:var(--page-width);margin:0 auto;padding:var(--s6) var(--s12);display:flex;align-items:center;justify-content:space-between;gap:var(--s16)}.header-left{display:flex;align-items:center;gap:var(--s8)}.header-tagline{font-family:var(--font-ui);font-size:var(--text-xs);color:var(--text-3);border-left:1px solid var(--border);padding-left:var(--s8)}.logo{display:flex;align-items:center;gap:var(--s4)}.logo:hover{text-decoration:none}.logo-img{display:block;height:28px;width:auto}.logo-badge{font-family:var(--font-ui);font-size:.6rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--green);border:1px solid var(--green);padding:var(--s1) var(--s3);border-radius:3px;line-height:1}nav{display:flex;gap:var(--s8)}nav a{font-family:var(--font-ui);font-size:var(--text-sm);font-weight:500;color:var(--text-2)}nav a:hover{color:var(--text-1);text-decoration:none}main{max-width:var(--page-width);margin:0 auto;padding:var(--s16) var(--s12);min-height:60vh}.site-footer{margin-top:var(--s32);border-top:1px solid var(--border);background:var(--bg-surface)}.footer-inner{max-width:var(--page-width);margin:0 auto;padding:var(--s16) var(--s12) var(--s8)}.footer-nav{display:flex;gap:var(--s24);margin-bottom:var(--s12)}.footer-heading{font-family:var(--font-ui);font-size:var(--text-xs);font-weight:600;color:var(--text-1);margin-bottom:var(--s4);text-transform:uppercase;letter-spacing:.04em}.footer-nav a{display:block;font-family:var(--font-ui);font-size:var(--text-xs);color:var(--text-3);padding:var(--s1) 0}.footer-nav a:hover{color:var(--accent);text-decoration:none}.footer-bottom{font-family:var(--font-ui);font-size:.7rem;color:var(--text-3);border-top:1px solid var(--border-light);padding-top:var(--s6);display:flex;justify-content:center;gap:var(--s3)}.footer-sep{color:var(--border)}.post-body{font-size:var(--text-base);line-height:var(--leading-relaxed);max-width:var(--content-width);overflow-wrap:break-word}.post-body p{margin-bottom:.85em}.post-body p:last-child{margin-bottom:0}.post-body div.highlight{margin:var(--s6) 0}.post-body pre,.post-body .shiki{background:var(--code-bg)!important;padding:var(--s8);border-radius:6px;font-family:var(--font-code);font-size:.82rem;line-height:1.5;margin:var(--s6) 0;border:1px solid var(--border-light);white-space:pre;overflow-x:auto;max-width:100%;max-height:600px;overflow-y:auto;tab-size:4;-webkit-overflow-scrolling:touch}.post-body div.highlight pre{margin:0;border:none}.post-body pre::-webkit-scrollbar,.post-body .shiki::-webkit-scrollbar{height:6px;width:6px}.post-body pre::-webkit-scrollbar-thumb,.post-body .shiki::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.post-body pre::-webkit-scrollbar-track,.post-body .shiki::-webkit-scrollbar-track{background:transparent}.post-body code{font-family:var(--font-code);font-size:.88em;background:var(--code-bg);padding:1px 5px;border-radius:3px;word-break:break-word}.post-body pre code,.post-body .shiki code{background:none!important;padding:0;font-size:inherit;border-radius:0;word-break:normal;white-space:pre}.post-body h1,.post-body h2,.post-body h3,.post-body h4,.post-body h5,.post-body h6{font-family:var(--font-ui);line-height:var(--leading-tight);margin-top:1.5em;margin-bottom:.5em}.post-body h1{font-size:var(--text-xl)}.post-body h2{font-size:var(--text-lg)}.post-body h3{font-size:var(--text-base);font-weight:600}.post-body blockquote,.post-body .quote{border-left:3px solid var(--border);padding:var(--s4) var(--s8);margin:var(--s8) 0;color:var(--text-2);background:var(--bg-hover);border-radius:0 4px 4px 0}.post-body blockquote p:last-child{margin-bottom:0}.post-body .quote-author{font-family:var(--font-ui);font-size:var(--text-xs);font-weight:600;color:var(--text-3);margin-bottom:var(--s3)}.post-body blockquote blockquote{border-left-color:var(--border-light);background:#00000005;margin:var(--s4) 0}.post-body aside.quote{border:1px solid var(--border-light);border-left:3px solid var(--border);border-radius:4px;margin:var(--s8) 0;overflow:hidden}.post-body aside.quote .title{font-family:var(--font-ui);font-size:var(--text-xs);font-weight:600;color:var(--text-3);padding:var(--s4) var(--s8);border-bottom:1px solid var(--border-light);background:var(--bg-hover)}.post-body aside.quote blockquote{border-left:none;margin:0;padding:var(--s6) var(--s8);background:transparent}.post-body a{color:var(--accent);text-decoration:underline;text-decoration-color:#1a52764d;text-underline-offset:2px;transition:text-decoration-color .12s}.post-body a:hover{text-decoration-color:var(--accent)}.post-body aside.onebox{display:none}.post-body img{max-width:100%;height:auto;border-radius:4px;margin:var(--s4) 0}.post-body ul,.post-body ol{padding-left:1.5em;margin-bottom:.85em}.post-body li{margin-bottom:.3em}.post-body table{border-collapse:collapse;width:100%;margin:var(--s8) 0;font-size:var(--text-sm)}.post-body th,.post-body td{border:1px solid var(--border);padding:var(--s3) var(--s6);text-align:left}.post-body th{background:var(--bg-hover);font-family:var(--font-ui);font-weight:600}.post-body hr{border:none;border-top:1px solid var(--border);margin:var(--s12) 0}.post-body .onebox:not(a){display:none}.post-body img.emoji{width:1.2em;height:1.2em;vertical-align:text-bottom;margin:0;border-radius:0}.post-body .spoiler{background:var(--text-1);color:transparent;padding:var(--s1) var(--s2);border-radius:2px;cursor:pointer}.post-body .spoiler:hover{background:var(--code-bg);color:var(--text-1)}.post-body .bbcode-b{font-weight:600}.post-body .bbcode-i{font-style:italic}.post-body .bbcode-u{text-decoration:underline}@media(max-width:640px){.header-inner{flex-direction:column;align-items:flex-start;gap:var(--s4);padding:var(--s8) var(--s8)}nav{gap:var(--s6);flex-wrap:wrap}main{padding:var(--s12) var(--s8)}.footer-inner{padding:var(--s16) var(--s8)}}
