.lightbox-modal{z-index:99999;opacity:0;pointer-events:none;user-select:none;position:fixed;inset:0}.lightbox-modal.is-active{opacity:1;pointer-events:auto}.lightbox-backdrop{z-index:1;background:#000000f0;position:absolute;inset:0}.lightbox-viewport{z-index:5;touch-action:none;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute;inset:0;overflow:hidden}.lightbox-stage{transform-origin:50%;will-change:transform;justify-content:center;align-items:center;display:flex}.lightbox-img{border-radius:var(--radius,8px);pointer-events:none;opacity:0;flex-shrink:0;display:block;box-shadow:0 10px 40px #0009;max-width:none!important;max-height:none!important}.lightbox-bottombar{z-index:20;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:.65rem;padding:1.25rem 1.5rem 1.75rem;display:flex;position:absolute;bottom:0;left:0;right:0}.lightbox-caption-badge{pointer-events:auto;color:#ffffffe6;-webkit-backdrop-filter:blur(16px);text-overflow:ellipsis;white-space:nowrap;user-select:none;background:#1a1a1ae6;border:1px solid #ffffff29;border-radius:999px;max-width:80vw;padding:.35rem .85rem;font-size:.82rem;overflow:hidden;box-shadow:0 10px 30px #00000080}.lightbox-caption-badge[hidden]{display:none!important}.lightbox-caption-badge .caption-text{letter-spacing:.01em}.lightbox-dock{pointer-events:auto;-webkit-backdrop-filter:blur(16px);color:#fff;background:#1a1a1ae6;border:1px solid #ffffff29;border-radius:999px;align-items:center;gap:.45rem;padding:.35rem .5rem;display:inline-flex;box-shadow:0 10px 30px #00000080}.dock-btn{color:#ffffffd9;cursor:pointer;background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;padding:0;display:inline-flex}.dock-btn:hover{color:#fff;background:#ffffff26}.dock-btn:active{background:#ffffff40}.dock-counter{font-family:var(--font-mono);color:#ffffffb3;user-select:none;flex-shrink:0;align-items:center;gap:.25rem;padding:0 .35rem;font-size:.8rem;display:inline-flex}.dock-sep{opacity:.4}.dock-divider{background:#fff3;flex-shrink:0;width:1px;height:14px;margin:0 .1rem}@media (width<=640px){.lightbox-bottombar{gap:.5rem;padding:1rem 1rem 1.25rem}.lightbox-caption-badge{max-width:88vw;padding:.25rem .7rem;font-size:.78rem}.dock-btn{width:28px;height:28px}.dock-counter{font-size:.75rem}}.article-header[data-astro-cid-vt34qafq]{border-bottom:1px solid var(--border);margin-bottom:2.5rem;padding-bottom:1.5rem}.article-title[data-astro-cid-vt34qafq]{letter-spacing:-.01em;font-size:1.8rem;font-weight:600;line-height:1.3}.article-subtitle[data-astro-cid-vt34qafq]{color:var(--text-muted);margin-top:.6rem;font-size:1rem;line-height:1.6}.article-meta[data-astro-cid-vt34qafq]{font-family:var(--font-mono);color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:1rem;font-size:.85rem;display:flex}.article-tags[data-astro-cid-vt34qafq]{flex-wrap:wrap;align-items:center;gap:.45rem;display:inline-flex}.meta-dot[data-astro-cid-vt34qafq]{opacity:.6}.post-nav[data-astro-cid-vt34qafq]{border-top:1px solid var(--border);grid-template-columns:1fr 1fr;gap:1rem;margin-top:3.5rem;padding-top:1.75rem;display:grid}.post-nav-item[data-astro-cid-vt34qafq]{border:1px solid var(--border);border-radius:var(--radius,8px);background-color:var(--bg);flex-direction:column;gap:.35rem;min-width:0;padding:.85rem 1rem;text-decoration:none;display:flex}.post-nav-item[data-astro-cid-vt34qafq]:hover{background-color:var(--code-bg);opacity:1;border-color:#80808052}.post-nav-item[data-astro-cid-vt34qafq].next{text-align:right;align-items:flex-end}.post-nav-label[data-astro-cid-vt34qafq]{font-family:var(--font-mono);color:var(--text-muted);font-size:.75rem}.post-nav-title[data-astro-cid-vt34qafq]{color:var(--text);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:.95rem;font-weight:500;overflow:hidden}@media (width<=560px){.post-nav[data-astro-cid-vt34qafq]{grid-template-columns:1fr}.post-nav-placeholder[data-astro-cid-vt34qafq]{display:none}.post-nav-item[data-astro-cid-vt34qafq].next{text-align:left;align-items:flex-start}}
