.blog{position:fixed;inset:0;overflow-y:auto;background:var(--bg);color:var(--fg);box-shadow:inset 0 0 0 2px var(--frame)}.blog-inner{max-width:720px;margin:0 auto;padding:7vh 24px 16vh}.blog-navbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:3.5rem}.blog-navbar-brand{display:flex;align-items:center;gap:.85em;text-decoration:none;color:var(--fg-strong);min-width:0}.blog-navbar-mark{flex:0 0 auto;width:3.3em;height:3.3em;display:block}.blog-navbar-mark svg{width:100%;height:100%;display:block}.blog-navbar-mark svg path{fill:var(--mark-main)}.blog-navbar-text{display:flex;flex-direction:column;justify-content:center;min-width:0}.blog-navbar-name{font-family:var(--font-alpha-lyrae),ui-sans-serif,system-ui,sans-serif;font-weight:500;font-size:1.5em;line-height:1.1;color:var(--fg-strong)}.blog-navbar-sub{color:var(--fg-dim);font-size:1em;line-height:1.25}.blog-navbar-links{display:flex;align-items:center;gap:1.4rem;flex:0 0 auto;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.blog-navbar-link{color:var(--fg-dim);text-decoration:none;font-size:.95rem;transition:color .12s ease}.blog-navbar-link:hover,.blog-navbar-login{color:var(--fg-strong)}.blog-list{display:flex;flex-direction:column;gap:2.5rem}.blog-item a{text-decoration:none;color:inherit;display:block}.blog-item-title{font-family:var(--font-alpha-lyrae),ui-sans-serif,system-ui,sans-serif;font-size:1.4rem;color:var(--fg-strong);line-height:1.2;transition:opacity .12s ease}.blog-item a:hover .blog-item-title{opacity:.7}.blog-item-meta{color:var(--fg-faint);font-size:.85rem;margin:.4rem 0 .6rem}.blog-item-desc{line-height:1.6}.blog-back,.blog-empty,.blog-item-desc{color:var(--fg-dim)}.blog-back{display:inline-flex;align-items:center;gap:.35em;text-decoration:none;font-size:.9rem;margin-bottom:2rem;transition:color .12s ease}.blog-back:hover{color:var(--fg-strong)}.blog-back svg{width:1em;height:1em}.blog-post-title{font-family:var(--font-alpha-lyrae),ui-sans-serif,system-ui,sans-serif;font-size:2.1rem;line-height:1.15;color:var(--fg-strong);margin-bottom:.6rem}.blog-post-meta{color:var(--fg-faint);font-size:.85rem;margin-bottom:2.5rem}.blog-prose{line-height:1.75;color:var(--fg)}.blog-prose>*+*{margin-top:1.2rem}.blog-prose h2{font-size:1.5rem;margin-top:2.5rem}.blog-prose h2,.blog-prose h3{font-family:var(--font-alpha-lyrae),ui-sans-serif,system-ui,sans-serif;color:var(--fg-strong)}.blog-prose h3{font-size:1.2rem;margin-top:2rem}.blog-prose a{color:var(--input);text-underline-offset:3px}.blog-prose ol,.blog-prose ul{padding-left:1.4em}.blog-prose li+li{margin-top:.4rem}.blog-prose blockquote{border-left:2px solid var(--fg-faint);padding-left:1.1em;margin-left:0;color:var(--fg-dim);font-style:italic}.blog-prose code{font-family:inherit;font-size:.9em;padding:.12em .35em;border-radius:4px;background:color-mix(in srgb,var(--fg) 12%,transparent)}.blog-prose pre{background:color-mix(in srgb,var(--fg) 8%,transparent);border:1px solid color-mix(in srgb,var(--fg) 12%,transparent);border-radius:8px;padding:1rem 1.15rem;overflow-x:auto;line-height:1.6}.blog-prose pre code{padding:0;background:none;font-size:.85em}.theme-blue,.theme-dark{--hl-comment:rgba(255,255,255,0.45);--hl-keyword:#ff9e7a;--hl-string:#b5e08a;--hl-number:#ffcf6b;--hl-fn:#8fd3ff;--hl-attr:#d7b3ff;--hl-punct:rgba(255,255,255,0.78)}.theme-white{--hl-comment:rgba(0,0,0,0.45);--hl-keyword:#c2185b;--hl-string:#2e7d32;--hl-number:#b26a00;--hl-fn:#1565c0;--hl-attr:#6a1b9a;--hl-punct:rgba(0,0,0,0.72)}.blog-prose .hljs{color:var(--fg)}.blog-prose .hljs-comment,.blog-prose .hljs-quote{color:var(--hl-comment);font-style:italic}.blog-prose .hljs-doctag,.blog-prose .hljs-keyword,.blog-prose .hljs-literal,.blog-prose .hljs-name,.blog-prose .hljs-section,.blog-prose .hljs-selector-tag{color:var(--hl-keyword)}.blog-prose .hljs-meta .hljs-string,.blog-prose .hljs-regexp,.blog-prose .hljs-string{color:var(--hl-string)}.blog-prose .hljs-bullet,.blog-prose .hljs-meta,.blog-prose .hljs-number,.blog-prose .hljs-symbol{color:var(--hl-number)}.blog-prose .hljs-built_in,.blog-prose .hljs-class .hljs-title,.blog-prose .hljs-function .hljs-title,.blog-prose .hljs-title,.blog-prose .hljs-title.function_,.blog-prose .hljs-type{color:var(--hl-fn)}.blog-prose .hljs-attr,.blog-prose .hljs-attribute,.blog-prose .hljs-property,.blog-prose .hljs-template-variable,.blog-prose .hljs-variable{color:var(--hl-attr)}.blog-prose .hljs-operator,.blog-prose .hljs-punctuation{color:var(--hl-punct)}.blog-locked{position:relative}.blog-locked-content{filter:blur(7px);opacity:.6;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none;max-height:70vh;overflow:hidden;-webkit-mask-image:linear-gradient(180deg,#000 55%,transparent);mask-image:linear-gradient(180deg,#000 55%,transparent)}.blog-locked-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at center,color-mix(in srgb,var(--bg) 55%,transparent) 0,color-mix(in srgb,var(--bg) 20%,transparent) 60%,transparent 100%)}.blog-locked-badge{display:inline-flex;align-items:center;gap:.6em;font-family:var(--font-alpha-lyrae),ui-sans-serif,system-ui,sans-serif;font-size:1.05rem;color:var(--fg-strong);background:var(--bg);border:1px solid color-mix(in srgb,var(--fg) 18%,transparent);border-radius:999px;padding:.75em 1.4em;box-shadow:0 8px 30px rgba(0,0,0,.25)}.blog-locked-dot{width:.55em;height:.55em;border-radius:50%;background:var(--input);box-shadow:0 0 0 0 color-mix(in srgb,var(--input) 70%,transparent);animation:blog-locked-pulse 2s ease-out infinite}@keyframes blog-locked-pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--input) 70%,transparent)}70%{box-shadow:0 0 0 .6em color-mix(in srgb,var(--input) 0%,transparent)}to{box-shadow:0 0 0 0 color-mix(in srgb,var(--input) 0%,transparent)}}@media (prefers-reduced-motion:reduce){.blog-locked-dot{animation:none}}@media (max-width:600px){.blog-inner{padding-top:5vh}.blog-post-title{font-size:1.7rem}}