:root{color-scheme:light;--background:#fdfdfd;--foreground:#202124;--muted:#f2f3f5;--border:#d8dbe0;--accent:#006cac;--accent-soft:rgba(0,108,172,0.1);--font-sans:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}:root[data-theme=dark]{color-scheme:dark;--background:#111315;--foreground:#e8eaed;--muted:#1c2024;--border:#31363b;--accent:#7bc7ff;--accent-soft:rgba(123,199,255,0.13)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--background);color:var(--foreground);font-family:var(--font-sans);line-height:1.75}a{color:var(--accent);text-underline-offset:.18em}img{display:block;max-width:100%;height:auto;border-radius:8px}hr{border:0;border-top:1px dashed var(--border);margin:2rem 0}.site-header{display:grid;grid-template-columns:1fr auto auto;align-items:center;grid-gap:1rem;gap:1rem;max-width:880px;margin:0 auto;padding:1.25rem 1rem .75rem;border-bottom:1px dashed var(--border)}.admin-shell{display:grid;grid-template-columns:minmax(220px,30%) 1fr;min-height:100vh}.admin-shell aside{padding:1rem;border-right:1px solid var(--border);overflow:auto}.admin-shell aside>.button-link{margin:0 .5rem 1rem 0}.admin-shell ul{padding:0;list-style:none}.admin-shell li{display:grid;grid-template-columns:1fr auto;grid-gap:.35rem;gap:.35rem;margin:.45rem 0}.admin-item{border:0;background:transparent;color:var(--foreground);cursor:pointer;text-align:left}.admin-item small{display:block;color:var(--accent)}.admin-shell section{padding:2rem;max-width:900px}.admin-shell form{display:grid;grid-gap:1rem;gap:1rem}.admin-shell label{display:grid;grid-gap:.35rem;gap:.35rem;font-weight:600}.admin-login input,.admin-shell input,.admin-shell select,.admin-shell textarea{width:100%;padding:.65rem;border:1px solid var(--border);border-radius:6px;background:var(--background);color:var(--foreground);font:inherit}.admin-shell textarea{min-height:52vh;font-family:var(--font-mono)}.admin-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:1rem;gap:1rem}.admin-top{display:flex;justify-content:space-between;align-items:center}.admin-login{min-height:70vh;display:grid;place-items:center;padding:1rem}.admin-login form{display:grid;width:min(100%,360px);grid-gap:1rem;gap:1rem}@media (max-width:720px){.admin-shell{grid-template-columns:1fr}.admin-shell aside{border-right:0;border-bottom:1px solid var(--border)}.admin-grid{grid-template-columns:1fr}}.brand{color:var(--foreground);font-weight:700;text-decoration:none}.site-header nav{display:flex;flex-wrap:wrap;gap:.85rem}.site-header nav a{color:var(--foreground);font-size:.95rem;text-decoration:none}.site-header nav a:hover{color:var(--accent)}.icon-button{width:2.25rem;height:2.25rem;border:1px solid var(--border);border-radius:8px;background:var(--background);color:var(--foreground);cursor:pointer}.page-shell{width:min(100%,760px);margin:0 auto;padding:3rem 1rem 4rem}.page-shell.narrow{max-width:560px}.page-shell h1{margin:0 0 .25rem;color:var(--accent);font-size:2rem;line-height:1.25}.page-desc{margin-top:0;color:color-mix(in srgb,var(--foreground),transparent 28%)}.post-list,.tag-cloud,.tag-list{margin:0;padding:0;list-style:none}.post-card{margin:1.75rem 0}.post-card-title{display:inline-block;color:var(--accent);font-size:1.15rem;font-weight:650}.post-card p{margin:.35rem 0 0}.post-date{display:flex;flex-wrap:wrap;gap:.75rem;margin:.2rem 0;color:color-mix(in srgb,var(--foreground),transparent 35%);font-size:.9rem}.modified{color:color-mix(in srgb,var(--foreground),transparent 45%)}.center-action{margin-top:2.5rem;text-align:center}.button-link,.pagination .disabled,.pagination a{display:inline-flex;align-items:center;min-height:2.35rem;padding:.35rem .8rem;border:1px solid var(--border);border-radius:8px;text-decoration:none}.pagination{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:2.5rem}.pagination .disabled{opacity:.45}.article-shell{max-width:800px}.article-body{margin-top:2rem;font-size:1.04rem}.article-body h2,.article-body h3,.article-body h4,.article-body h5,.article-body h6{margin-top:2rem;line-height:1.35}.article-body blockquote{margin:2rem 0;padding:.8rem 1.1rem;border-left:4px solid var(--accent);border-radius:8px;background:var(--muted)}.article-body pre{overflow:auto;padding:1rem;border-radius:8px;background:var(--muted)}.article-body code{font-family:var(--font-mono)}.tag-list{gap:.75rem}.tag-cloud,.tag-list{display:flex;flex-wrap:wrap}.tag-cloud{gap:1rem}.tag{display:inline-flex;gap:.15rem;color:var(--accent);text-decoration:none}.post-nav{display:grid;grid-template-columns:1fr 1fr;grid-gap:1rem;gap:1rem}.post-nav a{display:grid;grid-gap:.25rem;gap:.25rem;text-decoration:none}.post-nav a:last-child{text-align:right}.post-nav span{color:color-mix(in srgb,var(--foreground),transparent 35%);font-size:.9rem}.archive-month,.archive-year{margin-top:2rem}.toc{position:fixed;top:50%;right:1rem;z-index:10;width:240px;max-height:420px;transform:translateY(-50%);overflow:auto;border:1px solid var(--border);border-radius:8px;background:color-mix(in srgb,var(--background),transparent 12%);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.toc h2{position:-webkit-sticky;position:sticky;top:0;margin:0;padding:.75rem 1rem;border-bottom:1px solid var(--border);background:var(--background);color:var(--accent);font-size:.95rem}.toc nav{display:grid;grid-gap:.2rem;gap:.2rem;padding:.75rem 1rem 1rem}.toc a{color:color-mix(in srgb,var(--foreground),transparent 25%);font-size:.85rem;text-decoration:none}.toc-level-3{padding-left:.75rem}.toc-level-4,.toc-level-5,.toc-level-6{padding-left:1.35rem}.back-to-top{position:fixed;right:1rem;bottom:1rem;width:2.5rem;height:2.5rem;border:1px solid var(--border);border-radius:8px;background:var(--background);color:var(--accent);cursor:pointer}.site-footer{max-width:880px;margin:0 auto;padding:1rem;border-top:1px dashed var(--border);color:color-mix(in srgb,var(--foreground),transparent 35%)}@media (max-width:1120px){.toc{display:none}}@media (max-width:720px){.site-header{grid-template-columns:1fr auto}.site-header nav{grid-column:1/-1}.post-nav{grid-template-columns:1fr}.post-nav a:last-child{text-align:left}}