@layer base{.blog-scope{--graphite-steel:#4098d8;--graphite-steel-soft:#687fc7}}@layer components{html[data-blog-reveal] .blog-scope .blog-reveal{opacity:0;transform:translateY(22px);transition:opacity .64s cubic-bezier(.22,1,.36,1),transform .64s cubic-bezier(.22,1,.36,1);will-change:opacity,transform}html[data-blog-reveal] .blog-scope .blog-reveal.blog-reveal-left{transform:translateX(-26px)}html[data-blog-reveal] .blog-scope .blog-reveal.blog-reveal-scale{transform:scale(.965)}html[data-blog-reveal] .blog-scope .blog-reveal.is-visible{opacity:1;transform:none}.blog-scope .blog-rise{animation:blog-rise .76s cubic-bezier(.22,1,.36,1) both}.blog-scope .blog-rise-2{animation-delay:.13s}.blog-scope .blog-rise-3{animation-delay:.26s}.blog-scope .blog-rise-4{animation-delay:.39s}@keyframes blog-rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.blog-scope .blog-skeleton{position:relative;overflow:hidden;background-color:color-mix(in srgb,var(--muted) 92%,var(--foreground) 5%)}.blog-scope .blog-skeleton:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(100deg,transparent 30%,color-mix(in srgb,var(--card) 55%,transparent) 50%,transparent 70%);background-size:220% 100%;background-position:220% 0;animation:blog-shimmer 3.2s ease-in-out infinite}@keyframes blog-shimmer{to{background-position:-120% 0}}.blog-scope .blog-prose{color:var(--foreground);font-size:1.0625rem;line-height:1.78}.blog-scope .blog-prose p{margin-bottom:1.35em;text-wrap:pretty}.blog-scope .blog-prose ul{margin:0 0 1.35em;padding-left:1.35em;list-style:disc;display:flex;flex-direction:column;gap:.55em}.blog-scope .blog-prose ul li::marker{color:var(--graphite-steel)}.blog-scope .blog-prose a{color:inherit;font-weight:600;text-decoration:underline;text-decoration-color:var(--graphite-steel);text-decoration-thickness:1.5px;text-underline-offset:3px;transition:color .18s ease-out,text-decoration-color .18s ease-out}.blog-scope .blog-prose a:hover{color:var(--graphite-steel-soft);text-decoration-color:var(--graphite-steel-soft)}.blog-scope .blog-prose strong{font-weight:700;color:var(--foreground)}.blog-scope .blog-prose h2{margin:2.4em 0 .8em;font-size:clamp(1.5rem,2.4vw,1.9rem);line-height:1.22;letter-spacing:-.02em}.blog-scope .blog-prose h2,.blog-scope .blog-prose h3{scroll-margin-top:7rem;font-weight:700;text-wrap:balance}.blog-scope .blog-prose h3{margin:1.9em 0 .7em;font-size:clamp(1.2rem,1.8vw,1.35rem);line-height:1.3;letter-spacing:-.01em}.blog-scope .blog-prose h2:first-child{margin-top:0}.blog-scope .blog-figure{border-radius:14px;overflow:hidden}.blog-scope .blog-figure,.blog-scope .blog-table-wrap{margin:1.9em 0;border:1px solid var(--border);background-color:var(--card)}.blog-scope .blog-table-wrap{overflow-x:auto;border-radius:14px}.blog-scope .blog-table-wrap table{width:100%;min-width:34rem;border-collapse:collapse;font-size:.94rem;line-height:1.5}.blog-scope .blog-table-wrap td,.blog-scope .blog-table-wrap th{padding:.9rem 1rem;text-align:left;vertical-align:top;border-bottom:1px solid var(--border)}.blog-scope .blog-table-wrap th{background-color:var(--muted);font-size:.78rem;letter-spacing:.04em;text-transform:uppercase}.blog-scope .blog-table-wrap tr:last-child td{border-bottom:0}.blog-scope .blog-toc-link{position:relative;display:block;padding:.45rem 0 .45rem .95rem;font-size:.875rem;line-height:1.35;color:var(--muted-foreground);transition:color .18s ease-out}.blog-scope .blog-toc-link:before{content:"";position:absolute;left:0;top:.55rem;bottom:.55rem;width:3px;border-radius:9999px;background:var(--brand-gradient);opacity:0;transform:scaleY(.4);transition:opacity .22s ease-out,transform .22s ease-out}.blog-scope .blog-toc-link:hover{color:var(--foreground)}.blog-scope .blog-toc-link.is-active{color:var(--foreground);font-weight:600}.blog-scope .blog-toc-link.is-active:before{opacity:1;transform:scaleY(1)}.blog-scope .blog-slide{transition:opacity .42s cubic-bezier(.22,1,.36,1)}@media (prefers-reduced-motion:reduce){html[data-blog-reveal] .blog-scope .blog-reveal,html[data-blog-reveal] .blog-scope .blog-reveal.blog-reveal-left,html[data-blog-reveal] .blog-scope .blog-reveal.blog-reveal-scale{opacity:1;transform:none;transition:none}.blog-scope .blog-rise{animation:none}.blog-scope .blog-skeleton:after{animation:none;background:none}.blog-scope .blog-slide{transition:none}}}