@font-face{font-family:JetBrains Mono;src:url(/fonts/JetBrainsMono-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/JetBrainsMono-Italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/JetBrainsMono-Medium.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/JetBrainsMono-Bold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}:root{--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--bg: #ffffff;--bg-raised: #f3f3f3;--fg: #1e1e1e;--fg-muted: #6e6e6e;--fg-faint: #9d9d9d;--accent: #0058c6;--accent-fg: #ffffff;--border: #e2e2e2;--border-strong: #cfcfcf;--selection: rgba(0, 88, 198, .16);--code-bg: #f7f7f8;--shadow: rgba(20, 20, 15, .08);--syn-heading: #0058c6;--syn-bold: #22863a;--syn-code: #a020a0;--syn-code-bg: rgba(160, 32, 160, .08);--radius: 3px;--measure: 68ch}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #151515;--bg-raised: #1c1c1a;--fg: #e8e8e3;--fg-muted: #a3a39a;--fg-faint: #6f6f68;--accent: #5aa6ff;--accent-fg: #0c1524;--border: #333330;--border-strong: #47473f;--selection: rgba(90, 166, 255, .22);--code-bg: #1f1f1c;--shadow: rgba(0, 0, 0, .35);--syn-heading: #c586c0;--syn-bold: #4ec9b0;--syn-code: #ce9178;--syn-code-bg: rgba(206, 145, 120, .1)}}:root[data-theme=dark]{--bg: #151515;--bg-raised: #1c1c1a;--fg: #e8e8e3;--fg-muted: #a3a39a;--fg-faint: #6f6f68;--accent: #5aa6ff;--accent-fg: #0c1524;--border: #333330;--border-strong: #47473f;--selection: rgba(90, 166, 255, .22);--code-bg: #1f1f1c;--shadow: rgba(0, 0, 0, .35);--syn-heading: #c586c0;--syn-bold: #4ec9b0;--syn-code: #ce9178;--syn-code-bg: rgba(206, 145, 120, .1)}*{box-sizing:border-box}html{color-scheme:light dark}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font-mono);font-size:15px;line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}::selection{background:var(--selection)}a{color:var(--accent);text-decoration-color:color-mix(in srgb,var(--accent) 45%,transparent);text-underline-offset:3px}a:hover{text-decoration-thickness:2px}button{font-family:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media(prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;transition-duration:.001ms!important}}.shell{min-height:100dvh;display:flex;flex-direction:column}.appbar{display:flex;align-items:center;gap:.6em;padding:.55em 1em;border-bottom:1px solid var(--border);background:var(--bg-raised);font-size:12.5px;color:var(--fg-muted);position:sticky;top:0;z-index:3}.appbar .breadcrumb{display:flex;align-items:center;gap:.4em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.appbar .breadcrumb a{color:var(--fg-muted)}.appbar .breadcrumb a:hover{color:var(--fg)}.appbar .theme-toggle{margin-left:auto;border:1px solid var(--border);background:transparent;color:var(--fg-muted);border-radius:var(--radius);padding:.3em .5em;cursor:pointer;line-height:1}.appbar .theme-toggle:hover{color:var(--fg);border-color:var(--border-strong)}.appbar .sidebar-toggle{display:none;border:1px solid var(--border);background:transparent;color:var(--fg-muted);border-radius:var(--radius);padding:.3em .6em;cursor:pointer;line-height:1;font-size:13px}.appbar .sidebar-toggle:hover{color:var(--fg);border-color:var(--border-strong)}.frame{flex:1;display:flex;align-items:flex-start}.main-col{flex:1;min-width:0;display:flex;flex-direction:column}.tabstrip{display:flex;align-items:stretch;background:var(--bg-raised);border-bottom:1px solid var(--border);position:sticky;top:2.6em;z-index:2;overflow-x:auto;-webkit-overflow-scrolling:touch}.tabstrip .tabs-before,.tabstrip .tabs-after{display:contents}.tabstrip .tab{display:inline-flex;align-items:center;gap:.5em;padding:calc(.6em - 2px) .9em .6em;background:var(--bg);border-right:1px solid var(--border);border-top:2px solid var(--accent);color:var(--fg);font-size:12.5px;flex-shrink:0;text-decoration:none}.tabstrip .tab-label{white-space:nowrap}.tabstrip .tab .dirty-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);opacity:0;flex-shrink:0}.tabstrip .tab[data-dirty=true] .dirty-dot{opacity:1}.tabstrip .tab .tab-close{border:none;background:none;padding:0 0 0 .2em;margin:0;color:inherit;font-size:14px;line-height:1;cursor:pointer;opacity:.45;flex-shrink:0}.tabstrip .tab:hover .tab-close,.tabstrip .tab:focus-within .tab-close{opacity:.8}.tabstrip .tab .tab-close:hover{opacity:1!important}.tabstrip .tab.tab-inactive{background:transparent;border-top-color:transparent;color:var(--fg-muted);cursor:pointer}.tabstrip .tab.tab-inactive:hover{background:var(--bg);color:var(--fg)}.tabstrip .tab-new{display:inline-flex;align-items:center;padding:calc(.6em - 2px) .9em .6em;border-top:2px solid transparent;color:var(--fg-faint);font-size:14px;text-decoration:none;flex-shrink:0}.tabstrip .tab-new:hover{color:var(--fg);background:var(--bg)}main{flex:1;width:100%;max-width:880px;margin:0 auto;padding:2.5em 1.25em 4em}.status-bar{display:flex;align-items:center;gap:1.25em;padding:.5em 1em;border-top:1px solid var(--border);background:var(--bg-raised);font-size:12px;color:var(--fg-muted);position:sticky;bottom:0;z-index:3}.status-bar .spacer{flex:1}.status-bar .status-message{color:var(--fg-muted)}.status-bar .status-message[data-state=error]{color:#c94c4c}.status-bar .status-message[data-state=success]{color:#2f9e5f}.sidebar{flex:none;width:220px;background:var(--bg-raised);border-right:1px solid var(--border);padding:.9em 0;position:sticky;top:2.6em;max-height:calc(100dvh - 2.6em);overflow-y:auto}.sidebar-folder{display:flex;align-items:center;gap:.4em;font-size:11px;color:var(--fg-muted);padding:.3em 1em}.sidebar-folder .chev{font-size:9px;color:var(--fg-faint)}.sidebar-file{display:flex;align-items:center;gap:.6em;padding:.35em 1em .35em 1.65em;font-size:12.5px;color:var(--fg-muted);text-decoration:none;border-left:2px solid transparent}.sidebar-file:hover{color:var(--fg);background:var(--bg)}.sidebar-file.active{background:var(--bg);color:var(--fg);border-left-color:var(--accent);font-weight:500}.sidebar-date{flex:none;min-width:2.8em;color:var(--fg-faint);font-variant-numeric:tabular-nums;font-size:10.5px}.sidebar-filename{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-empty{color:var(--fg-faint);font-size:12px;padding:0 1em;margin:0}.sidebar-backdrop{display:none}@media(max-width:760px){.appbar .sidebar-toggle{display:inline-flex;align-items:center}.sidebar{position:fixed;top:0;bottom:0;left:0;max-height:none;z-index:5;box-shadow:2px 0 12px var(--shadow);transform:translate(-100%);transition:transform .2s ease}.shell[data-sidebar-open=true] .sidebar{transform:translate(0)}.sidebar-backdrop{display:block;position:fixed;inset:0;background:#00000059;opacity:0;pointer-events:none;transition:opacity .2s ease;z-index:4}.shell[data-sidebar-open=true] .sidebar-backdrop{opacity:1;pointer-events:auto}}.intro{color:var(--fg-muted);max-width:var(--measure)}.intro-hint{color:var(--fg-faint);font-size:13px;max-width:var(--measure)}.post-header{margin-bottom:1.5em}.post-header h1{font-size:1.35em;margin:0 0 .35em}.post-meta{color:var(--fg-faint);font-size:13px;display:flex;gap:1em;flex-wrap:wrap}.post-tags a{color:var(--fg-faint);text-decoration-color:color-mix(in srgb,var(--fg-faint) 45%,transparent)}.post-tags a:hover{color:var(--accent)}.tag-post-list{list-style:none;margin:1.5em 0 0;padding:0;max-width:var(--measure);border-top:1px solid var(--border)}.tag-post-list li{border-bottom:1px solid var(--border)}.tag-post-list a{display:flex;align-items:baseline;gap:1em;padding:.6em 0;color:var(--fg);text-decoration:none}.tag-post-list a:hover{color:var(--accent)}.tag-post-date{flex:none;min-width:4em;color:var(--fg-faint);font-size:12px;font-variant-numeric:tabular-nums}.tag-post-title{min-width:0}.view-toggle{display:inline-flex;border:1px solid var(--border-strong);border-radius:999px;padding:2px;gap:2px;background:var(--bg-raised)}.view-toggle button{border:none;background:transparent;color:var(--fg-muted);padding:.25em .85em;border-radius:999px;cursor:pointer;font-size:12px;letter-spacing:.02em}.view-toggle button[aria-pressed=true]{background:var(--accent);color:var(--accent-fg)}.post-view[data-view=plain] .formatted-view,.post-view[data-view=formatted] .plain-view{display:none}.plain-view{margin:0;padding:1em 0;background:var(--code-bg);border:1px solid var(--border);border-radius:var(--radius);font-size:13.5px;line-height:1.7;counter-reset:line}.plain-view .line{display:flex;counter-increment:line}.plain-view .line:hover{background:var(--selection)}.plain-view .ln{flex:none;width:3.5ch;padding:0 1ch 0 0;text-align:right;color:var(--fg-faint);user-select:none}.plain-view .ln:before{content:counter(line)}.plain-view .lt{flex:1;min-width:0;padding-right:1.25em;white-space:pre-wrap;word-wrap:break-word}.plain-view .h{color:var(--syn-heading);font-weight:700}.plain-view .b{color:var(--syn-bold);font-weight:700}.plain-view .c{color:var(--syn-code);background:var(--syn-code-bg);border-radius:3px}.formatted-view{max-width:var(--measure)}.formatted-view :is(h1,h2,h3,h4,h5,h6){font-weight:700;line-height:1.3;margin:1.6em 0 .5em;scroll-margin-top:1.5em}.formatted-view h1{font-size:1.3em}.formatted-view h2{font-size:1.15em}.formatted-view h3{font-size:1.05em}.formatted-view .heading-anchor{margin-left:.5em;color:var(--fg-faint);text-decoration:none;font-weight:400;opacity:0;font-size:.8em}.formatted-view :is(h1,h2,h3,h4,h5,h6):hover .heading-anchor,.formatted-view .heading-anchor:focus-visible{opacity:1}.formatted-view p{margin:.9em 0}.formatted-view code{background:var(--code-bg);padding:.15em .4em;border-radius:var(--radius);font-size:.92em}.formatted-view pre{background:var(--code-bg);border:1px solid var(--border);border-radius:var(--radius);padding:1em;overflow-x:auto}.formatted-view pre code{background:none;padding:0}.formatted-view blockquote{margin:1em 0;padding:.2em 1em;border-left:3px solid var(--border-strong);color:var(--fg-muted)}.formatted-view img,.formatted-view video{max-width:100%;height:auto;border-radius:var(--radius);border:1px solid var(--border);margin:1em 0;display:block}.formatted-view a{word-break:break-word}.formatted-view ul,.formatted-view ol{padding-left:1.4em}.formatted-view hr{border:none;border-top:1px solid var(--border);margin:2em 0}.editor-field{margin-bottom:1em}.editor-field label{display:block;font-size:12px;color:var(--fg-muted);margin-bottom:.35em}.editor-field input[type=text],.editor-field input[type=password],.editor-field input[type=datetime-local]{width:100%;font-family:var(--font-mono);font-size:14px;padding:.5em .6em;background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius);color:var(--fg)}.editor-field input:focus-visible{border-color:var(--accent)}.editor-row{display:flex;gap:1em;flex-wrap:wrap}.editor-row .editor-field{flex:1;min-width:12em}.editor-textarea-wrap{position:relative;border:1px solid var(--border);border-radius:var(--radius);background:var(--code-bg)}.editor-textarea-wrap[data-dragover=true]{outline:2px dashed var(--accent);outline-offset:-2px}#body-textarea{display:block;width:100%;min-height:55vh;resize:vertical;border:none;background:transparent;color:var(--fg);font-family:var(--font-mono);font-size:13.5px;line-height:1.7;padding:1.25em}#body-textarea:focus-visible{outline:none}.upload-hint{padding:.5em 1.25em;border-top:1px dashed var(--border);color:var(--fg-faint);font-size:12px}.editor-actions{display:flex;align-items:center;gap:.75em;margin-top:1.25em}.btn{font-family:var(--font-mono);font-size:13px;padding:.5em 1.1em;border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--bg-raised);color:var(--fg);cursor:pointer}.btn:hover{border-color:var(--fg-muted)}.btn:disabled{opacity:.5;cursor:default}.btn.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}.login-form{max-width:22em;margin:3em auto}
