.theme-icon-moon,html[data-theme=dark] .theme-icon-sun{display:none}html[data-theme=dark] .theme-icon-moon{display:block}@media(prefers-color-scheme:dark){html:not([data-theme=light]) .theme-icon-sun{display:none}html:not([data-theme=light]) .theme-icon-moon{display:block}}.btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:.5rem 1rem;border:1px solid transparent;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:600;line-height:1.4;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,color .15s ease;text-decoration:none}.btn:hover{text-decoration:none}.btn--primary{background:var(--c-accent);color:var(--c-on-accent)}.btn--primary:hover{background:var(--c-accent-hover)}.btn--ghost{background:transparent;border-color:var(--c-border-strong);color:var(--c-text)}.btn--ghost:hover{background:var(--c-surface);border-color:var(--c-accent);color:var(--c-accent)}.btn--sm{padding:.3rem .7rem;font-size:var(--text-xs)}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid var(--c-border);border-radius:var(--radius-md);background:var(--c-surface);color:var(--c-text-muted);cursor:pointer;padding:0}.icon-button:hover{color:var(--c-accent);border-color:var(--c-accent)}.icon-button svg{width:17px;height:17px}.badge{display:inline-flex;align-items:center;gap:.3rem;padding:.1rem .5rem;border-radius:999px;background:var(--c-surface-2);color:var(--c-text-muted);font-size:var(--text-xs);font-weight:600;line-height:1.6;white-space:nowrap}.badge--accent{background:var(--c-accent-weak);color:var(--c-accent)}.card{display:block;padding:var(--space-5);background:var(--c-bg);border:1px solid var(--c-border);border-radius:var(--radius-lg);color:inherit;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}a.card:hover{text-decoration:none;border-color:var(--c-accent);box-shadow:var(--shadow-md);transform:translateY(-3px)}.card__title{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin:0 0 var(--space-2);font-size:var(--text-lg);font-weight:650}.card__desc{margin:0;color:var(--c-text-muted);font-size:var(--text-sm)}.grid{display:grid;gap:var(--space-4)}.grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:960px){.grid--4,.grid--3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.grid--2,.grid--3,.grid--4{grid-template-columns:1fr}}.section{padding:var(--space-7) 0}.section+.section{border-top:1px solid var(--c-border)}.section--alt{background:var(--c-surface)}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-5)}.section-title{margin:0;font-size:var(--text-2xl)}.section-desc{margin:var(--space-2) 0 0;max-width:60ch;color:var(--c-text-muted);font-size:var(--text-sm)}.section-link{font-size:var(--text-sm);white-space:nowrap}.empty-state{padding:var(--space-6);border:1px dashed var(--c-border-strong);border-radius:var(--radius-lg);text-align:center;color:var(--c-text-muted);background:var(--c-surface)}.empty-state__title{margin:0 0 var(--space-2);font-size:var(--text-base);font-weight:650;color:var(--c-text)}.empty-state__desc{margin:0;font-size:var(--text-sm)}.site-header{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--c-bg) 88%,transparent);-webkit-backdrop-filter:saturate(150%) blur(8px);backdrop-filter:saturate(150%) blur(8px);border-bottom:1px solid var(--c-border)}.header-inner{display:flex;align-items:center;gap:var(--space-4);height:var(--header-height)}.brand{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--c-text);font-weight:700;font-size:var(--text-lg);letter-spacing:-.02em;white-space:nowrap}.brand:hover{text-decoration:none}.brand-mark{display:block;width:30px;height:30px;border-radius:9px}.footer-mark{display:inline-flex;margin-bottom:var(--space-3)}.nav-primary{display:flex;flex:1;min-width:0}.nav-list{display:flex;align-items:center;gap:var(--space-1);margin:0;padding:0;list-style:none}.nav-link{display:inline-block;padding:.35rem .6rem;border-radius:var(--radius-md);color:var(--c-text-muted);font-size:var(--text-sm);font-weight:550;white-space:nowrap}.nav-link:hover{background:var(--c-surface-2);color:var(--c-text);text-decoration:none}.nav-link[aria-current=page]{color:var(--c-accent);background:var(--c-accent-weak)}.nav-item--more{position:relative}.nav-more-button{display:inline-flex;align-items:center;gap:.25rem;padding:.35rem .6rem;border:0;background:none;border-radius:var(--radius-md);color:var(--c-text-muted);font-size:var(--text-sm);font-weight:550;font-family:inherit;cursor:pointer}.nav-item--more:hover .nav-more-button,.nav-item--more:focus-within .nav-more-button{background:var(--c-surface-2);color:var(--c-text)}.nav-dropdown{position:absolute;top:calc(100% + 6px);left:0;min-width:180px;padding:var(--space-2);margin:0;list-style:none;background:var(--c-bg);border:1px solid var(--c-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity .12s ease,transform .12s ease,visibility .12s}.nav-item--more:hover .nav-dropdown,.nav-item--more:focus-within .nav-dropdown{opacity:1;visibility:visible;transform:translateY(0)}.nav-dropdown a{display:block;padding:.4rem .6rem;border-radius:var(--radius-sm);color:var(--c-text);font-size:var(--text-sm)}.nav-dropdown a:hover{background:var(--c-surface-2);text-decoration:none}.header-actions{display:flex;align-items:center;gap:var(--space-2);margin-left:auto}.lang-link{display:inline-flex;align-items:center;padding:0 .6rem;height:34px;border:1px solid var(--c-border);border-radius:var(--radius-md);background:var(--c-surface);color:var(--c-text-muted);font-size:var(--text-xs);font-weight:600}.lang-link:hover{color:var(--c-accent);border-color:var(--c-accent);text-decoration:none}.search-box{display:flex;align-items:center;gap:var(--space-2)}.search-input{width:190px;height:34px;padding:0 .65rem;border:1px solid var(--c-border);border-radius:var(--radius-md);background:var(--c-surface);color:var(--c-text);font-family:inherit;font-size:var(--text-sm)}.search-input::placeholder{color:var(--c-text-weak)}.search-input:focus{outline:none;border-color:var(--c-accent);box-shadow:0 0 0 3px var(--c-accent-weak)}.search-submit{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;border:1px solid var(--c-border);border-radius:var(--radius-md);background:var(--c-surface);color:var(--c-text-muted);cursor:pointer}.search-submit:hover{color:var(--c-accent);border-color:var(--c-accent)}.search-submit svg{width:17px;height:17px}.search-box--drawer{margin-bottom:var(--space-5)}.search-box--drawer .search-input{width:100%}.menu-button{display:none}.nav-drawer{position:fixed;inset:0;z-index:60;visibility:hidden;pointer-events:none}.nav-drawer[data-open=true]{visibility:visible;pointer-events:auto}.drawer-backdrop{position:absolute;inset:0;background:#090c128c;opacity:0;transition:opacity .18s ease;border:0;padding:0;cursor:pointer}.nav-drawer[data-open=true] .drawer-backdrop{opacity:1}.drawer-panel{position:absolute;top:0;right:0;bottom:0;width:min(320px,86vw);padding:var(--space-5);background:var(--c-bg);border-left:1px solid var(--c-border);overflow-y:auto;transform:translate(100%);transition:transform .2s ease}.nav-drawer[data-open=true] .drawer-panel{transform:translate(0)}.drawer-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-5)}.drawer-group+.drawer-group{margin-top:var(--space-5)}.drawer-title{margin:0 0 var(--space-2);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--c-text-weak)}.drawer-list{margin:0;padding:0;list-style:none}.drawer-list a{display:block;padding:.5rem 0;border-bottom:1px solid var(--c-border);color:var(--c-text);font-size:var(--text-sm)}.drawer-list a:hover{color:var(--c-accent);text-decoration:none}.site-main{min-height:60vh}.site-footer{margin-top:var(--space-8);padding:var(--space-7) 0 var(--space-5);background:var(--c-surface);border-top:1px solid var(--c-border);font-size:var(--text-sm)}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:var(--space-6)}.footer-title{margin:0 0 var(--space-3);font-size:var(--text-sm);font-weight:700}.footer-list{margin:0;padding:0;list-style:none}.footer-list li+li{margin-top:var(--space-2)}.footer-list a{color:var(--c-text-muted)}.footer-list a:hover{color:var(--c-accent)}.footer-text{margin:0;max-width:46ch;color:var(--c-text-muted)}.footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--c-border);color:var(--c-text-weak);font-size:var(--text-xs)}@media(max-width:1100px){.nav-primary{display:none}.menu-button{display:inline-flex}}@media(max-width:720px){.footer-grid{grid-template-columns:1fr;gap:var(--space-5)}.footer-bottom{flex-direction:column;align-items:flex-start}}.prose{max-width:var(--container-prose);font-size:1.0625rem;color:var(--c-text)}.prose>*+*{margin-top:var(--space-4)}.prose h2{margin:var(--space-7) 0 var(--space-3);padding-top:var(--space-3);font-size:var(--text-2xl);scroll-margin-top:calc(var(--header-height) + var(--space-4))}.prose h3{margin:var(--space-6) 0 var(--space-2);font-size:var(--text-xl);scroll-margin-top:calc(var(--header-height) + var(--space-4))}.prose h4{margin:var(--space-5) 0 var(--space-2);font-size:var(--text-lg)}.prose p{margin:0}.prose ul,.prose ol{margin:0;padding-left:1.35rem}.prose li+li{margin-top:var(--space-2)}.prose li>ul,.prose li>ol{margin-top:var(--space-2)}.prose strong{font-weight:680}.prose a{text-decoration:underline;text-underline-offset:2px}.prose code{background:var(--c-code-bg);border:1px solid var(--c-border);border-radius:var(--radius-sm);padding:.1em .35em;font-size:.88em;word-break:break-word}.prose pre{margin:0;padding:var(--space-4);border-radius:var(--radius-md);background:var(--c-code-bg);border:1px solid var(--c-border);overflow-x:auto;line-height:1.6;font-size:.875rem}.prose pre code{background:none;border:0;padding:0;font-size:inherit}.prose blockquote{margin:0;padding:var(--space-3) var(--space-4);border-left:3px solid var(--c-accent);background:var(--c-surface);border-radius:0 var(--radius-md) var(--radius-md) 0;color:var(--c-text-muted)}.prose table{font-size:var(--text-sm)}.prose th{background:var(--c-surface)}.prose hr{margin:var(--space-6) 0}.prose img{border-radius:var(--radius-md)}.code-block{position:relative}.code-block__copy{position:absolute;top:var(--space-2);right:var(--space-2);padding:.15rem .55rem;border:1px solid var(--c-border-strong);border-radius:var(--radius-sm);background:var(--c-bg);color:var(--c-text-muted);font-size:var(--text-xs);font-weight:600;line-height:1.6;cursor:pointer;opacity:0;transition:opacity .15s ease,color .15s ease,border-color .15s ease}.code-block:hover .code-block__copy,.code-block__copy:focus-visible{opacity:1}.code-block__copy[data-copied=true]{opacity:1;color:var(--c-accent);border-color:var(--c-accent)}@media(hover:none){.code-block__copy{opacity:1}}.prose pre,.prose pre code{background:var(--c-code-bg)!important}:root[data-theme=light] .prose .astro-code-dark,:root:not([data-theme=dark]) .prose .astro-code-dark{display:none}:root[data-theme=dark] .prose .astro-code-light{display:none}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .prose .astro-code-light{display:none}:root:not([data-theme=light]) .prose .astro-code-dark{display:block}}@media(max-width:640px){.prose{font-size:var(--text-base)}.prose h2{margin-top:var(--space-6);font-size:var(--text-xl)}.prose h3{font-size:var(--text-lg)}}.article{padding:var(--space-6) 0 var(--space-7)}.article-layout{display:grid;grid-template-columns:248px minmax(0,1fr);gap:var(--space-7);align-items:start}.article-layout--single{grid-template-columns:minmax(0,1fr)}.article-note{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2);margin:0 0 var(--space-5);color:var(--c-text-muted);font-size:var(--text-xs);line-height:1.6}.article-aside{position:sticky;top:calc(var(--header-height) + var(--space-5));max-height:calc(100vh - var(--header-height) - var(--space-7));overflow-y:auto;padding-right:var(--space-2)}.aside-block+.aside-block{margin-top:var(--space-6);padding-top:var(--space-5);border-top:1px solid var(--c-border)}.aside-title{margin:0 0 var(--space-3);font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--c-text-weak)}.aside-series-name{margin:0 0 var(--space-3);font-size:var(--text-sm);font-weight:650}.series-list,.toc-list{margin:0;padding:0;list-style:none}.series-link{display:flex;align-items:baseline;gap:var(--space-2);padding:.35rem .5rem;border-radius:var(--radius-md);color:var(--c-text-muted);font-size:var(--text-sm);line-height:1.45}.series-link:hover{background:var(--c-surface-2);color:var(--c-text);text-decoration:none}.series-link[aria-current=page]{background:var(--c-accent-weak);color:var(--c-accent);font-weight:650}.series-num{flex:none;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--c-text-weak)}.series-link[aria-current=page] .series-num{color:var(--c-accent)}.series-link--pending{color:var(--c-text-weak);cursor:default}.series-link--pending:hover{background:none;color:var(--c-text-weak)}.toc-list a{display:block;padding:.3rem .5rem;border-left:2px solid var(--c-border);color:var(--c-text-muted);font-size:var(--text-sm);line-height:1.45}.toc-list a:hover{border-left-color:var(--c-accent);color:var(--c-text);text-decoration:none}.toc-list .toc-h3{padding-left:var(--space-4);font-size:var(--text-xs)}.aside-meta{margin:0;color:var(--c-text-weak);font-size:var(--text-xs)}.aside-meta+.aside-meta{margin-top:var(--space-1)}.article-main>.prose>:first-child{margin-top:0}.event-card{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3) var(--space-5);margin-bottom:var(--space-6);padding:var(--space-5);border:1px solid var(--c-border);border-radius:var(--radius-lg);background:var(--c-surface);font-size:var(--text-sm)}.event-card__item{display:flex;flex-direction:column;gap:.2rem}.event-card__label{color:var(--c-text-weak);font-size:var(--text-xs)}.source-list{margin:var(--space-6) 0 0;padding:var(--space-5);border:1px solid var(--c-border);border-radius:var(--radius-lg);background:var(--c-surface)}.source-list h2{margin:0 0 var(--space-3);font-size:var(--text-base)}.source-list ol{margin:0;padding-left:1.25rem;font-size:var(--text-sm)}.source-list a{word-break:break-all}.prev-next{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4);margin-top:var(--space-7);padding-top:var(--space-5);border-top:1px solid var(--c-border)}.prev-next__label{display:block;margin-bottom:var(--space-1);color:var(--c-text-weak);font-size:var(--text-xs)}.prev-next a{display:block;color:var(--c-text);font-weight:600;font-size:var(--text-sm)}.prev-next__empty{color:var(--c-text-weak);font-size:var(--text-sm)}.post-tags{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-2) var(--space-3);margin-top:var(--space-6)}.post-tags__label{color:var(--c-text-weak);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em}.post-tags__list{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:0;padding:0;list-style:none}.post-tag{display:inline-block;padding:.1rem .6rem;border:1px solid var(--c-border);border-radius:999px;color:var(--c-text-muted);font-size:var(--text-xs);line-height:1.75}a.post-tag:hover{border-color:var(--c-accent);color:var(--c-accent);text-decoration:none}.post-tag--plain{border-style:dashed;color:var(--c-text-weak)}.post-card{display:flex;flex-direction:column;gap:var(--space-2);height:100%;padding:var(--space-5);border:1px solid var(--c-border);border-radius:var(--radius-lg);background:var(--c-bg);color:inherit;box-shadow:var(--shadow-sm);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}a.post-card:hover{text-decoration:none;border-color:var(--c-accent);box-shadow:var(--shadow-md);transform:translateY(-3px)}.post-card__meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);color:var(--c-text-weak);font-size:var(--text-xs)}.post-card__title{margin:0;font-size:var(--text-lg);line-height:1.35}a.post-card:hover .post-card__title{color:var(--c-accent)}.post-card__desc{margin:0;color:var(--c-text-muted);font-size:var(--text-sm)}@media(max-width:960px){.article-layout{grid-template-columns:1fr;gap:var(--space-5)}.article-aside{position:static;max-height:none;padding:var(--space-4);border:1px solid var(--c-border);border-radius:var(--radius-lg);background:var(--c-surface)}.event-card{grid-template-columns:1fr}}@media(max-width:640px){.prev-next{grid-template-columns:1fr}}.skip-link[data-astro-cid-z4jru4n3]{position:absolute;left:-9999px;top:0}.skip-link[data-astro-cid-z4jru4n3]:focus{left:var(--space-4);top:var(--space-4);z-index:100;padding:var(--space-2) var(--space-4);background:var(--c-accent);color:#fff;border-radius:var(--radius-md);text-decoration:none}
