:root{--bg:#111216;--surface:#202226;--surface-2:#323438;--text:#fdfbf7;--muted:#a6a7a7;--border:#323438;--primary:#5b73c9;--primary-strong:#30406d;--accent:#90a0f8;--accent-soft:#a8d1f6;--accent-warm:#7c66d8;--elev:var(--surface-2);--border-strong:#3d4045;--navy:var(--primary-strong);--navy-soft:var(--primary);--secondary:#cbcbca;--link:var(--primary);--link-hover:var(--accent);--accent-strong:var(--accent);--accent-dim:#515f95;--prose:#e6e4df;--code-bg:#181a1e;--shadow:0 1px 0 #ffffff05, 0 8px 30px #0006;--mono:"Spline Sans Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--sans:"IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif}html[data-theme=light]{--bg:#fdfbf7;--surface:#edebe6;--surface-2:#d8d6cf;--text:#111216;--muted:#5e6168;--border:#d8d6cf;--primary:#30406d;--primary-strong:#5b73c9;--accent:#90a0f8;--accent-soft:#c5d9f8;--accent-warm:#7c66d8;--elev:var(--surface-2);--border-strong:#cac7be;--navy:var(--primary);--navy-soft:var(--primary);--secondary:#3b3d42;--link:var(--primary);--link-hover:var(--primary-strong);--accent-strong:var(--primary-strong);--accent-dim:#8a93b2;--prose:#2a2c30;--code-bg:#e7e4dd;--shadow:0 1px 2px #14161e0d, 0 12px 30px #282d3c14}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased;min-height:100vh;line-height:1.6;transition:background-color .25s,color .25s}a{color:var(--link);text-decoration:none}a:hover{color:var(--link-hover)}.wrap{max-width:720px;margin:0 auto;padding:0 28px}.feed-page{padding-top:34px}.site-head{z-index:20;background:color-mix(in srgb, var(--bg) 82%, transparent);backdrop-filter:saturate(140%)blur(10px);border-bottom:1px solid var(--border);position:sticky;top:0}.site-head-in{justify-content:space-between;align-items:center;gap:16px;max-width:720px;margin:0 auto;padding:14px 28px;display:flex}.brand{color:var(--text);align-items:center;gap:11px;text-decoration:none;display:flex}.brand img{object-fit:contain;width:30px;height:30px;display:block}.brand .name{font-family:var(--mono);letter-spacing:-.01em;font-size:15px;font-weight:600}.brand .name .path{color:var(--muted);font-weight:400}nav.site-nav{align-items:center;gap:6px;display:flex}nav.site-nav .links{gap:4px;display:flex}nav.site-nav a{font-family:var(--mono);color:var(--secondary);border-radius:8px;padding:7px 10px;font-size:12.5px;transition:color .15s,background .15s}nav.site-nav a:hover{color:var(--text);background:var(--elev)}.toggle{appearance:none;border:1px solid var(--border-strong);background:var(--surface);color:var(--secondary);cursor:pointer;border-radius:9px;place-items:center;width:34px;height:34px;margin-left:4px;transition:border-color .15s,color .15s,background .25s;display:grid}.toggle:hover{border-color:var(--primary);color:var(--link)}.toggle .ico{width:16px;height:16px}html[data-theme=dark] .toggle .sun{display:block}html[data-theme=dark] .toggle .moon,html[data-theme=light] .toggle .sun{display:none}html[data-theme=light] .toggle .moon{display:block}.prompt{font-family:var(--mono);color:var(--muted);align-items:center;gap:4px;font-size:13px;display:flex}.cursor{background:var(--link);width:8px;height:15px;animation:1.1s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}@media (prefers-reduced-motion:reduce){.cursor{animation:none}}.tag{font-family:var(--mono);color:var(--link);font-size:12px}.badge{font-family:var(--mono);letter-spacing:.02em;color:var(--accent-strong);background:color-mix(in srgb, var(--navy) 60%, transparent);border:1px solid var(--navy-soft);white-space:nowrap;border-radius:7px;padding:3px 8px;font-size:11px;font-weight:500}html[data-theme=light] .badge{color:#fff;background:var(--navy);border-color:var(--navy)}.site-foot{border-top:1px solid var(--border);font-family:var(--mono);color:var(--muted);margin-top:64px;font-size:12px}.site-foot-in{flex-wrap:wrap;align-items:center;gap:8px 16px;max-width:720px;margin:0 auto;padding:26px 28px 60px;display:flex}.site-foot a{color:var(--muted)}.site-foot a:hover{color:var(--accent)}.site-foot .dot{opacity:.5}.site-foot .spacer{flex:1}.feed-intro{font-family:var(--mono);color:var(--secondary);max-width:60ch;margin:14px 0 30px;font-size:13.5px;line-height:1.7}.feed-intro .c{color:var(--muted)}.feed-intro strong{color:var(--text);font-weight:600}.feed-empty .c2{color:var(--accent-dim)}.feed{flex-direction:column;gap:2px;display:flex}.entry{color:inherit;border:1px solid #0000;border-radius:14px;margin:0 -26px;padding:26px;text-decoration:none;transition:background .15s,border-color .15s;display:block}.entry:hover{background:var(--surface);border-color:var(--border)}.entry.featured{background:var(--surface);border-color:var(--border);box-shadow:var(--shadow)}.entry-meta{font-family:var(--mono);color:var(--muted);flex-wrap:wrap;align-items:center;gap:10px;font-size:12px;display:flex}.entry-meta .sep{opacity:.5}.entry-title{font-family:var(--mono);letter-spacing:-.015em;color:var(--text);margin:14px 0 10px;font-size:22px;font-weight:600;line-height:1.25}.entry-title .caret{color:var(--link)}.entry.featured .entry-title .caret{color:var(--accent-warm)}.entry:hover .entry-title{color:var(--accent-strong)}.entry-dek{color:var(--secondary);max-width:62ch;margin:0 0 16px;font-size:15px}.entry-foot{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.entry-tags{flex-wrap:wrap;gap:12px;display:flex}.entry-read{font-family:var(--mono);color:var(--link);margin-left:auto;font-size:12.5px}.entry-read .arr{transition:transform .15s;display:inline-block}.entry:hover .entry-read .arr{transform:translate(3px)}.feed-empty{font-family:var(--mono);color:var(--muted);align-items:center;gap:8px;padding:22px 0 4px;font-size:12.5px;display:flex}.post{padding-top:26px}.back{font-family:var(--mono);color:var(--muted);align-items:center;gap:6px;margin-bottom:26px;font-size:12.5px;display:inline-flex}.back:hover{color:var(--accent)}.post-head{border-bottom:1px solid var(--border);margin-bottom:34px;padding-bottom:30px}.post-meta{font-family:var(--mono);color:var(--muted);flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;font-size:12.5px;display:flex}.post-meta .sep{opacity:.5}.post-title{font-family:var(--mono);letter-spacing:-.02em;color:var(--text);margin:0 0 16px;font-size:33px;font-weight:600;line-height:1.18}.post-dek{color:var(--secondary);margin:0 0 20px;font-size:17px;line-height:1.55}.post-tags{flex-wrap:wrap;gap:14px;display:flex}.post-body{color:var(--text);font-size:16.5px;line-height:1.72}.post-body>:first-child{margin-top:0}.post-body p{color:var(--prose);margin:0 0 20px}.post-body li{color:var(--prose)}.post-body strong{color:var(--text);font-weight:600}.post-body em{color:var(--secondary)}.post-body a{border-bottom:1px solid var(--accent-dim)}.post-body h2{font-family:var(--mono);letter-spacing:-.01em;color:var(--text);margin:52px 0 18px;padding-top:6px;font-size:22px;font-weight:600;line-height:1.3}.post-body h2:before{content:"## ";color:var(--accent-dim);font-weight:400}.post-body h3{font-family:var(--mono);color:var(--text);margin:34px 0 12px;font-size:16px;font-weight:600}.post-body h3:before{content:"### ";color:var(--accent-dim);font-weight:400}.post-body ul{flex-direction:column;gap:9px;margin:0 0 22px;padding:0;list-style:none;display:flex}.post-body ul li{padding-left:24px;position:relative}.post-body ul li:before{content:"-";color:var(--accent);font-family:var(--mono);position:absolute;left:4px}.post-body ol{counter-reset:i;flex-direction:column;gap:9px;margin:0 0 22px;padding-left:26px;display:flex}.post-body ol li{padding-left:4px}.post-body ol li:before{content:none}.post-body code{font-family:var(--mono);background:var(--code-bg);border:1px solid var(--border);color:var(--accent-strong);border-radius:6px;padding:1px 6px;font-size:.86em}.post-body pre{background:var(--code-bg);border:1px solid var(--border);border-radius:12px;margin:0 0 24px;padding:18px 20px;line-height:1.6;overflow-x:auto}.post-body pre code{color:var(--text);background:0 0;border:none;padding:0;font-size:13px}.post-body .shiki,.post-body .shiki span{color:var(--shiki-dark);background-color:var(--shiki-dark-bg)}html[data-theme=light] .post-body .shiki,html[data-theme=light] .post-body .shiki span{color:var(--shiki-light);background-color:var(--shiki-light-bg)}.post-body pre .cmt{color:var(--muted)}.post-body pre .kw{color:var(--link)}.post-body pre .str{color:#9bd1a0}html[data-theme=light] .post-body pre .str{color:#2f7d4a}.post-body hr{border:none;border-top:1px dashed var(--border-strong);margin:40px 0}.post-body blockquote,.aside-note{border-left:2px solid var(--accent-dim);background:var(--surface);color:var(--secondary);border-radius:0 12px 12px 0;margin:0 0 24px;padding:18px 22px;font-style:italic}.aside-note{font-style:normal}.aside-note .label{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:8px;font-size:11px;font-style:normal;display:block}.post-body img{border:1px solid var(--border);border-radius:12px;max-width:100%;height:auto}.stat-grid{background:var(--border);border:1px solid var(--border);border-radius:12px;grid-template-columns:repeat(2,1fr);gap:1px;margin:0 0 24px;display:grid;overflow:hidden}.stat-grid .cell{background:var(--surface);padding:16px 18px}.stat-grid .num{font-family:var(--mono);color:var(--accent-strong);font-size:22px;font-weight:600}.stat-grid .lbl{color:var(--secondary);margin-top:3px;font-size:13px}.post-foot{border-top:1px solid var(--border);margin-top:48px;padding-top:26px}.post-foot .reader-notes{flex-direction:column;gap:12px;display:flex}.post-foot .reader-notes p{font-family:var(--mono);color:var(--muted);margin:0;font-size:12.5px;line-height:1.6}.post-foot .reader-notes em{color:var(--accent);font-style:normal}.admin-wrap{max-width:1080px;margin:0 auto;padding:34px 28px 0}.admin-head,.admin-toolbar,.admin-post-row,.editor-actions,.editor-body-head{justify-content:space-between;align-items:center;gap:18px;display:flex}.admin-head{border-bottom:1px solid var(--border);padding-bottom:26px}.admin-head h1,.auth-page h1{font-family:var(--mono);margin:8px 0 0;font-size:28px;line-height:1.2}.admin-nav{font-family:var(--mono);align-items:center;gap:8px;font-size:12.5px;display:flex}.admin-nav form{margin:0}.admin-toolbar{padding:24px 0}.admin-toolbar p,.admin-post-row p{color:var(--muted);margin:0}.button{appearance:none;border:1px solid var(--primary);background:var(--primary);min-height:38px;color:var(--text);font-family:var(--mono);cursor:pointer;border-radius:7px;justify-content:center;align-items:center;padding:8px 14px;font-size:12.5px;font-weight:600;display:inline-flex}.button:hover{background:var(--primary-strong);border-color:var(--primary-strong);color:var(--text)}.button-quiet{background:var(--surface);border-color:var(--border-strong);color:var(--secondary)}.button-danger{color:#e99caf;background:0 0;border-color:#9c4e62;margin-left:auto}html[data-theme=light] .button-danger{color:#7c273d}.admin-post-list{border-top:1px solid var(--border)}.admin-post-row{border-bottom:1px solid var(--border);padding:20px 0}.admin-post-row h2{font-family:var(--mono);margin:7px 0 3px;font-size:17px}.row-actions{font-family:var(--mono);align-items:center;gap:12px;font-size:12px;display:flex}.status-dot{background:var(--muted);border-radius:50%;width:7px;height:7px}.status-dot.published{background:var(--accent-soft);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent-soft) 18%, transparent)}.auth-page{min-height:55vh;padding-top:64px}.auth-page p{max-width:55ch;color:var(--secondary);margin:16px 0 24px}.form-error,.form-success{background:color-mix(in srgb, #d15b78 10%, var(--surface));color:var(--text);border-left:2px solid #d15b78;padding:12px 14px;font-size:13px}.form-success{border-left-color:var(--accent-soft);background:color-mix(in srgb, var(--accent-soft) 12%, var(--surface))}.post-editor{padding-top:26px}.editor-meta-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 22px;display:grid}.editor-meta-grid label,.editor-body{flex-direction:column;gap:8px;display:flex}.editor-meta-grid label>span,.editor-body-head{font-family:var(--mono);color:var(--muted);font-size:12px}.editor-wide{grid-column:1/-1}.post-editor input,.post-editor textarea,.post-editor select{border:1px solid var(--border-strong);background:var(--surface);width:100%;color:var(--text);font:inherit;border-radius:7px;outline:none;padding:10px 12px}.post-editor input:focus,.post-editor textarea:focus,.post-editor select:focus{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--primary) 18%, transparent)}.editor-body{margin-top:28px}.editor-body-head{flex-direction:row}#crepe-editor{border:1px solid var(--border-strong);background:var(--surface);border-radius:7px;min-height:480px;overflow:clip}.milkdown{--crepe-color-background:var(--surface);--crepe-color-on-background:var(--text);--crepe-color-surface:var(--bg);--crepe-color-surface-low:var(--surface-2);--crepe-color-on-surface:var(--text);--crepe-color-on-surface-variant:var(--secondary);--crepe-color-outline:var(--border-strong);--crepe-color-primary:var(--primary);--crepe-color-secondary:var(--accent-soft);--crepe-color-on-secondary:var(--bg);--crepe-color-inverse:var(--text);--crepe-color-on-inverse:var(--bg);--crepe-color-inline-code:var(--accent);--crepe-color-error:#d15b78;--crepe-color-hover:var(--surface-2);--crepe-color-selected:color-mix(in srgb, var(--accent-soft) 35%, var(--surface));--crepe-color-inline-area:var(--surface-2);--crepe-font-title:var(--mono);--crepe-font-default:var(--sans);--crepe-font-code:var(--mono);min-height:478px}.milkdown .ProseMirror{min-height:430px;padding:24px 28px 60px}.editor-actions{justify-content:flex-start;padding:24px 0 8px}@media (width<=560px){.wrap,.site-head-in,.site-foot-in,.admin-wrap{padding-left:18px;padding-right:18px}nav.site-nav .links{display:none}.entry{margin:0 -16px;padding:20px 16px}.post-title{font-size:26px}.post-body{font-size:15.5px}.stat-grid{grid-template-columns:1fr}.admin-head,.admin-post-row{flex-direction:column;align-items:flex-start}.admin-nav{flex-wrap:wrap}.editor-meta-grid{grid-template-columns:1fr}.editor-wide{grid-column:auto}.row-actions{width:100%}}.sr-only{clip:rect(1px, 1px, 1px, 1px);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:0;padding:0;overflow:hidden;position:absolute!important}
