.bl{--pixel:"Press Start 2P", ui-monospace, monospace;--mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;max-width:1040px;color:var(--fg);overflow-wrap:break-word;margin:0 auto;padding:0 16px 64px;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.55}.bl *,.bl :before,.bl :after{min-width:0}.bl a:focus-visible{outline:2px solid var(--accent-2);outline-offset:3px}.bl-label,.bl-meta{font-family:var(--pixel);letter-spacing:.04em;text-transform:uppercase;color:var(--accent);margin:0;font-size:10px;line-height:1.8}.bl-head{margin-bottom:40px}.bl-head>:not(.bl-search,.bl-tools){max-width:720px}.bl-title{margin:14px 0 10px;font-size:clamp(32px,7vw,52px);line-height:1.1}.bl-lede{color:var(--muted);margin:0;font-size:17px}.bl-empty{color:var(--muted);padding:48px 0}.bl-search{margin-top:24px}.bl-search input{width:100%;min-height:48px;font:inherit;color:var(--fg);background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:0 16px;font-size:16px}.bl-search input:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 25%, transparent);outline:none}.bl-search input::placeholder{color:var(--muted)}.bl-sr{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.bl-tools{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 20px;margin-top:16px;display:flex}.bl-filter{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.bl-filter button{min-height:36px;font:inherit;color:var(--muted);background:var(--surface);border:1px solid var(--line);cursor:pointer;border-radius:999px;padding:0 14px;font-size:14px}.bl-filter button:hover{color:var(--fg);border-color:var(--accent-2)}.bl-filter button[aria-pressed=true]{color:var(--bg);background:var(--accent);border-color:var(--accent)}.bl-filter button:focus-visible,.bl-sort select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.bl-sort{color:var(--muted);align-items:center;gap:10px;font-size:14px;display:inline-flex;position:relative}.bl-sort:after{content:"";border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);pointer-events:none;width:6px;height:6px;position:absolute;top:50%;right:15px;transform:translateY(-70%)rotate(45deg)}.bl-sort:hover:after{border-color:var(--fg)}.bl-sort select{appearance:none;min-height:36px;font:inherit;color:var(--fg);background:var(--surface);border:1px solid var(--line);cursor:pointer;border-radius:999px;padding:0 36px 0 14px;font-size:14px}.bl-sort select:hover{border-color:var(--accent-2)}.bl-sub{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 16px;font-size:14px;font-weight:600}.bl-results{color:var(--muted);margin:0 0 20px}.bl-featured{margin:0 0 28px;padding:0;list-style:none}.bl-card--featured{border-color:color-mix(in srgb, var(--accent) 45%, var(--line))}.bl-card--featured .bl-card-title{margin:0;font-size:clamp(24px,3.4vw,32px);line-height:1.2}.bl-card--featured .bl-card-excerpt{-webkit-line-clamp:4;font-size:16px}@media (width>=760px){.bl-card--featured .bl-card-link{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);align-items:center;display:grid}.bl-card--featured .bl-card-img{aspect-ratio:1200/630}.bl-card--featured .bl-card-body{gap:12px;padding:28px}}.bl-cards{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:20px;margin:0;padding:0;list-style:none;display:grid}.bl-card{border:1px solid var(--line);background:var(--surface);border-radius:12px;flex-direction:column;transition:border-color .15s,transform .15s;display:flex;overflow:hidden}.bl-card:hover{border-color:color-mix(in srgb, var(--accent) 55%, var(--line));transform:translateY(-2px)}.bl-card-link{color:inherit;flex-direction:column;flex:1;text-decoration:none;display:flex}.bl-card-img{aspect-ratio:16/9;object-fit:cover;background:var(--wall);width:100%;display:block}.bl-card-img--empty{background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 18%, transparent), transparent 60%), repeating-linear-gradient(0deg, transparent 0 7px, color-mix(in srgb, var(--line) 70%, transparent) 7px 8px), var(--wall)}.bl-card-body{gap:8px;padding:18px 18px 8px;display:grid}.bl-card-title{font-size:20px;font-weight:700;line-height:1.3}.bl-card-link:hover .bl-card-title{color:var(--accent)}.bl-card-excerpt{color:var(--muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:15px;display:-webkit-box;overflow:hidden}.bl-card .bl-tags{padding:4px 18px 18px}.bl-tags{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.bl-tags li{border:1px solid var(--line);color:var(--accent-2);border-radius:999px;padding:2px 10px;font-size:12px}.bl-post{max-width:720px;margin:0 auto}.bl-back{min-height:44px;color:var(--muted);align-items:center;margin-bottom:16px;font-size:15px;text-decoration:none;display:inline-flex}.bl-back:hover{color:var(--accent)}.bl-post-head{margin-bottom:32px}.bl-post-title{letter-spacing:-.01em;margin:14px 0;font-size:clamp(30px,6.4vw,48px);line-height:1.12}.bl-dek{color:var(--muted);margin:0 0 18px;font-size:20px;line-height:1.5}.bl-cover{margin:0 0 40px}.bl-cover img{border:1px solid var(--line);border-radius:12px;width:100%;display:block}.bl-prose{font-size:19px;line-height:1.75}.bl-prose>*{margin:0 0 1.25em}.bl-prose{display:flow-root}.bl-prose ul,.bl-prose ol,.bl-quote,.bl-callout,.bl-bookmark{overflow:hidden}.bl-prose h2,.bl-prose h3,.bl-code,.bl-figure--wide,.bl-hr{clear:both}.bl-prose h2,.bl-prose h3{letter-spacing:-.005em;scroll-margin-top:24px;line-height:1.25}.bl-prose h2{margin:2em 0 .6em;font-size:1.5em}.bl-prose h3{margin:1.6em 0 .5em;font-size:1.2em}.bl-prose a{color:var(--accent);text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px}.bl-prose a:hover{text-decoration-thickness:2px}.bl-prose strong{color:var(--accent-2)}.bl-prose :not(pre)>code{border:1px solid var(--line);background:var(--surface);font-family:var(--mono);border-radius:5px;padding:.1em .35em;font-size:.85em}.bl-prose ul,.bl-prose ol{padding-left:1.4em}.bl-prose li{margin:.35em 0;padding-left:.2em}.bl-prose li::marker{color:var(--accent)}.bl-figure img{border:1px solid var(--line);border-radius:10px;max-width:100%;margin:0 auto;display:block}.bl-figure figcaption{color:var(--muted);text-align:center;margin-top:10px;font-size:15px}.bl-quote{border-left:3px solid var(--accent);margin-left:0;margin-right:0;padding:4px 0 4px 22px}.bl-quote p{color:var(--accent-2);margin:0;font-size:1.12em;font-style:italic}.bl-quote cite{color:var(--muted);margin-top:8px;font-size:15px;font-style:normal;display:block}.bl-quote cite:before{content:"— "}.bl-code{border:1px solid var(--line);background:#0c0c0c;border-radius:10px;position:relative;overflow:hidden}.bl-code pre{font-family:var(--mono);tab-size:2;margin:0;padding:16px 20px;font-size:15px;line-height:1.6;overflow-x:auto}.bl-code-bar{border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--surface) 70%, #0c0c0c);align-items:center;gap:10px;min-height:40px;padding:4px 6px 4px 16px;display:flex}.bl-code-name{color:var(--accent-2);font-family:var(--mono);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.bl-code-lang{color:var(--muted);font-family:var(--pixel);text-transform:uppercase;font-size:8px}.bl-copy{border:1px solid var(--line);min-height:30px;color:var(--fg);font:inherit;cursor:pointer;background:0 0;border-radius:6px;flex:none;margin-left:auto;padding:4px 12px;font-size:13px;font-weight:600}.bl-copy:hover{border-color:var(--accent);color:var(--accent)}.bl-copy:focus-visible{outline:2px solid var(--accent-2);outline-offset:2px}.bl-prompt{color:var(--accent);-webkit-user-select:none;user-select:none}.bl-line--add{color:#a8f0a0;background:#3fb9501f}.bl-line--del{color:#ffaaa0;background:#ff6a551f}.bl-code--diff .bl-line{min-width:100%;display:inline-block}.bl-prose a.bl-bookmark{border:1px solid var(--line);background:var(--surface);color:var(--fg);border-radius:12px;align-items:center;gap:16px;padding:16px 18px;text-decoration:none;transition:border-color .15s;display:flex}.bl-prose a.bl-bookmark:hover{border-color:color-mix(in srgb, var(--accent) 60%, var(--line))}.bl-bookmark-body{flex:1;gap:4px;display:grid}.bl-bookmark-title{font-size:17px;font-weight:700;line-height:1.35}.bl-bookmark:hover .bl-bookmark-title{color:var(--accent)}.bl-bookmark-desc{color:var(--muted);font-size:15px;line-height:1.5}.bl-bookmark-url{color:var(--accent);font-family:var(--mono);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.bl-bookmark-arrow{color:var(--muted);flex:none;font-size:20px}.bl-steps{counter-reset:step;list-style:none;padding:0!important}.bl-prose .bl-step{counter-increment:step;margin:0;padding:0 0 28px 52px;position:relative}.bl-step:before{content:counter(step);border:2px solid var(--accent);background:var(--bg);width:34px;height:34px;color:var(--accent);font-family:var(--pixel);border-radius:8px;place-items:center;font-size:11px;display:grid;position:absolute;top:0;left:0}.bl-step:not(:last-child):after{content:"";background:var(--line);width:2px;position:absolute;top:40px;bottom:6px;left:16px}.bl-step>*{margin:0 0 12px}.bl-step-title{padding-top:3px;font-size:1.08em;font-weight:700;line-height:1.4}@media (width>=760px){:is(.bl-figure--left:has(+p),.bl-figure--right:has(+p)){width:46%;margin-top:.3em!important;margin-bottom:.8em!important}.bl-figure--left:has(+p){float:left;margin-right:28px!important}.bl-figure--right:has(+p){float:right;margin-left:28px!important}.bl-figure--left figcaption,.bl-figure--right figcaption{text-align:left}}@media (width>=1120px){:is(.bl-figure--left:has(+p),.bl-figure--right:has(+p)){width:420px}.bl-figure--left:has(+p){margin-left:-120px!important}.bl-figure--right:has(+p){margin-right:-120px!important}}@media (width>=900px){.bl-figure--wide{width:min(1000px,100vw - 64px);transform:translate(-50%);margin-left:50%!important}}.bl-hr{background:radial-gradient(circle, var(--accent) 2px, transparent 2.5px) center / 24px 8px repeat-x;border:0;max-width:96px;height:8px;margin:2.4em auto!important}.bl-callout{border:1px solid var(--line);border-left:3px solid var(--accent);background:color-mix(in srgb, var(--accent) 6%, var(--surface));border-radius:10px;gap:14px;padding:16px 18px;font-size:.92em;display:flex}.bl-callout p{margin:0}.bl-callout-icon{background:var(--accent);width:26px;height:26px;color:var(--on-accent);font-family:var(--pixel);border-radius:6px;flex:none;place-items:center;margin-top:2px;font-size:10px;display:grid}.bl-callout--warn{background:color-mix(in srgb, #ffc857 7%, var(--surface));border-left-color:#ffc857}.bl-callout--warn .bl-callout-icon{background:#ffc857}.bl-callout--info{border-left-color:var(--accent-2);background:color-mix(in srgb, var(--accent-2) 5%, var(--surface))}.bl-callout--info .bl-callout-icon{background:var(--accent-2)}.bl-post-foot{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:56px;padding-top:24px;display:flex}.bl-post-foot a{border:1px solid var(--muted);min-height:44px;color:var(--fg);border-radius:8px;align-items:center;padding:10px 18px;font-weight:600;text-decoration:none;display:inline-flex}.bl-post-foot a:hover{background:var(--hover)}@media (width<=520px){.bl-prose,.bl-dek{font-size:18px}.bl-code pre{padding:14px 16px;font-size:14px}}@media (prefers-reduced-motion:reduce){.bl-card{transition:none}.bl-card:hover{transform:none}}.bl-progress{z-index:50;background:var(--accent);transform-origin:0;pointer-events:none;height:3px;position:fixed;inset:0 0 auto;transform:scaleX(0)}.bl-zoom-btn{width:100%;font:inherit;cursor:zoom-in;background:0 0;border:0;border-radius:10px;padding:0;display:block}.bl-zoom-btn:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.bl-zoom-btn img{width:100%;height:auto}.bl-zoom{z-index:50;background:color-mix(in srgb, var(--bg) 94%, transparent);cursor:zoom-out;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.bl-zoom img{object-fit:contain;border-radius:10px;max-width:min(1600px,100%);max-height:100%}.bl-zoom-close{width:44px;height:44px;color:var(--fg);background:var(--surface);border:1px solid var(--line);cursor:pointer;border-radius:50%;font-size:28px;line-height:1;position:absolute;top:12px;right:16px}
