.prose{counter-reset:section;line-height:var(--leading-prose);overflow-wrap:break-word}.prose>*+*{margin-top:var(--space-4)}.prose h2,.prose h3,.prose h4{scroll-margin-top:var(--header-offset)}.prose h2{margin-top:var(--space-7);font-size:var(--text-2xl);padding-bottom:var(--space-2);border-bottom:var(--border-width) solid var(--color-glass-border)}.prose h2:before{counter-increment:section;content:counter(section,decimal-leading-zero);margin-right:var(--space-3);color:var(--color-accent);font-size:var(--text-sm);font-weight:var(--weight-medium);vertical-align:middle}.prose .footnotes h2:before{content:none}.prose .heading-anchor{margin-left:var(--space-2);color:var(--color-text-muted);font-weight:var(--weight-regular);text-decoration:none;opacity:0;transition:opacity var(--transition),color var(--transition)}.prose :is(h2,h3):hover .heading-anchor,.prose .heading-anchor:focus-visible{opacity:1}.prose .heading-anchor:hover{color:var(--color-accent)}.prose h3:before{content:"› ";color:var(--color-primary-light)}.prose>p:first-child{color:var(--color-text);font-size:var(--text-lg)}.prose h3{margin-top:var(--space-6);font-size:var(--text-xl)}.prose h4{margin-top:var(--space-5);font-size:var(--text-lg);color:var(--color-text-muted)}.prose a{text-decoration:underline;text-decoration-color:var(--color-glass-border);text-underline-offset:var(--space-1);transition:color var(--transition),text-decoration-color var(--transition)}.prose a:hover{text-decoration-color:var(--color-accent)}.prose p a[href^=http]:after{content:"↗";margin-left:var(--space-1);color:var(--color-text-muted);font-size:var(--text-xs)}.prose strong{font-weight:var(--weight-bold)}.prose ul,.prose ol{margin-bottom:0;padding-left:var(--space-5)}.prose ul{list-style:square}.prose ol{list-style:decimal}.prose li+li,.prose li>ul,.prose li>ol{margin-top:var(--space-1)}.prose li::marker{color:var(--color-text-muted)}.prose blockquote{margin-inline:0;padding:var(--space-3) var(--space-4);background-color:var(--color-glass);border-left:var(--border-accent-width) solid var(--color-accent);border-radius:0 var(--radius-lg) var(--radius-lg) 0;color:var(--color-text-muted);position:relative}.prose blockquote:before{content:"“";position:absolute;top:calc(-1 * var(--space-3));right:var(--space-4);color:color-mix(in srgb,var(--color-accent) 35%,transparent);font-size:var(--text-5xl);line-height:1}.prose hr{margin-block:var(--space-6);border:0;border-top:var(--border-width) solid var(--color-border)}.prose :not(pre)>code{padding:.1em .4em;background-color:var(--color-code-bg);border:var(--border-width) solid var(--color-code-inline);border-radius:var(--radius);color:var(--color-code-string);font-family:var(--font-code);font-size:.9em;font-variant-ligatures:none;overflow-wrap:anywhere}.prose a>code{color:inherit}.prose mark{padding:0 .2em;background-color:color-mix(in srgb,var(--color-accent) 22%,transparent);border-radius:var(--radius);color:var(--color-text)}.prose .code-block{--astro-code-background: var(--color-code-bg);--astro-code-token-keyword: var(--color-code-keyword);--astro-code-token-string: var(--color-code-string);--astro-code-token-string-expression: var(--color-code-string);--astro-code-token-function: var(--color-code-function);--astro-code-token-constant: var(--color-code-constant);--astro-code-token-comment: var(--color-code-comment);max-width:100%;background-color:var(--color-code-bg);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;transition:border-color var(--transition)}.prose .code-block:hover{border-color:var(--color-border-strong)}.prose .code-lang{display:inline-flex;align-items:center;gap:var(--space-2)}.prose .code-lang:before{content:">_";color:var(--color-accent);font-weight:var(--weight-bold)}.prose .code-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) var(--space-3) var(--space-2) var(--space-4);background-color:var(--color-code-head);color:var(--color-text-muted);font-size:var(--text-xs);line-height:var(--leading-normal)}.prose .code-copy{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);background:none;border:0;border-radius:var(--radius);color:var(--color-text-muted);font:inherit;cursor:pointer;transition:color var(--transition),background-color var(--transition)}.prose .code-copy:before{content:"";width:var(--space-2);height:var(--space-2);margin:0 var(--space-1) var(--space-1) 0;border:var(--border-width) solid currentColor;border-radius:var(--border-accent-width);box-shadow:var(--space-1) var(--space-1) 0 calc(-1 * var(--border-width)) var(--color-code-head),var(--space-1) var(--space-1) 0 0 currentColor}.prose .code-copy:hover{background-color:var(--color-glass);color:var(--color-text)}.prose pre{margin:0;padding:var(--space-3) var(--space-4);overflow-x:auto;font-family:var(--font-code);font-size:var(--text-sm);line-height:var(--leading-normal);font-variant-ligatures:none;tab-size:4}.prose pre code{counter-reset:line;font-family:inherit;font-size:inherit;font-variant-ligatures:none}.prose pre code:has(.line:nth-child(2)) .line:before{counter-increment:line;content:counter(line);display:inline-block;width:2ch;margin-right:var(--space-4);color:color-mix(in srgb,var(--color-text-muted) 55%,transparent);text-align:right;user-select:none}.prose .line-comment{color:var(--color-code-comment)}.prose .code-copy[data-copied]{color:var(--color-green)}.prose .table-wrap{max-width:100%;overflow-x:auto;background-color:var(--color-glass);border:var(--border-width) solid var(--color-glass-border);border-radius:var(--radius-lg)}.prose table{width:100%;border-collapse:collapse;font-size:var(--text-sm);white-space:nowrap}.prose th,.prose td{padding:var(--space-2) var(--space-3);border-bottom:var(--border-width) solid var(--color-border);text-align:left}.prose th{background-color:var(--color-surface);font-weight:var(--weight-bold)}.prose tr:last-child td{border-bottom:0}.prose tbody tr{transition:background-color var(--transition)}.prose tbody tr:hover{background-color:var(--color-pill)}.prose figure{margin-inline:0}.prose img{width:auto;max-height:var(--media-max);cursor:zoom-in;transition:border-color var(--transition),box-shadow var(--transition)}.prose img:hover{border-color:var(--color-primary);box-shadow:var(--shadow-glow)}.prose img{display:block;border:var(--border-width) solid var(--color-glass-border);border-radius:var(--radius-lg)}.prose figure{width:fit-content;max-width:100%;margin-inline:0}.prose figcaption{margin-top:var(--space-2);color:var(--color-text-muted);font-size:var(--text-sm);text-align:center}.prose sup{line-height:0}.prose .footnotes{margin-top:var(--space-7);padding-top:var(--space-4);border-top:var(--border-width) solid var(--color-border);color:var(--color-text-muted);font-size:var(--text-sm)}.prose .footnotes h2{position:absolute;width:var(--border-width);height:var(--border-width);overflow:hidden;clip-path:inset(50%);white-space:nowrap}@media(min-width:1280px){.prose{font-size:var(--text-md)}}.toc-list[data-astro-cid-nxay6pwk]{counter-reset:toc;display:flex;flex-direction:column;gap:var(--space-2);margin:0;padding:0 0 0 var(--space-3);border-left:var(--border-width) solid var(--color-glass-border);list-style:none;font-size:var(--text-sm);line-height:var(--leading-tight)}.toc-depth-2[data-astro-cid-nxay6pwk] a[data-astro-cid-nxay6pwk]:before{counter-increment:toc;content:counter(toc,decimal-leading-zero) " ";color:var(--color-accent);font-size:var(--text-xs)}.toc-depth-3[data-astro-cid-nxay6pwk]{padding-left:var(--space-5)}a[data-astro-cid-nxay6pwk]{display:block;margin-left:calc(-1 * var(--space-3) - var(--border-width));padding:var(--space-1) 0 var(--space-1) var(--space-3);border-left:var(--border-accent-width) solid transparent;color:var(--color-text-muted);overflow-wrap:anywhere;transition:color var(--transition),border-color var(--transition)}a[data-astro-cid-nxay6pwk]:hover{color:var(--color-text)}a[data-astro-cid-nxay6pwk][aria-current]{border-left-color:var(--color-accent);color:var(--color-text)}.progress[data-astro-cid-7jjqptxk]{position:fixed;inset:0 0 auto;z-index:20;height:var(--progress-height)}.progress-bar[data-astro-cid-7jjqptxk]{height:100%;background-image:linear-gradient(90deg,var(--color-primary),var(--color-accent));box-shadow:0 0 var(--space-3) var(--color-glow);transform:scaleX(0);transform-origin:left}.post-hero-frame[data-astro-cid-7jjqptxk]{position:relative;display:flex;align-items:center;min-height:var(--hero-min);overflow:hidden;border:var(--border-width) solid var(--color-glass-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-card)}.post-hero-image[data-astro-cid-7jjqptxk]{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(var(--hero-dim));animation:settle 1.4s ease backwards}@keyframes settle{0%{opacity:0;transform:scale(var(--zoom))}}.post-hero-frame[data-astro-cid-7jjqptxk]:after{content:"";position:absolute;inset:0;background-image:linear-gradient(to top,var(--color-bg) 8%,color-mix(in srgb,var(--color-bg) 82%,transparent) 55%,color-mix(in srgb,var(--color-bg) 35%,transparent))}.post-hero-content[data-astro-cid-7jjqptxk]{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-7) var(--space-5);text-align:center}.post-hero-content[data-astro-cid-7jjqptxk] .tags,.post-meta[data-astro-cid-7jjqptxk]{justify-content:center}.post-hero-content[data-astro-cid-7jjqptxk] .command{overflow:hidden}.post-hero[data-astro-cid-7jjqptxk] h1[data-astro-cid-7jjqptxk]{max-width:var(--container-xl);font-size:var(--text-2xl);letter-spacing:var(--tracking-tight);overflow-wrap:anywhere;text-shadow:0 0 var(--space-6) var(--color-bg)}.post-description[data-astro-cid-7jjqptxk]{max-width:var(--container-xl);color:var(--color-text);line-height:var(--leading-prose)}.post-meta[data-astro-cid-7jjqptxk]{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-3);color:var(--color-text-muted);font-size:var(--text-sm)}.post-meta[data-astro-cid-7jjqptxk] span[data-astro-cid-7jjqptxk][aria-hidden]{color:var(--color-accent)}.post-grid[data-astro-cid-7jjqptxk]{display:grid;grid-template-columns:minmax(0,1fr);width:100%;max-width:var(--container-full);margin-inline:auto;padding-inline:var(--space-4)}.post[data-astro-cid-7jjqptxk]{width:100%;max-width:var(--prose-measure);min-width:0}.toc-top[data-astro-cid-7jjqptxk]{margin-top:var(--space-5);padding:var(--space-3) var(--space-4);background-color:var(--color-glass);border:var(--border-width) solid var(--color-glass-border);border-radius:var(--radius-lg)}.toc-top[data-astro-cid-7jjqptxk] summary[data-astro-cid-7jjqptxk]{cursor:pointer;font-size:var(--text-sm);font-weight:var(--weight-bold)}.toc-top[data-astro-cid-7jjqptxk] nav[data-astro-cid-7jjqptxk]{padding-top:var(--space-3)}.toc-side[data-astro-cid-7jjqptxk]{display:none}.toc-title[data-astro-cid-7jjqptxk]{display:flex;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-2);color:var(--color-text-muted);font-size:var(--text-xs);letter-spacing:var(--tracking-wider);text-transform:uppercase}.toc-title[data-astro-cid-7jjqptxk] [data-astro-cid-7jjqptxk][data-progress-label]{color:var(--color-accent);letter-spacing:0}.toc-progress[data-astro-cid-7jjqptxk]{height:var(--progress-height);margin-bottom:var(--space-4);overflow:hidden;background-color:var(--color-glass-border);border-radius:var(--radius-pill)}.toc-progress[data-astro-cid-7jjqptxk] div[data-astro-cid-7jjqptxk]{height:100%;background-image:linear-gradient(90deg,var(--color-primary),var(--color-accent));transform:scaleX(0);transform-origin:left}.prose[data-astro-cid-7jjqptxk]{margin-top:var(--space-6)}.eof[data-astro-cid-7jjqptxk]{display:flex;align-items:center;gap:var(--space-4);margin-top:var(--space-8);color:var(--color-accent);font-size:var(--text-xs);letter-spacing:var(--tracking-wider)}.eof[data-astro-cid-7jjqptxk]:before,.eof[data-astro-cid-7jjqptxk]:after{content:"";flex:1;height:var(--border-width);background-color:var(--color-glass-border)}.post-footer[data-astro-cid-7jjqptxk]{display:flex;flex-direction:column;gap:var(--space-5);margin-top:var(--space-6)}.post-nav[data-astro-cid-7jjqptxk]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}.post-nav-link[data-astro-cid-7jjqptxk]{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);background-color:var(--color-glass);border:var(--border-width) solid var(--color-glass-border);border-radius:var(--radius-lg);transition:transform var(--transition),border-color var(--transition),box-shadow var(--transition)}.post-nav-link[data-astro-cid-7jjqptxk]:hover{transform:translateY(var(--lift));border-color:var(--color-primary);box-shadow:var(--shadow-glow)}.post-nav-link[data-astro-cid-7jjqptxk] img[data-astro-cid-7jjqptxk]{flex:none;width:var(--thumb-size);height:var(--thumb-size);border-radius:var(--radius);object-fit:cover}.post-nav-text[data-astro-cid-7jjqptxk]{display:flex;flex:1;flex-direction:column;gap:var(--space-1);min-width:0}.post-nav-next[data-astro-cid-7jjqptxk]{grid-column:2;text-align:right}.post-nav-title[data-astro-cid-7jjqptxk]{color:var(--color-text);font-weight:var(--weight-medium);overflow-wrap:anywhere}.post-actions[data-astro-cid-7jjqptxk]{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3);font-size:var(--text-sm)}.to-top[data-astro-cid-7jjqptxk]{position:fixed;right:var(--space-4);bottom:var(--space-4);z-index:15;display:grid;place-items:center;width:var(--fab-size);height:var(--fab-size);padding:0;background-color:var(--color-glass-strong);border:0;border-radius:50%;color:var(--color-text);font:inherit;cursor:pointer;opacity:0;pointer-events:none;backdrop-filter:blur(var(--blur));transform:translateY(var(--space-3));transition:opacity var(--transition),transform var(--transition),color var(--transition)}.to-top[data-astro-cid-7jjqptxk][data-visible]{opacity:1;pointer-events:auto;transform:none}.to-top[data-astro-cid-7jjqptxk]:hover{color:var(--color-accent)}.to-top[data-astro-cid-7jjqptxk] svg[data-astro-cid-7jjqptxk]{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}.to-top[data-astro-cid-7jjqptxk] circle[data-astro-cid-7jjqptxk]{fill:none;stroke-width:2}.to-top-track[data-astro-cid-7jjqptxk]{stroke:var(--color-glass-border)}.to-top-ring[data-astro-cid-7jjqptxk]{stroke:var(--color-accent);stroke-dasharray:100;stroke-dashoffset:100;stroke-linecap:round}.lightbox[data-astro-cid-7jjqptxk]{margin:auto;max-width:96vw;max-height:92vh;padding:0;background:none;border:0;cursor:zoom-out}.lightbox[data-astro-cid-7jjqptxk]::backdrop{background-color:color-mix(in srgb,var(--color-bg) 88%,transparent);backdrop-filter:blur(var(--blur))}.lightbox[data-astro-cid-7jjqptxk] img[data-astro-cid-7jjqptxk]{display:block;max-width:96vw;max-height:92vh;border:var(--border-width) solid var(--color-glass-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-glow)}@media(max-width:479px){.post-nav[data-astro-cid-7jjqptxk]{grid-template-columns:minmax(0,1fr)}.post-nav-next[data-astro-cid-7jjqptxk]{grid-column:1}}@media(min-width:768px){.post-grid[data-astro-cid-7jjqptxk]{padding-inline:var(--space-6)}}@media(min-width:640px){.post-hero-content[data-astro-cid-7jjqptxk]{padding:var(--space-8) var(--space-6)}.post-hero[data-astro-cid-7jjqptxk] h1[data-astro-cid-7jjqptxk]{font-size:var(--text-3xl)}}@media(min-width:1280px){.post-grid[data-astro-cid-7jjqptxk]{grid-template-columns:var(--toc-width) minmax(0,1fr);gap:var(--space-9)}.post[data-astro-cid-7jjqptxk]{grid-column:2;grid-row:1}.toc-top[data-astro-cid-7jjqptxk]{display:none}.toc-side[data-astro-cid-7jjqptxk]{display:block;grid-column:1;grid-row:1}.toc-side[data-astro-cid-7jjqptxk] nav[data-astro-cid-7jjqptxk]{position:sticky;top:var(--header-offset);max-height:calc(100vh - var(--header-offset) - var(--space-5));margin-top:var(--space-6);overflow-y:auto}}
