.post-related[data-astro-cid-ctzdi7mj]{margin-top:var(--space-12);padding-top:var(--space-8);border-top:1px solid var(--color-line)}.post-related__title[data-astro-cid-ctzdi7mj]{margin:0 0 var(--space-5, 1.25rem);font-size:1.2rem}.post-related__list[data-astro-cid-ctzdi7mj]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-4);margin:0;padding:0;list-style:none}.post-related__card[data-astro-cid-ctzdi7mj]{display:flex;flex-direction:column;gap:var(--space-2);height:100%;padding:var(--space-5, 1.25rem);color:inherit;text-decoration:none}.post-related__name[data-astro-cid-ctzdi7mj]{color:var(--color-ink);font-size:1rem;font-weight:700;line-height:var(--leading-tight)}.post-related__card[data-astro-cid-ctzdi7mj]:hover .post-related__name[data-astro-cid-ctzdi7mj]{color:var(--color-blue-deep)}.post-related__desc[data-astro-cid-ctzdi7mj]{display:-webkit-box;overflow:hidden;color:var(--color-muted);font-size:.88rem;line-height:var(--leading-normal);-webkit-box-orient:vertical;-webkit-line-clamp:3}.post-cta[data-astro-cid-ctzdi7mj]{margin-top:var(--space-12);padding:var(--space-8);background:linear-gradient(135deg,rgba(var(--rgb-teal),.1),rgba(var(--rgb-paper),.94) 48%),var(--color-paper)}.post-cta__copy[data-astro-cid-ctzdi7mj] h2[data-astro-cid-ctzdi7mj]{margin:var(--space-2) 0 var(--space-3);font-size:clamp(1.4rem,2.4vw,1.8rem);line-height:var(--leading-tight)}.post-cta__copy[data-astro-cid-ctzdi7mj] p[data-astro-cid-ctzdi7mj]{margin:0;max-width:60ch;color:var(--color-graphite);font-size:1rem;line-height:var(--leading-relaxed)}.post-cta__actions[data-astro-cid-ctzdi7mj]{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-6)}.post-cta__social[data-astro-cid-ctzdi7mj]{margin-top:var(--space-6);padding-top:var(--space-5, 1.25rem);border-top:1px solid var(--color-line)}.post-nav[data-astro-cid-ctzdi7mj]{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4);margin-top:var(--space-6)}.post-nav__link[data-astro-cid-ctzdi7mj]{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-5, 1.25rem);color:inherit;text-decoration:none}.post-nav__link--next[data-astro-cid-ctzdi7mj]{align-items:flex-end;text-align:right}.post-nav__dir[data-astro-cid-ctzdi7mj]{color:var(--color-blue-deep);font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.post-nav__title[data-astro-cid-ctzdi7mj]{color:var(--color-ink);font-size:1rem;font-weight:700;line-height:var(--leading-tight)}.post-nav__link[data-astro-cid-ctzdi7mj]:hover .post-nav__title[data-astro-cid-ctzdi7mj]{color:var(--color-blue-deep)}.post-nav__spacer[data-astro-cid-ctzdi7mj]{display:block}@media(max-width:860px){.post-related__list[data-astro-cid-ctzdi7mj]{grid-template-columns:1fr}}@media(max-width:640px){.post-cta[data-astro-cid-ctzdi7mj]{padding:var(--space-5, 1.25rem)}.post-nav[data-astro-cid-ctzdi7mj]{grid-template-columns:1fr}.post-nav__link--next[data-astro-cid-ctzdi7mj]{align-items:flex-start;text-align:left}}main[data-astro-cid-bvzihdzo]{width:calc(100% - 2em);max-width:100%;margin:0;padding-top:var(--space-8)}.hero-image[data-astro-cid-bvzihdzo]{width:100%;max-width:1120px;margin:0 auto}.hero-image[data-astro-cid-bvzihdzo] img[data-astro-cid-bvzihdzo]{display:block;margin:0 auto;border:1px solid var(--color-line);border-radius:var(--radius-lg);box-shadow:var(--shadow-lift)}.prose[data-astro-cid-bvzihdzo]{width:var(--container-content);max-width:calc(100% - 2em);margin:auto;padding:var(--space-8) 0 var(--space-16);color:var(--color-graphite)}.title[data-astro-cid-bvzihdzo]{margin-bottom:var(--space-8);padding:var(--space-8) 0 var(--space-4);border-bottom:1px solid var(--color-line);line-height:1}.title[data-astro-cid-bvzihdzo] h1[data-astro-cid-bvzihdzo]{margin:0;font-size:clamp(2.1rem,4vw,3.35rem)}.date[data-astro-cid-bvzihdzo]{margin-bottom:var(--space-3);color:var(--color-muted);font-size:.82rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.reading-time[data-astro-cid-bvzihdzo]:before{content:"·";margin:0 .5rem;color:var(--color-line)}.post-topics[data-astro-cid-bvzihdzo]{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-4)}.post-topic[data-astro-cid-bvzihdzo]{display:inline-flex;align-items:center;padding:.25rem .65rem;border:1px solid var(--color-line);border-radius:999px;background:rgba(var(--rgb-paper),.8);color:var(--color-graphite);font-size:.74rem;font-weight:700;letter-spacing:.02em;text-decoration:none;transition:border-color .18s ease,color .18s ease}.post-topic[data-astro-cid-bvzihdzo]:hover{border-color:rgba(var(--rgb-blue),.35);color:var(--color-blue-deep)}.last-updated-on[data-astro-cid-bvzihdzo]{margin-top:var(--space-1);font-style:normal;letter-spacing:0;text-transform:none}.prose .code-card{--code-bg: var(--color-code);--code-border: rgba(148, 163, 184, .18);--code-fg: #e2e8f0;--code-muted: #94a3b8;position:relative;margin:1.75em 0;border-radius:var(--radius-lg);background:linear-gradient(180deg,var(--color-code) 0%,#0a0f1c 100%);border:1px solid var(--code-border);box-shadow:var(--shadow-code);overflow:hidden;transition:box-shadow .25s ease,transform .25s ease}.prose .code-card:hover{box-shadow:0 1px #ffffff0d inset,0 20px 50px rgba(var(--rgb-blue),.18)}.prose .code-card__bar{display:flex;align-items:center;gap:.6rem;padding:.55rem .85rem;background:linear-gradient(180deg,#ffffff0a,#fff0);border-bottom:1px solid var(--code-border);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;color:var(--code-muted)}.prose .code-card__dots{display:inline-flex;gap:6px;margin-right:.35rem}.prose .code-card__dots span{width:11px;height:11px;border-radius:50%;background:#2a3346;box-shadow:inset 0 0 0 1px #ffffff0a}.prose .code-card__dots span:nth-child(1){background:#ff5f57}.prose .code-card__dots span:nth-child(2){background:#febc2e}.prose .code-card__dots span:nth-child(3){background:#28c840}.prose .code-card__lang{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;background:rgba(var(--rgb-blue),.14);color:#93c5fd;font-weight:600;letter-spacing:.04em;text-transform:uppercase;font-size:.68rem}.prose .code-card__file{color:var(--code-muted);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.prose .code-card__spacer{flex:1}.prose .code-card__btn{appearance:none;border:1px solid var(--code-border);background:#ffffff08;color:var(--code-fg);font-family:inherit;font-size:.72rem;padding:4px 9px;border-radius:7px;cursor:pointer;display:inline-flex;align-items:center;gap:5px;transition:background .15s ease,border-color .15s ease,color .15s ease}.prose .code-card__btn:hover{background:rgba(var(--rgb-blue),.16);border-color:rgba(var(--rgb-blue),.5);color:#dbeafe}.prose .code-card__btn[data-state=ok]{background:#22c55e26;border-color:#22c55e73;color:#bbf7d0}.prose .code-card__btn svg{width:12px;height:12px}.prose .code-card pre{margin:0!important;border-radius:0!important;background:transparent!important;padding:1rem 1.1rem!important;font-size:.92rem;overflow-x:auto;counter-reset:line}.prose .code-card pre code>.line{display:inline-block;width:100%;padding:0 .4rem;border-left:2px solid transparent;transition:background .12s ease,border-color .12s ease}.prose .code-card pre code>.line:hover{background:#94a3b812}.prose .code-card[data-numbered=true] pre code>.line:before{counter-increment:line;content:counter(line);display:inline-block;width:1.8rem;margin-right:.9rem;text-align:right;color:#94a3b873;user-select:none}.prose .code-card pre code>.line.is-marked{background:#2563eb29;border-left-color:var(--accent)}.prose .code-card[data-collapsible=true][data-collapsed=true] pre{max-height:280px;overflow:hidden}.prose .code-card[data-collapsible=true][data-collapsed=true]:after{content:"";position:absolute;left:0;right:0;bottom:38px;height:80px;background:linear-gradient(180deg,#0a0f1c00,#0a0f1c 90%);pointer-events:none}.prose .code-card__expand{display:none;width:100%;border:none;border-top:1px solid var(--code-border);background:#ffffff05;color:#93c5fd;font-family:inherit;font-size:.78rem;padding:.55rem;cursor:pointer;letter-spacing:.03em}.prose .code-card__expand:hover{background:#2563eb1f}.prose .code-card[data-collapsible=true] .code-card__expand{display:block}.prose code:not(pre code){background:rgba(var(--rgb-blue),.1);color:var(--color-blue-deep);padding:1px 6px;border-radius:6px;font-size:.92em}
