.blog-theme-boundary{--blog-bg:var(--ag-canvas);--blog-ink:var(--ag-text-strong);--blog-muted:var(--ag-text);--blog-faint:var(--ag-text-muted);--blog-panel:var(--ag-surface-1);--blog-panel-soft:var(--ag-surface-2);--blog-panel-raised:var(--ag-surface-3);--blog-border:var(--ag-border);--blog-hairline:var(--ag-hairline);--blog-input-bg:var(--ag-surface-2);--blog-accent:var(--ag-text-strong);min-height:100vh;position:relative;z-index:2;background:var(--blog-bg);color:var(--blog-ink)}body:has(.blog-theme-boundary){background:var(--blog-bg)!important}body:has(.blog-theme-boundary) .parallax-stars,body:has(.blog-theme-boundary) [data-background=stars]{display:none!important}.blog-theme-boundary h1,.blog-theme-boundary h2,.blog-theme-boundary h3,.blog-theme-boundary h4,.blog-theme-boundary strong{color:var(--blog-ink)}.blog-theme-boundary li,.blog-theme-boundary p{color:var(--blog-muted)}.blog-theme-boundary input,.blog-theme-boundary select,.blog-theme-boundary textarea{background:var(--blog-input-bg);border-color:var(--blog-border);color:var(--blog-ink)}.blog-masthead{padding-block:clamp(132px,16vw,176px) var(--ag-space-9)}.blog-masthead__lede{margin-top:var(--ag-space-5)}.blog-masthead__meta{margin-top:var(--ag-space-7);padding-top:var(--ag-space-5);display:flex;flex-wrap:wrap;gap:var(--ag-space-2) var(--ag-space-8);border-top:1px solid var(--blog-hairline)}.blog-masthead__meta dt{color:var(--blog-faint)}.blog-masthead__meta dd{margin:0;color:var(--blog-ink);font-weight:500}.blog-masthead__meta div{display:flex;align-items:baseline;gap:var(--ag-space-2)}.blog-chips{margin-top:var(--ag-space-7);display:flex;flex-wrap:wrap;gap:var(--ag-space-2)}.blog-chips__item{display:inline-flex;align-items:center;gap:var(--ag-space-2);min-height:44px;padding:0 var(--ag-space-4);border:1px solid var(--blog-border);border-radius:var(--ag-r-pill);color:var(--blog-muted);text-decoration:none;transition:background var(--ag-dur-ui) var(--ag-ease-out),border-color var(--ag-dur-ui) var(--ag-ease-out),color var(--ag-dur-ui) var(--ag-ease-out)}.blog-chips__item[data-chip-all]{color:var(--blog-ink);font-weight:500}.blog-chips__count{color:var(--blog-faint);font-variant-numeric:tabular-nums}.blog-chips__item.is-active{background:var(--blog-ink);border-color:var(--blog-ink);color:var(--blog-bg)}.blog-chips__item.is-active .blog-chips__count{color:var(--blog-bg);opacity:.7}.blog-chips__item:focus-visible{outline:2px solid var(--blog-ink);outline-offset:2px}@media (hover:hover) and (pointer:fine){.blog-chips__item:not(.is-active):hover{background:var(--blog-panel-soft);border-color:var(--blog-border);color:var(--blog-ink)}}.blog-search{margin-top:0}.blog-search__row{display:flex;align-items:center;gap:var(--ag-space-3)}.blog-search__field{flex:1;position:relative;min-width:0}.blog-search__icon{position:absolute;left:var(--ag-space-4);top:50%;transform:translateY(-50%);color:var(--blog-faint);pointer-events:none}.blog-search__input{width:100%;min-height:48px;padding:0 var(--ag-space-4) 0 44px;border-radius:var(--ag-r-sm);background:var(--blog-input-bg)!important;border:1px solid var(--blog-border)!important;color:var(--blog-ink)!important;font-family:var(--ag-font);font-size:var(--ag-body-size);outline:0;transition:border-color var(--ag-dur-ui) var(--ag-ease-out)}.blog-search__input::placeholder{color:var(--blog-faint)}.blog-search__input:focus-visible{outline:2px solid var(--blog-ink);outline-offset:2px}.blog-search__toggle{display:inline-flex;align-items:center;gap:var(--ag-space-2);min-height:48px;padding:0 var(--ag-space-4);border-radius:var(--ag-r-sm);background:var(--blog-input-bg)!important;border:1px solid var(--blog-border)!important;color:var(--blog-muted)!important;font-family:var(--ag-font);font-size:var(--ag-small-size);cursor:pointer;transition:background var(--ag-dur-ui) var(--ag-ease-out),color var(--ag-dur-ui) var(--ag-ease-out)}.blog-search__toggle.is-active{background:var(--blog-ink)!important;border-color:var(--blog-ink)!important;color:var(--blog-bg)!important}.blog-search__clear:focus-visible,.blog-search__toggle:focus-visible{outline:2px solid var(--blog-ink);outline-offset:2px}.blog-search__panel{margin-top:var(--ag-space-3);padding:var(--ag-space-4);display:flex;flex-wrap:wrap;gap:var(--ag-space-3);border-radius:var(--ag-r-md);background:var(--blog-panel-soft);border:1px solid var(--blog-border)}.blog-search__select{min-width:140px;padding:0 32px 0 var(--ag-space-3);background:var(--blog-input-bg);color:var(--blog-ink)}.blog-search__clear,.blog-search__select{min-height:44px;border-radius:var(--ag-r-sm);border:1px solid var(--blog-border);font-family:var(--ag-font);font-size:var(--ag-small-size);cursor:pointer}.blog-search__clear{display:inline-flex;align-items:center;gap:var(--ag-space-2);padding:0 var(--ag-space-3);background:transparent;color:var(--blog-muted)}.blog-search__chips{margin-top:var(--ag-space-3);display:flex;flex-wrap:wrap;gap:var(--ag-space-2)}.blog-search__chip{padding:4px var(--ag-space-3);border-radius:var(--ag-r-xs);background:var(--blog-panel-soft);color:var(--blog-muted);font-size:var(--ag-micro-size)}.blog-search__chip--accent{background:var(--blog-panel-raised);color:var(--blog-ink);font-weight:500}@media (hover:hover) and (pointer:fine){.blog-search__clear:hover,.blog-search__toggle:not(.is-active):hover{background:var(--blog-panel-raised)!important;color:var(--blog-ink)!important}}.blog-cover-brand{position:absolute;z-index:2;display:block;overflow:hidden;width:5.75%;min-width:22px;max-width:48px;aspect-ratio:1;border:1px solid var(--blog-hairline);border-radius:22%;background:var(--blog-panel-raised);pointer-events:none}.blog-cover-brand img{padding:19%;object-fit:contain!important}.blog-cover-brand--card{top:6%;left:4%}.blog-cover-brand--article{top:5%;left:3%}.blog-grid{margin-top:var(--ag-space-8)}[data-blog-empty][hidden],[data-blog-grid][hidden],[data-blog-pagination][hidden]{display:none!important}.blog-index__empty{padding:var(--ag-space-12) 0;border-block:1px solid var(--blog-hairline);text-align:center}.blog-index__empty p{margin-inline:auto}.blog-card__meta{color:var(--blog-faint)}.blog-card>div:first-child{aspect-ratio:16/9}.blog-card .t-body,.blog-card .t-title{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:5}@media (min-width:1068px){.blog-grid ul>.blog-card--lead{grid-column:1/-1}}.blog-pagination{margin-top:var(--ag-space-9);padding-top:var(--ag-space-6);justify-content:space-between;gap:var(--ag-space-3) var(--ag-space-4);border-top:1px solid var(--blog-hairline)}.blog-pagination,.blog-pagination__pages{display:flex;flex-wrap:wrap;align-items:center}.blog-pagination__pages{margin:0;padding:0;list-style:none;order:2;gap:2px}.blog-pagination__link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 var(--ag-space-5);border-radius:var(--ag-r-sm);color:var(--blog-muted);font-size:var(--ag-small-size);font-weight:500;text-decoration:none}.blog-pagination__link--prev{order:1}.blog-pagination__link--next{order:3}.blog-pagination__link--disabled{color:var(--blog-faint);pointer-events:none}.blog-pagination__page{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0 6px;border-radius:var(--ag-r-sm);color:var(--blog-muted);font-size:var(--ag-small-size);text-decoration:none}.blog-pagination__page[aria-current=page]{color:var(--blog-ink);font-weight:600;text-decoration:underline;text-underline-offset:4px}.blog-pagination__ellipsis{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;color:var(--blog-faint)}.blog-pagination__link:focus-visible,.blog-pagination__page:focus-visible{outline:2px solid var(--blog-ink);outline-offset:2px}@media (hover:hover) and (pointer:fine){.blog-pagination__link:not(.blog-pagination__link--disabled):hover,.blog-pagination__page:hover{background:var(--blog-panel-soft);color:var(--blog-ink)}}@media (max-width:580px){.blog-pagination{justify-content:center}.blog-pagination__pages{order:1;width:100%;justify-content:center}.blog-pagination__link--prev{order:2}.blog-pagination__link--next{order:3}}.blog-reading-progress{position:fixed;top:0;left:0;height:2px;background:var(--blog-ink);z-index:var(--ag-z-nav);transition:width .1s linear;pointer-events:none}@media (prefers-reduced-motion:reduce){.blog-reading-progress{transition:none}}.blog-article__header{padding-block:clamp(132px,15vw,168px) var(--ag-space-9)}.blog-article__back{margin-bottom:var(--ag-space-7);display:inline-flex;align-items:center;gap:4px;color:var(--blog-muted);font-size:var(--ag-small-size);text-decoration:none}.blog-article__back:hover{color:var(--blog-ink)}.blog-article__header h1{margin:0 0 var(--ag-space-5)}.blog-article__dek{max-width:62ch;margin:0 0 var(--ag-space-6)}.blog-article__tags{margin-bottom:var(--ag-space-5);display:flex;flex-wrap:wrap;gap:var(--ag-space-2)}.blog-article__tag{display:inline-flex;align-items:center;min-height:32px;padding:0 var(--ag-space-3);border-radius:var(--ag-r-pill);border:1px solid var(--blog-border);color:var(--blog-muted);font-size:var(--ag-micro-size);text-decoration:none}.blog-article__tag[data-tag-topic]{color:var(--blog-ink);border-color:var(--blog-ink);font-weight:500}.blog-article__byline{display:flex;align-items:center;gap:var(--ag-space-3)}.blog-article__avatar{flex:none;position:relative;width:40px;height:40px;border-radius:50%;overflow:hidden;border:1px solid var(--blog-hairline);background:var(--blog-panel-soft)}.blog-article__avatar img{object-fit:cover}.blog-article__byline-text{display:flex;flex-wrap:wrap;align-items:center;gap:var(--ag-space-2);color:var(--blog-faint);font-size:var(--ag-small-size)}.blog-article__byline-text strong{color:var(--blog-ink);font-weight:500}.blog-article__hero{margin-bottom:clamp(40px,6vw,64px)}.blog-article__hero-frame{position:relative;aspect-ratio:16/9;overflow:hidden;border:1px solid var(--blog-hairline);border-radius:var(--ag-r-lg);background:var(--blog-panel-soft)}.blog-article__hero-frame>img{object-fit:cover}.blog-article__layout{display:grid;grid-template-columns:minmax(0,var(--ag-w-read)) 240px;gap:clamp(40px,6vw,72px);align-items:start;justify-content:center}.blog-article__toc-desktop{position:sticky;top:104px}.blog-toc{border:1px solid var(--blog-hairline);border-radius:var(--ag-r-md);background:var(--blog-panel)}.blog-toc__trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--ag-space-2);min-height:44px;padding:var(--ag-space-3) var(--ag-space-4);background:none;border:none;color:var(--blog-ink);font-family:var(--ag-font);font-size:var(--ag-small-size);font-weight:500;cursor:pointer}.blog-toc__trigger svg{transition:transform var(--ag-dur-ui) var(--ag-ease-out)}.blog-toc__trigger[aria-expanded=true] svg{transform:rotate(90deg)}.blog-toc__list{margin:0;padding:0 var(--ag-space-3) var(--ag-space-3);list-style:none;display:flex;flex-direction:column;gap:2px}.blog-toc__list a{display:block;padding:var(--ag-space-2) var(--ag-space-3);border-radius:var(--ag-r-xs);color:var(--blog-muted);font-size:var(--ag-small-size);line-height:1.4;text-decoration:none;transition:background var(--ag-dur-ui) var(--ag-ease-out),color var(--ag-dur-ui) var(--ag-ease-out)}.blog-toc__list li[data-level="3"] a{padding-left:calc(var(--ag-space-3) + var(--ag-space-4))}.blog-toc__list a.is-active{background:var(--blog-panel-soft);color:var(--blog-ink);font-weight:500}.blog-toc__list a:focus-visible{outline:2px solid var(--blog-ink);outline-offset:2px}@media (hover:hover) and (pointer:fine){.blog-toc__list a:not(.is-active):hover{background:var(--blog-panel-soft);color:var(--blog-ink)}}@media (max-width:1023px){.blog-article__toc-desktop{display:none}.blog-toc-mobile{margin-bottom:var(--ag-space-7)}}@media (min-width:1024px){.blog-toc-mobile{display:none}}.blog-prose{min-width:0}.blog-prose h2{margin:var(--ag-space-10) 0 var(--ag-space-5);padding-top:var(--ag-space-6);border-top:1px solid var(--blog-hairline);scroll-margin-top:104px}.blog-prose h2:first-child{margin-top:0;padding-top:0;border-top:none}.blog-prose h3{margin:var(--ag-space-8) 0 var(--ag-space-3);scroll-margin-top:104px}.blog-prose h4{margin:var(--ag-space-6) 0 var(--ag-space-2);scroll-margin-top:104px;font-family:var(--ag-font);font-size:var(--ag-body-size);line-height:var(--ag-body-leading);font-weight:600;color:var(--blog-ink)}.blog-prose li,.blog-prose p{margin:0 0 var(--ag-space-5);max-width:none}.blog-prose ol,.blog-prose ul{margin:0 0 var(--ag-space-5);padding-left:var(--ag-space-6)}.blog-prose li{margin-bottom:var(--ag-space-2);padding-left:4px}.blog-prose li:last-child{margin-bottom:0}.blog-prose strong{font-weight:600;color:var(--blog-ink)}.blog-prose blockquote{margin:var(--ag-space-7) 0;padding:var(--ag-space-2) 0 var(--ag-space-2) var(--ag-space-5);border-left:2px solid var(--blog-border);color:var(--blog-ink);font-size:var(--ag-intro-size);line-height:var(--ag-intro-leading);font-style:italic}.blog-prose blockquote p{margin-bottom:var(--ag-space-2)}.blog-prose blockquote p:last-child{margin-bottom:0}.blog-prose hr{margin:var(--ag-space-9) 0;height:1px;border:none;background:var(--blog-hairline)}.blog-prose a{color:var(--blog-ink);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--blog-ink) 35%,transparent);text-underline-offset:3px;font-weight:500}.blog-prose a:hover{text-decoration-color:var(--blog-ink)}.blog-prose a.anchor{color:inherit;text-decoration:none}.blog-prose figure{margin:var(--ag-space-7) 0}.blog-prose figure img{max-width:100%;height:auto;border-radius:var(--ag-r-md);border:1px solid var(--blog-hairline)}.blog-prose figcaption{margin-top:var(--ag-space-2);text-align:center;color:var(--blog-faint);font-size:var(--ag-small-size)}.blog-prose code{padding:2px 7px;border-radius:var(--ag-r-xs);color:var(--blog-ink);font-family:var(--ag-font);font-variant-numeric:tabular-nums;font-weight:500;font-size:.9em}.blog-prose code,.blog-prose pre{background:var(--blog-panel-soft)}.blog-prose pre{margin:0 0 var(--ag-space-7);padding:var(--ag-space-5);overflow:auto;border-radius:var(--ag-r-md);border:1px solid var(--blog-border)}.blog-prose pre code{padding:0;background:none;font-weight:400;font-size:var(--ag-small-size);line-height:1.7}.blog-prose__table-wrap{margin:var(--ag-space-7) 0;overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--blog-hairline);border-radius:var(--ag-r-md);background:var(--blog-panel)}.blog-prose table{width:100%;min-width:560px;table-layout:auto;border-collapse:collapse;font-size:var(--ag-small-size);line-height:1.55}.blog-prose thead{background:var(--blog-panel-soft)}.blog-prose tbody tr,.blog-prose thead{border-bottom:1px solid var(--blog-hairline)}.blog-prose tbody tr:last-child{border-bottom:none}.blog-prose td,.blog-prose th{padding:var(--ag-space-3) var(--ag-space-4);text-align:left;vertical-align:top;white-space:normal;overflow-wrap:break-word}.blog-prose th{color:var(--blog-ink);font-weight:600}.blog-prose td{color:var(--blog-muted)}.blog-callout{margin:0 0 var(--ag-space-8);padding:var(--ag-space-6);border:1px solid var(--blog-border);border-radius:var(--ag-r-lg);background:var(--blog-panel-soft)}.blog-callout .blog-callout__label{margin:0 0 var(--ag-space-3)!important;padding-top:0!important;border-top:none!important;font-size:var(--ag-small-size)!important;color:var(--blog-faint)!important;font-weight:600!important}.blog-callout>:last-child{margin-bottom:0!important}.blog-share{margin-top:var(--ag-space-9);padding:var(--ag-space-5) var(--ag-space-6);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--ag-space-4);border-radius:var(--ag-r-md);border:1px solid var(--blog-border);background:var(--blog-panel-soft)}.blog-share__label{color:var(--blog-muted);font-size:var(--ag-small-size)}.blog-share__actions{display:flex;gap:var(--ag-space-2)}.blog-share__button{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--ag-r-sm);border:1px solid var(--blog-border);background:var(--blog-panel);color:var(--blog-muted);cursor:pointer;transition:background var(--ag-dur-ui) var(--ag-ease-out),color var(--ag-dur-ui) var(--ag-ease-out)}.blog-share__button:focus-visible{outline:2px solid var(--blog-ink);outline-offset:2px}@media (hover:hover) and (pointer:fine){.blog-share__button:hover{background:var(--blog-panel-raised);color:var(--blog-ink)}}.blog-pager{margin-top:var(--ag-space-5);display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:var(--ag-space-3)}.blog-pager__link{display:block;padding:var(--ag-space-4) var(--ag-space-5);border-radius:var(--ag-r-md);background:var(--blog-panel);border:1px solid var(--blog-border);text-decoration:none;transition:background var(--ag-dur-ui) var(--ag-ease-out)}.blog-pager__link--next{text-align:right}.blog-pager__label{display:flex;align-items:center;gap:4px;margin-bottom:var(--ag-space-2);color:var(--blog-faint);font-size:var(--ag-micro-size);font-weight:500}.blog-pager__link--next .blog-pager__label{justify-content:flex-end}.blog-pager__title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:var(--blog-ink);font-size:var(--ag-small-size);font-weight:500;line-height:1.4}@media (hover:hover) and (pointer:fine){.blog-pager__link:hover{background:var(--blog-panel-soft)}}.blog-related{margin-top:clamp(64px,9vw,96px);padding-block:clamp(64px,9vw,96px);border-top:1px solid var(--blog-hairline)}.blog-related__grid{margin-top:var(--ag-space-7)}@media (max-width:1180px){.blog-article__layout{grid-template-columns:minmax(0,1fr);max-width:var(--ag-w-read);margin-inline:auto}.blog-article__toc-desktop{display:none}}@media (max-width:620px){.blog-masthead{padding-block:clamp(112px,26vw,140px) var(--ag-space-7)}.blog-search__row{flex-wrap:wrap}.blog-search__toggle{flex:1;justify-content:center}}@media (prefers-reduced-motion:reduce){.blog-chips__item,.blog-pager__link,.blog-search__toggle,.blog-share__button,.blog-toc__list a,.blog-toc__trigger svg{transition:none}}