.blog-prose{color:hsl(var(--foreground))}.blog-prose :where(h2,h3,h4,h5,h6){letter-spacing:-.025em;text-wrap:balance;margin-top:2rem;margin-bottom:.75rem;scroll-margin-top:5rem;font-weight:700;line-height:1.25}.blog-prose h2{font-size:1.25rem}.blog-prose h3{font-size:1.1rem}.blog-prose :where(p,ul,ol){margin:.9rem 0}.blog-prose :where(p,li){color:hsl(var(--muted-foreground));font-size:1rem;line-height:1.75}.blog-prose :where(strong,b){color:hsl(var(--foreground));font-weight:700}.blog-prose a{color:hsl(var(--accent-link));text-decoration:underline;text-decoration-color:hsl(var(--accent-link)/.4);text-underline-offset:4px;transition:text-decoration-color var(--motion-fast) var(--ease-out-quart)}.blog-prose a:hover{text-decoration-color:hsl(var(--accent-link))}.blog-prose ul,.blog-prose ol{padding-left:1.25rem}.blog-prose li+li{margin-top:.35rem}.blog-prose :where(p,li,blockquote,td,th,h2,h3,h4,h5,h6)>code{border-radius:calc(var(--radius) - 2px);background:hsl(var(--muted));color:hsl(var(--foreground));padding:.12rem .35rem;font-size:.92em}.blog-prose .blog-codeblock{border:1px solid hsl(var(--border));border-radius:var(--radius);margin:1.15rem 0;position:relative;overflow:hidden}.blog-prose .blog-codeblock__header{border-bottom:1px solid hsl(var(--border));background:hsl(var(--muted)/.52);justify-content:space-between;align-items:center;gap:.75rem;padding:.45rem .75rem;display:flex}.blog-prose .blog-codeblock__filename{color:hsl(var(--muted-foreground));text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.76rem;overflow:hidden}.blog-prose .blog-codeblock__copy{border-radius:calc(var(--radius) - 2px);width:2rem;height:2rem;color:hsl(var(--muted-foreground));cursor:pointer;transition:color .16s var(--ease-out-quart), background-color .16s var(--ease-out-quart), transform .16s var(--ease-out-quart);background:0 0;border:0;flex:none;place-items:center;padding:0;display:inline-grid}.blog-prose .blog-codeblock__copy:focus-visible{color:hsl(var(--foreground));background:hsl(var(--background));outline:2px solid hsl(var(--ring));outline-offset:2px}.blog-prose .blog-codeblock__copy:active{transform:scale(.94)}.blog-prose .blog-codeblock__copy[data-copy-state=success]{color:hsl(var(--accent-link))}.blog-prose .blog-codeblock__copy[data-copy-state=error]{color:hsl(var(--destructive))}.blog-prose .blog-codeblock__copy[data-copy-state=success] .blog-codeblock__icon-copy{opacity:0;transform:scale(.82)}.blog-prose .blog-codeblock__copy[data-copy-state=success] .blog-codeblock__icon-check{opacity:1;stroke-dashoffset:0;transform:scale(1)}.blog-prose .blog-codeblock__copy--floating{z-index:1;background:color-mix(in srgb, hsl(var(--background)) 90%, transparent);position:absolute;top:.42rem;right:.52rem}.blog-prose .blog-codeblock__copy-icon{width:1.15rem;height:1.15rem;overflow:visible}.blog-prose .blog-codeblock__icon-copy,.blog-prose .blog-codeblock__icon-check{transform-box:fill-box;transform-origin:50%;transition:opacity .18s var(--ease-out-quart), transform .18s var(--ease-out-quart), stroke-dashoffset .22s var(--ease-out-quart)}.blog-prose .blog-codeblock__icon-check{opacity:0;stroke-dasharray:1;stroke-dashoffset:1px;transform:scale(.82)}@media (hover:hover) and (pointer:fine){.blog-prose .blog-codeblock__copy:hover{color:hsl(var(--foreground));background:hsl(var(--background))}}.blog-prose .blog-codeblock--unnamed .astro-code{padding-top:.5rem;padding-right:5.15rem}.blog-prose .blog-codeblock .astro-code{box-shadow:none;background-color:hsl(var(--background));color:hsl(var(--foreground));border:0;border-radius:0;margin:0;padding:.5rem .65rem}.blog-prose .blog-codeblock .astro-code code{color:inherit;background:0 0;padding:0;display:block}.blog-prose blockquote{border-left:2px solid hsl(var(--border));margin:1.4rem 0;padding:.15rem 0 .15rem 1rem}.blog-prose blockquote p{font-style:italic}.blog-prose hr{border:0;border-top:1px solid hsl(var(--border));margin:2rem 0}.blog-prose img{border:1px solid hsl(var(--border));border-radius:var(--radius);max-width:100%;height:auto}.blog-prose figure{margin:1.25rem 0}.blog-prose figcaption{color:hsl(var(--muted-foreground));text-align:center;margin-top:.5rem;font-size:.85rem;font-style:italic}.blog-prose table{border-collapse:collapse;width:100%;margin:1.25rem 0;font-size:.95rem}.blog-prose th,.blog-prose td{border-bottom:1px solid hsl(var(--border));text-align:left;padding:.5rem .6rem}.blog-pager{border-top:1px solid hsl(var(--border));flex-direction:column;gap:.85rem;margin-top:2.75rem;padding-top:1.25rem;display:flex}.blog-pager__link{min-width:0;max-width:100%;color:hsl(var(--foreground));text-decoration:underline;text-decoration-color:hsl(var(--foreground)/.22);text-underline-offset:4px;transition:color var(--motion-fast) var(--ease-out-quart), text-decoration-color var(--motion-fast) var(--ease-out-quart);align-items:center;gap:.4rem;font-size:.95rem;font-weight:500;line-height:1.4;text-decoration-thickness:1px;display:inline-flex}.blog-pager__link:hover,.blog-pager__link:focus-visible{color:hsl(var(--accent-link));text-decoration-color:hsl(var(--accent-link)/.45)}.blog-pager__link--next{margin-left:0}.blog-pager__arrow{flex-shrink:0;display:inline-flex}.blog-pager__arrow svg{width:.95rem;height:.95rem}@media (width>=640px){.blog-pager{flex-direction:row;justify-content:space-between;align-items:flex-start;gap:1.5rem}.blog-pager__link{max-width:46%}.blog-pager__link--next{text-align:right;margin-left:auto}}.blog-rail{z-index:20;pointer-events:none;flex-direction:row;align-items:flex-start;gap:.75rem;width:max-content;display:flex;position:absolute;top:5.25rem;bottom:0;left:calc(100% + .8rem)}.blog-rail__dock,.blog-rail__cards{pointer-events:auto;position:sticky;top:6rem}.blog-rail__dock{border:1px solid hsl(var(--border));background:hsl(var(--background)/.88);box-shadow:0 10px 30px -24px hsl(var(--foreground)/.45);backdrop-filter:blur(10px);border-radius:.85rem;flex-direction:column;gap:.15rem;padding:.28rem;display:flex}.blog-rail__cards{overscroll-behavior:contain;scrollbar-color:hsl(var(--border)) transparent;scrollbar-width:thin;flex-direction:column;gap:.65rem;width:min(17.25rem,50vw - 26rem);max-height:calc(100vh - 7.5rem);display:none;overflow:auto}.blog-rail__cards:has(.blog-rail__card:not([hidden])){display:flex}.blog-rail__cards:has(.blog-rail__card:not([hidden])~.blog-rail__card:not([hidden])) .blog-rail__card{max-height:min(18rem,50vh - 5rem);box-shadow:none}.blog-rail__button{width:2.4rem;height:2.4rem;color:hsl(var(--muted-foreground));cursor:pointer;transition:color var(--motion-fast) var(--ease-out-quart), background-color var(--motion-fast) var(--ease-out-quart);background:0 0;border:0;border-radius:.55rem;justify-content:center;align-items:center;display:inline-flex}.blog-rail__button:hover,.blog-rail__button:focus-visible,.blog-rail__button.is-open{background:hsl(var(--muted)/.7);color:hsl(var(--foreground))}.blog-rail__button:focus-visible{outline:2px solid hsl(var(--ring));outline-offset:2px}.blog-rail__icon{display:inline-flex}.blog-rail__icon svg{width:1.05rem;height:1.05rem}.blog-rail__card{overscroll-behavior:contain;border:1px solid hsl(var(--border));background:hsl(var(--background)/.96);min-height:0;max-height:min(24rem,100vh - 8rem);box-shadow:0 18px 40px -28px hsl(var(--foreground)/.55);scrollbar-color:hsl(var(--border)) transparent;scrollbar-width:thin;backdrop-filter:blur(12px);border-radius:.85rem;padding:.85rem .9rem;overflow:auto}.blog-rail__card.is-opening{animation:blog-rail-card-in .18s var(--ease-out-quart)}.blog-rail__card.is-closing{animation:blog-rail-card-out .18s var(--ease-out-quart) forwards}.blog-rail__card-title{color:hsl(var(--muted-foreground));letter-spacing:.08em;text-transform:uppercase;margin:0 0 .7rem;font-size:.68rem;font-weight:700}.blog-rail__toc,.blog-rail__tags{gap:.15rem;margin:0;padding:0;list-style:none;display:grid}.blog-rail__toc a,.blog-rail__tag{color:hsl(var(--muted-foreground));transition:color var(--motion-fast) var(--ease-out-quart);justify-content:space-between;align-items:baseline;gap:.75rem;padding:.28rem 0;font-size:.9rem;line-height:1.35;text-decoration:none;display:flex}.blog-rail__toc a:hover,.blog-rail__toc a:focus-visible,.blog-rail__toc a.is-active,.blog-rail__tag:hover,.blog-rail__tag:focus-visible,.blog-rail__tag.is-active{color:hsl(var(--foreground))}.blog-rail__toc-sub a{padding-left:.75rem;font-size:.84rem}.blog-rail__count{color:hsl(var(--muted-foreground));flex-shrink:0;font-size:.72rem}@keyframes blog-rail-card-in{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:none}}@keyframes blog-rail-card-out{0%{opacity:1;transform:none}to{opacity:0;transform:translate(-8px)}}@media (width<=1279px){.blog-rail{left:auto;right:max(.85rem, env(safe-area-inset-right));top:auto;bottom:max(4.25rem, env(safe-area-inset-bottom) + 3.5rem);flex-direction:column-reverse;align-items:flex-end;width:auto;max-width:min(18rem,100vw - 1.75rem);position:fixed}.blog-rail__dock,.blog-rail__cards{position:static}.blog-rail__cards{width:min(18rem,100vw - 1.75rem);max-height:min(28rem,100vh - 10rem)}.blog-rail__card.is-opening{animation-name:blog-rail-card-in-up}.blog-rail__card.is-closing{animation-name:blog-rail-card-out-down}}@keyframes blog-rail-card-in-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes blog-rail-card-out-down{0%{opacity:1;transform:none}to{opacity:0;transform:translateY(8px)}}@media (prefers-reduced-motion:reduce){.blog-prose .blog-codeblock__copy{transition-property:color,background-color}.blog-prose .blog-codeblock__copy:active{transform:none}.blog-prose .blog-codeblock__icon-copy,.blog-prose .blog-codeblock__icon-check{transition-property:opacity,stroke-dashoffset;transform:none}.blog-prose .blog-codeblock__copy[data-copy-state=success] .blog-codeblock__icon-copy,.blog-prose .blog-codeblock__copy[data-copy-state=success] .blog-codeblock__icon-check{transform:none}.blog-rail__card,.blog-rail__button,.blog-pager__link{transition:none;animation:none}}
