.blog-hero__grid{opacity:.5;pointer-events:none;position:absolute;inset:0}.blog-hero__orb{background:radial-gradient(circle,#818cf824,#0000 65%);width:600px;height:600px;top:-80px;right:-120px}.blog-filter{flex-wrap:wrap;gap:.5rem;margin-top:2.5rem;display:flex}.blog-filter__item{font-family:var(--font-display);border:1px solid var(--mode-border);color:var(--mode-text-secondary);border-radius:9999px;padding:.35rem 1rem;font-size:.82rem;font-weight:700;text-decoration:none;transition:border-color .2s,color .2s,background .2s}.blog-filter__item:hover{color:#818cf8;border-color:#818cf866}.blog-filter__item--active{color:#818cf8;background:#818cf814;border-color:#818cf866}.blog-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1.5rem;display:grid}@media (width>=720px){.blog-grid>.blog-card-wrap:first-child{grid-column:1/-1}}@media (width<=480px){.blog-grid{grid-template-columns:1fr}}.blog-grid--featured{margin-bottom:1.5rem}.blog-pagination{border-top:1px solid var(--mode-border);flex-direction:column;align-items:center;gap:.75rem;margin-top:3rem;padding-top:2rem;display:flex}.blog-pagination__status{color:var(--mode-text-dimmed);margin:0;font-size:.8rem}.blog-pagination__list{flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.blog-pagination__ellipsis{color:var(--mode-text-dimmed);padding:0 .25rem;font-size:.85rem}.blog-pagination__item{font-family:var(--font-display);border:1px solid var(--mode-border);color:var(--mode-text-secondary);border-radius:9999px;align-items:center;gap:.4rem;padding:.35rem .9rem;font-size:.82rem;font-weight:700;text-decoration:none;transition:border-color .2s,color .2s,background .2s;display:inline-flex}.blog-pagination__item--number{justify-content:center;min-width:2.25rem;padding:.35rem .75rem}.blog-pagination__item:is(a):hover{color:#818cf8;border-color:#818cf866}.blog-pagination__item--active{color:#818cf8;background:#818cf814;border-color:#818cf866}.blog-pagination__item--disabled{opacity:.4;cursor:default}.post-layout{padding-top:68px}.post-layout__inner{padding-top:4rem;padding-bottom:6rem}.post-back{font-family:var(--font-display);color:var(--mode-text-dimmed);align-items:center;gap:.4rem;margin-bottom:3rem;font-size:.85rem;font-weight:700;text-decoration:none;transition:color .2s,gap .2s;display:inline-flex}.post-back:hover{color:#818cf8;gap:.65rem}.post-layout__body{grid-template-columns:240px 1fr;align-items:start;gap:5rem;display:grid}@media (width<=1024px){.post-layout__body{grid-template-columns:1fr;gap:0}.post-layout__aside{display:none}}.post-toc-mobile{margin-bottom:2.5rem;display:none}@media (width<=1024px){.post-toc-mobile{display:block}}.post-layout__main{min-width:0;max-width:72ch}.post-layout__main .prose table{-webkit-overflow-scrolling:touch;display:block;overflow-x:auto}.blog-card{container-type:inline-size}.blog-card--featured .blog-card__title{font-size:clamp(1.25rem,3cqi,1.6rem)}@media (width>=720px){.blog-card--featured{flex-direction:row;display:flex}.blog-card--featured .blog-card__link{flex-shrink:0;align-self:stretch;width:clamp(280px,40%,480px)}.blog-card--featured .blog-card__cover{height:100%;aspect-ratio:unset;border-radius:var(--radius-card) 0 0 var(--radius-card)}.blog-card--featured .blog-card__body{flex:1;padding:2rem 2.5rem}.blog-card--featured .blog-card__desc{max-width:60ch}}.blog-card__link{color:inherit;flex-direction:column;text-decoration:none;display:flex}.blog-card__cover{border-radius:var(--radius-card) var(--radius-card) 0 0;aspect-ratio:16/9;background:var(--mode-card);transition:background .24s;overflow:hidden}.blog-card__cover-img{-o-object-fit:cover;object-fit:cover;will-change:transform;width:100%;height:100%;transition:transform .4s cubic-bezier(.22,1,.36,1),filter .24s,opacity .24s;display:block}.blog-card:hover .blog-card__cover-img{filter:saturate(1.06);transform:scale(1.03)}.blog-card__body{flex-direction:column;flex:1;padding:1.75rem;display:flex}.blog-card__top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1.25rem;display:flex}.blog-card__date{color:var(--mode-text-dimmed);font-size:.8rem}.blog-card__title{font-family:var(--font-display);letter-spacing:-.02em;color:var(--mode-text-primary);margin:0 0 .75rem;font-size:1.2rem;font-weight:800;line-height:1.25}.blog-card__title-link{color:inherit;text-decoration:none}.blog-card__desc{color:var(--mode-text-secondary);flex:1;margin:0 0 1.5rem;font-size:.9rem;line-height:1.7}.blog-card__footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-top:auto;display:flex}.blog-card__tags{flex-wrap:wrap;gap:.4rem;display:flex}.blog-card__read-more{font-family:var(--font-display);color:#818cf8;white-space:nowrap;align-items:center;gap:.4rem;font-size:.8rem;font-weight:700;text-decoration:none;transition:gap .2s;display:inline-flex}.blog-card:hover .blog-card__read-more{gap:.65rem}.tag-chip--link{text-decoration:none;transition:background-color .2s,border-color .2s,color .2s,transform .2s}.tag-chip--link:hover{color:var(--mode-text-primary);background:#818cf81f;border-color:#818cf859;transform:translateY(-1px)}.tag-chip__count{min-width:1.25rem;height:1.25rem;color:var(--mode-text-primary);background:#818cf829;border-radius:9999px;justify-content:center;align-items:center;padding:0 .35rem;font-size:.7rem;font-weight:700;display:inline-flex}.post-header{border-bottom:1px solid var(--mode-border);margin-bottom:3rem;padding-bottom:2.5rem}.post-header__meta{flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:1.5rem;display:flex}.post-header__dot{color:var(--mode-text-dimmed)}.post-header__date{color:var(--mode-text-dimmed);font-size:.875rem}.post-header__updated{color:var(--mode-text-dimmed);font-size:.8rem}.post-header__updated:before{content:"· "}.post-header__title{letter-spacing:-.03em;color:var(--mode-text-primary);margin:0 0 1.25rem;font-size:clamp(2rem,5vw,3.5rem);font-weight:800;line-height:1.1}.post-header__desc{color:var(--mode-text-secondary);max-width:680px;margin:0 0 2rem;font-size:1.15rem;line-height:1.75}.post-header__author{align-items:center;gap:.85rem;margin-bottom:1.5rem;display:flex}.post-header__avatar{width:42px;height:42px;font-family:var(--font-display);color:#fff;background:linear-gradient(135deg,#818cf8,#22d3ee);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:1.1rem;font-weight:800;display:flex}.post-header__author-name{font-family:var(--font-display);color:var(--mode-text-primary);margin:0 0 .15rem;font-size:.9rem;font-weight:700}.post-header__author-role{color:var(--mode-text-dimmed);margin:0;font-size:.8rem}.post-header__author-bio{border:1px solid var(--mode-border);background:var(--mode-card);border-radius:.75rem;margin-bottom:1.5rem;padding:1rem 1.15rem}.post-header__author-bio-label{font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;color:var(--mode-text-dimmed);margin:0 0 .4rem;font-size:.7rem;font-weight:700}.post-header__author-bio-text{color:var(--mode-text-secondary);margin:0;font-size:.9rem;line-height:1.65}.post-header__tags{flex-wrap:wrap;gap:.4rem;display:flex}.post-header__cover{border:1px solid var(--mode-border);background:var(--mode-card);aspect-ratio:16/9;border-radius:1rem;margin-top:2.5rem;overflow:hidden}.post-header__cover-img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%;transition:transform .45s cubic-bezier(.22,1,.36,1),filter .24s,opacity .24s;display:block}.share-buttons{align-items:center;gap:.6rem;margin-bottom:2.5rem;display:flex}.share-buttons__label{color:var(--mode-text-dimmed);margin-right:.15rem;font-size:.8rem;font-weight:600}.share-buttons__btn{border:1px solid var(--mode-border);width:36px;height:36px;color:var(--mode-text-secondary);cursor:pointer;font:inherit;background:0 0;border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:border-color .2s,color .2s,background .2s;display:flex}.share-buttons__btn:hover{color:#818cf8;background:#818cf814;border-color:#818cf866}.share-buttons__copy{position:relative}.share-buttons__check-icon{display:none}.share-buttons__copy--copied{color:#818cf8;border-color:#818cf866}.share-buttons__copy--copied .share-buttons__copy-icon{display:none}.share-buttons__copy--copied .share-buttons__check-icon{display:block}.share-buttons__copy-status{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.toc{border:1px solid var(--mode-border);background:var(--mode-card);border-radius:.875rem;margin-bottom:2.5rem;padding:1.5rem;position:sticky;top:88px}@media (width<=1024px){.toc{margin-bottom:2.5rem;position:static}}.toc__heading{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.12em;color:var(--mode-text-dimmed);margin:0 0 1rem;font-size:.75rem;font-weight:700}.toc__list{flex-direction:column;gap:.3rem;margin:0;padding:0;list-style:none;display:flex}.toc__item--h3{padding-left:1rem}.toc__link{color:var(--mode-text-secondary);border-radius:4px;padding:.2rem 0;font-size:.875rem;line-height:1.4;text-decoration:none;transition:color .2s;display:block}.toc__link:hover{color:#818cf8}.related-posts{border-top:1px solid var(--mode-border);margin-top:4rem;padding-top:3rem}.related-posts__heading{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.12em;color:var(--mode-text-dimmed);margin:0 0 1.25rem;font-size:.75rem;font-weight:700}.related-posts__list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.related-posts__link{border:1px solid var(--mode-border);background:0 0;border-radius:.625rem;justify-content:space-between;align-items:baseline;gap:1rem;padding:.75rem 1rem;text-decoration:none;transition:border-color .2s,background .2s;display:flex}.related-posts__link:hover{background:var(--mode-card);border-color:#818cf859}.related-posts__title{color:var(--mode-text-primary);font-size:.9rem;font-weight:600}.related-posts__date{color:var(--mode-text-dimmed);white-space:nowrap;flex-shrink:0;font-size:.8rem}.prose{max-width:72ch;color:var(--mode-text-secondary);font-size:1rem;line-height:1.8}.prose h2{font-family:var(--font-display);letter-spacing:-.025em;color:var(--mode-text-primary);border-top:1px solid var(--mode-border);margin:3rem 0 1.25rem;padding-top:.5rem;font-size:clamp(1.4rem,3vw,1.9rem);font-weight:800}.prose h2:first-child{border-top:none;margin-top:0}.prose h3{font-family:var(--font-display);letter-spacing:-.015em;color:var(--mode-text-primary);margin:2.25rem 0 .9rem;font-size:clamp(1.1rem,2vw,1.35rem);font-weight:700}.prose h4{font-family:var(--font-display);color:var(--mode-text-primary);margin:2rem 0 .75rem;font-size:1.05rem;font-weight:700}.prose p{margin:0 0 1.4rem}.prose a{color:#818cf8;text-underline-offset:3px;text-decoration:underline #818cf859;transition:color .15s,text-decoration-color .15s}.prose a:hover{color:#22d3ee;text-decoration-color:#22d3ee99}.prose strong{color:var(--mode-text-primary);font-weight:700}.prose em{font-style:italic}.prose ul,.prose ol{margin:0 0 1.4rem;padding-left:1.5rem}.prose ul li,.prose ol li{margin-bottom:.5rem;line-height:1.7}.prose ul li::marker{color:#818cf8}.prose ol li::marker{color:#818cf8;font-weight:700}.prose blockquote{color:var(--mode-text-primary);background:#818cf80d;border-left:3px solid #818cf8;border-radius:0 .5rem .5rem 0;margin:2rem 0;padding:1.25rem 1.5rem;font-style:italic}.prose blockquote p{margin:0}.prose hr{background:linear-gradient(90deg,#0000,#818cf840,#22d3ee40,#0000);border:none;height:1px;margin:3rem 0}.prose :not(pre)>code{background:var(--mode-card);border:1px solid var(--mode-border);color:#22d3ee;border-radius:4px;padding:.15em .4em;font-family:"ui-monospace",SFMono-Regular,Fira Code,monospace;font-size:.875em}.prose pre{border:1px solid var(--mode-border);border-radius:.875rem;margin:1.75rem 0;font-size:.875rem;line-height:1.65;position:relative;overflow-x:auto}.prose pre code{color:inherit;font-size:inherit;background:0 0;border:none;padding:0}html[data-theme=dark] .prose .astro-code,html[data-theme=dark] .prose .astro-code span{color:var(--shiki-dark)!important;background-color:var(--shiki-dark-bg)!important;font-style:var(--shiki-dark-font-style)!important;font-weight:var(--shiki-dark-font-weight)!important;-webkit-text-decoration:var(--shiki-dark-text-decoration)!important;text-decoration:var(--shiki-dark-text-decoration)!important}.prose table{border-collapse:collapse;width:100%;margin:2rem 0;font-size:.9rem}.prose thead{border-bottom:2px solid var(--mode-border)}.prose th{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.08em;color:var(--mode-text-dimmed);text-align:left;padding:.6rem 1rem;font-size:.8rem;font-weight:700}.prose td{border-bottom:1px solid var(--mode-border);color:var(--mode-text-secondary);padding:.6rem 1rem}.prose tr:last-child td{border-bottom:none}.post-header__read-time{color:var(--mode-text-dimmed);align-items:center;gap:.3rem;font-size:.875rem;display:inline-flex}.post-header__read-time svg{opacity:.7;flex-shrink:0}.reading-progress{z-index:900;pointer-events:none;height:4px;position:fixed;top:70px;left:0;right:0}.reading-progress__bar{opacity:.98;transform-origin:0;will-change:transform;filter:saturate(1.18)brightness(1.12);background:linear-gradient(90deg,#818cf8 0%,#22d3ee 60%,#a78bfa 100%);width:100%;height:100%;transform:scaleX(0);box-shadow:0 0 10px #818cf88c,0 0 14px #22d3ee73}
