.lightbox{position:fixed;inset:0;z-index:99999;background:#000000eb;display:none;align-items:center;justify-content:center;backdrop-filter:blur(8px);cursor:zoom-out;padding:40px}.lightbox.open{display:flex}.lightbox-img{max-width:90vw;max-height:90vh;object-fit:contain;border-radius:6px;box-shadow:0 8px 40px #00000080;transition:opacity .25s;opacity:0}.lightbox-img.loaded{opacity:1}.lightbox-close{position:absolute;top:20px;right:28px;background:none;border:none;color:#fff;font-size:3rem;cursor:pointer;z-index:1;line-height:1;opacity:.6;transition:opacity .2s}.lightbox-close:hover{opacity:1}@media(max-width:640px){.lightbox{padding:16px}.lightbox-close{top:8px;right:12px;font-size:2.4rem}}.toc-sidebar{display:none}@media(min-width:1200px){.toc-sidebar{display:block;width:220px;flex-shrink:0;position:sticky;top:200px;align-self:flex-start}}.toc-inner{padding-left:24px;border-left:1px solid rgba(255,255,255,.08)}.toc-title{font-size:1.2rem;font-weight:600;color:#fff6;text-transform:uppercase;letter-spacing:.05em;margin:0 0 12px}.toc-nav{display:flex;flex-direction:column;gap:4px}.toc-nav a{font-size:1.25rem;color:#ffffff80;text-decoration:none;padding:3px 0;transition:color .15s;line-height:1.35}.toc-nav a:hover,.toc-nav a.active{color:var(--ghost-accent-color, #b6bdff)}.toc-nav a.toc-h3{padding-left:14px;font-size:1.2rem}.post-hero[data-astro-cid-gjtny2mx]{position:relative;height:55vh;min-height:360px;display:flex;align-items:flex-end;overflow:hidden;margin-bottom:clamp(40px,5vw,64px)}.post-hero-bg[data-astro-cid-gjtny2mx]{position:absolute;inset:0;background-size:cover;background-position:center}.post-hero-overlay[data-astro-cid-gjtny2mx]{position:absolute;inset:0;background:linear-gradient(to top,#000000bf,#00000026,#0000004d),linear-gradient(to right,rgba(0,0,0,.35) 0%,transparent 60%);z-index:1}.post-hero-content[data-astro-cid-gjtny2mx]{position:relative;z-index:2;padding:0 max(4vmin,40px) max(4vmin,40px);max-width:800px}.post-hero-tags[data-astro-cid-gjtny2mx]{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.post-hero-tag[data-astro-cid-gjtny2mx]{display:inline-block;font-size:1.2rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--ghost-accent-color, #b6bdff);text-decoration:none;padding:4px 0}.post-hero-tag[data-astro-cid-gjtny2mx]:hover{color:#fff}.post-hero-tag[data-astro-cid-gjtny2mx]+.post-hero-tag[data-astro-cid-gjtny2mx]:before{content:" · ";color:#fff6;margin-right:8px}.post-hero-title[data-astro-cid-gjtny2mx]{font-family:var(--gh-font-heading, "Noto Sans"),sans-serif;font-size:clamp(2.2rem,4vw,3.8rem);font-weight:700;line-height:1.15;letter-spacing:-.02em;color:#fff;margin:0 0 .6em;text-shadow:0 2px 12px rgba(0,0,0,.4)}.post-hero-meta[data-astro-cid-gjtny2mx]{font-size:1.4rem;color:#ffffffb3;font-weight:500}.post-hero-sep[data-astro-cid-gjtny2mx]{margin:0 8px;opacity:.5}.post-header-plain[data-astro-cid-gjtny2mx]{padding:140px max(4vmin,40px) 0;margin:0 auto 40px;max-width:var(--container-width, 1320px)}.post-header-tags[data-astro-cid-gjtny2mx]{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.post-header-tag[data-astro-cid-gjtny2mx]{font-size:1.2rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--ghost-accent-color, #b6bdff);text-decoration:none}.post-header-tag[data-astro-cid-gjtny2mx]:hover{opacity:.8}.post-body-wrap[data-astro-cid-gjtny2mx]{display:flex;gap:40px;max-width:var(--container-width, 1320px);margin:0 auto;padding:0 max(4vmin,40px);align-items:flex-start}.post-body-main[data-astro-cid-gjtny2mx]{flex:1;min-width:0}@media(max-width:1199px){.post-body-wrap[data-astro-cid-gjtny2mx]{flex-direction:column}}@media(max-width:640px){.post-hero[data-astro-cid-gjtny2mx]{height:50vh;min-height:260px;width:100%;max-width:100vw}.post-hero-bg[data-astro-cid-gjtny2mx]{max-width:100vw}.post-hero-content[data-astro-cid-gjtny2mx]{padding:0 20px 24px;max-width:100%}.post-hero-title[data-astro-cid-gjtny2mx]{font-size:1.8rem;word-break:break-word}.post-hero-meta[data-astro-cid-gjtny2mx]{font-size:1.2rem}.post-header-plain[data-astro-cid-gjtny2mx]{padding:100px 20px 0}.post-body-wrap[data-astro-cid-gjtny2mx]{padding:0 16px;gap:24px;max-width:100vw}.gh-content[data-astro-cid-gjtny2mx]{padding:0;word-break:break-word}.gh-content[data-astro-cid-gjtny2mx] pre[data-astro-cid-gjtny2mx],.gh-content[data-astro-cid-gjtny2mx] table[data-astro-cid-gjtny2mx]{max-width:calc(100vw - 32px)}}
