:root{--color-primary:#047857;--color-primary-hover:#065f46;--color-primary-soft:#10b9811a;--color-text:#1a1a1a;--color-text-secondary:#525252;--color-text-muted:#737373;--color-text-light:#6b6b6b;--color-text-inverse:#fff;--color-background:#fff;--color-background-secondary:#fafafa;--color-background-hover:#f5f5f5;--color-background-tertiary:#f3f4f6;--color-background-active:#e5e7eb;--color-border:#e5e5e5;--color-border-light:#f0f0f0;--color-border-dark:#d1d5db;--color-link:var(--color-text);--color-link-hover:var(--color-primary);--color-link-underline:var(--color-text-muted);--color-link-underline-hover:var(--color-primary);--color-success:#10b981;--color-success-soft:#d1fae5;--color-error:#ef4444;--color-error-soft:#fee2e2;--color-warning:#f59e0b;--color-warning-soft:#fef3c7;--color-info:#3b82f6;--color-info-soft:#dbeafe;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"SF Mono", SFMono-Regular, Consolas, monospace;--font-display:var(--font-sans);--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-page-title:clamp(2rem, 4.5vw, 2.75rem);--font-normal:400;--font-medium:500;--font-semibold:600;--font-bold:700;--leading-tight:1.25;--leading-snug:1.375;--leading-normal:1.5;--leading-relaxed:1.75;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-12:3rem;--space-16:4rem;--max-width:44rem;--max-width-wide:64rem;--page-gutter:clamp(1.125rem, 3vw, 2rem);--control-size:2.75rem;--z-sticky:100;--z-fixed:110;--z-toast:200;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius-xl:12px;--radius-full:9999px;--shadow-xs:0 1px 2px #0000000d;--shadow-sm:0 1px 3px #0000001a;--shadow-md:0 4px 6px #0000001a;--shadow-lg:0 10px 15px #0000001a;--shadow-focus:0 0 0 3px var(--color-primary-soft);--transition-fast:.1s ease;--transition-base:.15s ease;--transition-slow:.3s ease;--transition:var(--transition-base);--color-accent:var(--color-primary);--color-text-meta:var(--color-text-muted);--font-family-sans:var(--font-sans);--font-family-mono:var(--font-mono);--font-size-xs:var(--text-xs);--font-size-sm:var(--text-sm);--font-size-base:var(--text-base);--font-size-lg:var(--text-lg);--font-size-xl:var(--text-xl);--font-size-2xl:var(--text-2xl);--font-weight-normal:var(--font-normal);--font-weight-medium:var(--font-medium);--font-weight-semibold:var(--font-semibold);--font-weight-bold:var(--font-bold);--line-height-tight:var(--leading-tight);--line-height-snug:var(--leading-snug);--line-height-base:var(--leading-normal);--line-height-relaxed:var(--leading-relaxed);--spacing-xs:var(--space-1);--spacing-sm:var(--space-2);--spacing-md:var(--space-3);--spacing-base:var(--space-4);--spacing-1:var(--space-1);--spacing-2:var(--space-2);--spacing-3:var(--space-3);--spacing-4:var(--space-4);--spacing-5:var(--space-5);--spacing-6:var(--space-6);--spacing-8:var(--space-8);--spacing-lg:var(--space-6);--spacing-xl:var(--space-8);--spacing-2xl:var(--space-12);--max-width-container:var(--max-width-wide);--max-width-content:var(--max-width);--radius-base:var(--radius-md);--border-radius-base:var(--radius-md);--shadow-base:var(--shadow-sm)}.dark{--color-primary:#34d399;--color-primary-hover:#6ee7b7;--color-primary-soft:#34d39926;--color-text:#e5e5e5;--color-text-secondary:#a3a3a3;--color-text-muted:#a0a0a0;--color-text-light:#949494;--color-text-inverse:#0a0a0a;--color-background:#0a0a0a;--color-background-secondary:#171717;--color-background-hover:#262626;--color-background-tertiary:#1f1f1f;--color-background-active:#333;--color-border:#262626;--color-border-light:#1f1f1f;--color-border-dark:#404040;--color-success-soft:#10b98133;--color-error-soft:#ef444433;--color-warning-soft:#f59e0b33;--color-info-soft:#3b82f633}*{box-sizing:border-box}html{font-family:var(--font-sans);font-size:16px;line-height:var(--leading-normal);color:var(--color-text);background:var(--color-background);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{min-height:100vh;margin:0}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}img{max-width:100%;height:auto}::selection{background:var(--color-primary-soft);color:var(--color-text)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.theme-toggle[data-astro-cid-l6lhmie6]{width:44px;height:44px;color:var(--color-primary);cursor:pointer;transition:color var(--transition-fast);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.theme-toggle[data-astro-cid-l6lhmie6]:hover{color:var(--color-primary-hover)}.theme-toggle[data-astro-cid-l6lhmie6]:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;box-shadow:var(--shadow-focus);border-radius:var(--radius-sm)}.theme-toggle[data-astro-cid-l6lhmie6] svg[data-astro-cid-l6lhmie6]{width:18px;height:18px}.theme-toggle[data-astro-cid-l6lhmie6] .sun-icon[data-astro-cid-l6lhmie6]{display:none}.theme-toggle[data-astro-cid-l6lhmie6] .moon-icon[data-astro-cid-l6lhmie6],.dark .theme-toggle[data-astro-cid-l6lhmie6] .sun-icon[data-astro-cid-l6lhmie6]{display:block}.dark .theme-toggle[data-astro-cid-l6lhmie6] .moon-icon[data-astro-cid-l6lhmie6]{display:none}.icon[data-astro-cid-ccg5yoga]{vertical-align:middle;flex-shrink:0;display:inline-block}.header[data-astro-cid-fzpbxy5g]{z-index:var(--z-sticky);background:color-mix(in srgb, var(--color-background) 95%, transparent);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--color-border-light);position:sticky;top:0}.header-inner[data-astro-cid-fzpbxy5g]{max-width:calc(var(--max-width-wide) + var(--page-gutter) * 2);padding:var(--space-3) var(--page-gutter);justify-content:space-between;align-items:center;margin:0 auto;display:flex}.brand[data-astro-cid-fzpbxy5g]{align-items:center;gap:var(--space-2);display:flex}.logo[data-astro-cid-fzpbxy5g]{border-radius:var(--radius-md);width:32px;height:32px}.name[data-astro-cid-fzpbxy5g]{font-size:var(--text-base);font-weight:var(--font-semibold);letter-spacing:-.01em;margin:0}.header-right[data-astro-cid-fzpbxy5g]{align-items:center;gap:var(--space-2);display:flex}.nav[data-astro-cid-fzpbxy5g]{gap:var(--space-1);display:flex}.nav-link[data-astro-cid-fzpbxy5g]{min-height:44px;padding:var(--space-2) var(--space-3);font-size:var(--text-sm);color:var(--color-text-secondary);border-radius:var(--radius-md);transition:color var(--transition);align-items:center;display:inline-flex}.nav-link[data-astro-cid-fzpbxy5g][aria-current],.mobile-nav-link[data-astro-cid-fzpbxy5g][aria-current]{color:var(--color-primary);text-underline-offset:.45em;text-decoration:underline 2px}.header-search[data-astro-cid-fzpbxy5g]{width:44px;height:44px;color:var(--color-text-secondary);border-radius:var(--radius-md);justify-content:center;align-items:center;display:inline-flex}.header-search[data-astro-cid-fzpbxy5g]:hover,.nav-link[data-astro-cid-fzpbxy5g]:hover{color:var(--color-primary)}.mobile-menu-btn[data-astro-cid-fzpbxy5g]{width:44px;height:44px;padding:var(--space-2);color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-md);transition:color var(--transition);background:0 0;border:none;justify-content:center;align-items:center;display:none}.mobile-menu-btn[data-astro-cid-fzpbxy5g]:hover{color:var(--color-primary)}.mobile-menu-btn[data-astro-cid-fzpbxy5g] .icon-close[data-astro-cid-fzpbxy5g],.mobile-menu-btn[data-astro-cid-fzpbxy5g].is-open .icon-menu[data-astro-cid-fzpbxy5g]{display:none}.mobile-menu-btn[data-astro-cid-fzpbxy5g].is-open .icon-close[data-astro-cid-fzpbxy5g]{display:block}.mobile-nav[data-astro-cid-fzpbxy5g]{display:none}@media (width<=760px){.nav[data-astro-cid-fzpbxy5g]{display:none}.mobile-menu-btn[data-astro-cid-fzpbxy5g]:not([hidden]){display:flex}.mobile-nav[data-astro-cid-fzpbxy5g]{padding:0 var(--page-gutter) var(--space-4);border-top:1px solid var(--color-border);flex-direction:column;display:none}.mobile-nav[data-astro-cid-fzpbxy5g].is-open{display:flex}.mobile-nav[data-astro-cid-fzpbxy5g][hidden]{display:none}.header-right[data-astro-cid-fzpbxy5g]{gap:0}.header[data-astro-cid-fzpbxy5g]:not([data-navigation-ready]) .header-inner[data-astro-cid-fzpbxy5g]{flex-wrap:wrap}.header[data-astro-cid-fzpbxy5g]:not([data-navigation-ready]) .nav[data-astro-cid-fzpbxy5g]{flex-wrap:wrap;display:flex}.mobile-nav-link[data-astro-cid-fzpbxy5g]{padding:var(--space-3) 0;font-size:var(--text-base);color:var(--color-text-secondary);border-bottom:1px solid var(--color-border);transition:color var(--transition)}.mobile-nav-link[data-astro-cid-fzpbxy5g]:hover{color:var(--color-primary)}.mobile-nav-link[data-astro-cid-fzpbxy5g]:last-child{border-bottom:none}}.footer[data-astro-cid-nns7i3if]{margin-top:var(--space-16);padding:var(--space-6) var(--page-gutter);border-top:1px solid var(--color-border-light)}.footer-inner[data-astro-cid-nns7i3if]{justify-content:space-between;align-items:center;gap:var(--space-4) var(--space-8);max-width:var(--max-width-wide);flex-wrap:wrap;margin:0 auto;display:flex}.copyright[data-astro-cid-nns7i3if]{font-size:var(--text-sm);color:var(--color-text-muted)}.footer-nav[data-astro-cid-nns7i3if]{justify-content:flex-end;gap:var(--space-4);flex-wrap:wrap;display:flex}.footer-link[data-astro-cid-nns7i3if]{min-height:44px;font-size:var(--text-sm);color:var(--color-text-muted);transition:color var(--transition);align-items:center;display:inline-flex}.footer-link[data-astro-cid-nns7i3if]:hover{color:var(--color-primary)}@media (width<=640px){.footer-inner[data-astro-cid-nns7i3if]{gap:var(--space-3);flex-direction:column}.footer-nav[data-astro-cid-nns7i3if]{justify-content:center;gap:0 var(--space-4)}}.inline{display:inline}.block{display:block}.inline-block{display:inline-block}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.clearfix:before,.clearfix:after{content:" ";display:table}.clearfix:after{clear:both}.left{float:left}.right{float:right}.fit{max-width:100%}.max-width-1{max-width:24rem}.max-width-2{max-width:32rem}.max-width-3{max-width:48rem}.max-width-4{max-width:64rem}.border-box{box-sizing:border-box}.m0{margin:0}.mt0{margin-top:0}.mr0{margin-right:0}.mb0{margin-bottom:0}.ml0{margin-left:0}.mx0{margin-left:0;margin-right:0}.my0{margin-top:0;margin-bottom:0}.m1{margin:.5rem}.mt1{margin-top:.5rem}.mr1{margin-right:.5rem}.mb1{margin-bottom:.5rem}.ml1{margin-left:.5rem}.mx1{margin-left:.5rem;margin-right:.5rem}.my1{margin-top:.5rem;margin-bottom:.5rem}.m2{margin:1rem}.mt2{margin-top:1rem}.mr2{margin-right:1rem}.mb2{margin-bottom:1rem}.ml2{margin-left:1rem}.mx2{margin-left:1rem;margin-right:1rem}.my2{margin-top:1rem;margin-bottom:1rem}.m3{margin:2rem}.mt3{margin-top:2rem}.mr3{margin-right:2rem}.mb3{margin-bottom:2rem}.ml3{margin-left:2rem}.mx3{margin-left:2rem;margin-right:2rem}.my3{margin-top:2rem;margin-bottom:2rem}.m4{margin:4rem}.mt4{margin-top:4rem}.mr4{margin-right:4rem}.mb4{margin-bottom:4rem}.ml4{margin-left:4rem}.mx4{margin-left:4rem;margin-right:4rem}.my4{margin-top:4rem;margin-bottom:4rem}.ml-auto{margin-left:auto}.mr-auto{margin-right:auto}.mx-auto{margin-left:auto;margin-right:auto}.p0{padding:0}.pt0{padding-top:0}.pr0{padding-right:0}.pb0{padding-bottom:0}.pl0{padding-left:0}.px0{padding-left:0;padding-right:0}.py0{padding-top:0;padding-bottom:0}.p1{padding:.5rem}.pt1{padding-top:.5rem}.pr1{padding-right:.5rem}.pb1{padding-bottom:.5rem}.pl1{padding-left:.5rem}.py1{padding-top:.5rem;padding-bottom:.5rem}.px1{padding-left:.5rem;padding-right:.5rem}.p2{padding:1rem}.pt2{padding-top:1rem}.pr2{padding-right:1rem}.pb2{padding-bottom:1rem}.pl2{padding-left:1rem}.py2{padding-top:1rem;padding-bottom:1rem}.px2{padding-left:1rem;padding-right:1rem}.p3{padding:2rem}.pt3{padding-top:2rem}.pr3{padding-right:2rem}.pb3{padding-bottom:2rem}.pl3{padding-left:2rem}.py3{padding-top:2rem;padding-bottom:2rem}.px3{padding-left:2rem;padding-right:2rem}.p4{padding:4rem}@media (width<=480px){.px3{padding-left:1rem;padding-right:1rem}.my4{margin-top:2rem;margin-bottom:2rem}}.btn{min-height:var(--control-size);min-width:var(--control-size);justify-content:center;align-items:center;gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-4);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);line-height:var(--line-height-tight);border-radius:var(--radius-base);cursor:pointer;transition:all var(--transition-fast);border:1px solid #0000;text-decoration:none;display:inline-flex}.btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:4px;box-shadow:var(--shadow-focus)}.btn-primary{background:var(--color-primary);color:var(--color-text-inverse);border-color:var(--color-primary)}.btn-primary:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn-secondary{background:var(--color-background);color:var(--color-text);border-color:var(--color-border)}.btn-secondary:hover{background:var(--color-background-hover);border-color:var(--color-border-dark)}.btn-ghost{color:var(--color-text-secondary);background:0 0;border-color:#0000}.btn-ghost:hover{color:var(--color-primary)}.btn-icon{padding:var(--spacing-2);border-radius:var(--radius-md)}.btn-icon svg{width:1.25rem;height:1.25rem}.card{background:var(--color-background);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);transition:all var(--transition-base);overflow:hidden}.card:hover{border-color:var(--color-border);box-shadow:var(--shadow-base)}.card-header{padding:var(--spacing-4) var(--spacing-5);border-bottom:1px solid var(--color-border-light)}.card-body{padding:var(--spacing-5)}.card-footer{padding:var(--spacing-4) var(--spacing-5);border-top:1px solid var(--color-border-light);background:var(--color-background-secondary)}.card-interactive{cursor:pointer}.card-interactive:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.link{color:var(--color-link);transition:color var(--transition-fast);text-decoration:none}.link:hover{color:var(--color-link-hover)}.link-underline{color:var(--color-text);background-image:linear-gradient(transparent, transparent 5px, var(--color-link-underline) 5px, var(--color-link-underline));transition:background-image var(--transition-fast);background-position:bottom;background-repeat:repeat-x;background-size:100% 6px;text-decoration:none}.link-underline:hover{background-image:linear-gradient(transparent, transparent 4px, var(--color-link-underline-hover) 4px, var(--color-link-underline-hover))}.link-nav{color:var(--color-primary);font-weight:var(--font-weight-medium);text-decoration:none}.link-nav:hover{text-decoration:underline}.tag{padding:var(--spacing-1) var(--spacing-3);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);line-height:var(--line-height-tight);border-radius:var(--radius-base);transition:all var(--transition-fast);align-items:center;text-decoration:none;display:inline-flex}.tag-default{background:var(--color-background-tertiary);color:var(--color-text-secondary)}.tag-default:hover,.tag-primary{background:var(--color-primary-soft);color:var(--color-primary)}.tag-primary:hover{background:var(--color-primary);color:var(--color-text-inverse)}.tag-count{margin-left:var(--spacing-2);padding:.125rem var(--spacing-2);border-radius:var(--radius-full);font-size:var(--font-size-xs);background:#0000001a}.dark .tag-count{background:#ffffff26}.input{width:100%;padding:var(--spacing-2) var(--spacing-3);font-size:var(--font-size-base);line-height:var(--line-height-base);color:var(--color-text);background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-base);transition:all var(--transition-fast);display:block}.input::placeholder{color:var(--color-text-light)}.input:focus{outline:2px solid var(--color-primary);outline-offset:4px;border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.badge{padding:.125rem var(--spacing-2);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);border-radius:var(--radius-full);align-items:center;display:inline-flex}.badge-success{background:var(--color-success-soft);color:var(--color-success)}.badge-error{background:var(--color-error-soft);color:var(--color-error)}.badge-warning{background:var(--color-warning-soft);color:var(--color-warning)}.badge-info{background:var(--color-info-soft);color:var(--color-info)}.text-primary{color:var(--color-primary)}.text-secondary{color:var(--color-text-secondary)}.text-muted{color:var(--color-text-muted)}.bg-primary{background-color:var(--color-primary)}.bg-secondary{background-color:var(--color-background-secondary)}.border-primary{border-color:var(--color-primary)}.focus-ring:focus-visible{outline:2px solid var(--color-primary);outline-offset:4px;box-shadow:var(--shadow-focus)}.transition-fast{transition:all var(--transition-fast)}.transition-base{transition:all var(--transition-base)}.transition-slow{transition:all var(--transition-slow)}.article-page .content{width:100%;min-width:0}.content h1,.content .h1{margin-top:0;margin-bottom:var(--space-4);color:var(--color-text);letter-spacing:-.02em;font-family:var(--font-display);font-weight:var(--font-bold);font-size:var(--text-page-title);line-height:1.13;display:block}.content h2,.content .h2{margin-top:var(--space-8);margin-bottom:var(--space-3);color:var(--color-text);letter-spacing:-.01em;font-weight:var(--font-semibold);font-size:1.5rem;line-height:1.3;display:block;position:relative}.content h3{margin-top:var(--space-6);margin-bottom:var(--space-3);color:var(--color-text);font-weight:var(--font-semibold);font-size:1.25rem;line-height:1.4}.content h4{margin-top:var(--space-5);margin-bottom:var(--space-2);color:var(--color-text);font-weight:var(--font-semibold);font-size:1.125rem;line-height:1.4}.content h5,.content h6{margin-top:var(--space-4);margin-bottom:var(--space-2);color:var(--color-text-secondary);font-weight:var(--font-semibold);font-size:var(--text-base);line-height:var(--leading-normal)}.content p{margin-top:0;margin-bottom:var(--space-4);line-height:var(--leading-relaxed)}.content a{color:var(--color-text);background-image:linear-gradient(transparent, transparent 5px, var(--color-link-underline) 5px, var(--color-link-underline));transition:background-image var(--transition);background-position:bottom;background-repeat:repeat-x;background-size:100% 6px;text-decoration:none}.content a:hover{background-image:linear-gradient(transparent, transparent 4px, var(--color-link-underline-hover) 4px, var(--color-link-underline-hover))}.content .article-list a,.content .article-link,.content .tag-card,.content .tag-list a,.content .breadcrumb a,.content .view-all-link,.content .post-title-link,.content .article-nav__card,.content .article-navigation a,.content .article-nav a,.content .share-btn,.content .author-link,.content .related-link,.content .related-link:hover,.content .related-card,.content .related-compact-link,.content a.icon{background-image:none}.content a.icon:hover{color:var(--color-primary);background-image:none}.content h1 a,.content h2 a,.content h3 a,.content h4 a,.content h5 a,.content h6 a{color:inherit;background:0 0}.content ul,.content ol,.content dl{margin-top:0;margin-bottom:var(--space-4);padding-left:var(--space-6);line-height:var(--leading-relaxed)}.content ul ul,.content ol ul,.content ul ol,.content ol ol{margin-top:var(--space-2);margin-bottom:var(--space-2)}.content li{margin-bottom:var(--space-2)}.content ol{list-style:decimal}.content dt{font-weight:var(--font-semibold)}.content dd{margin-left:var(--space-4);margin-bottom:var(--space-2)}.content blockquote{margin:var(--space-6) 0;padding:var(--space-4) var(--space-5);border-left:3px solid var(--color-primary);background:var(--color-background-secondary);border-radius:0 var(--radius-md) var(--radius-md) 0}.content blockquote p{color:var(--color-text-secondary);margin:0;font-style:italic}.content blockquote cite{margin-top:var(--space-2);font-size:var(--text-sm);color:var(--color-text-muted);font-style:normal;display:block}.content code{font-family:var(--font-mono);background:var(--color-background-tertiary);border-radius:var(--radius-sm);padding:.2em .4em;font-size:.875em}.content pre{margin:var(--space-6) 0;padding:var(--space-4);background:var(--color-background-tertiary);border-radius:var(--radius-md);overflow-x:auto}.content pre code{font-size:var(--text-sm);line-height:var(--leading-relaxed);background:0 0;padding:0}.content table{width:100%;margin:var(--space-6) 0;border-collapse:collapse;font-size:var(--text-sm)}.post-content table{overflow-wrap:normal;max-width:100%;display:block;overflow-x:auto}.post-content th,.post-content td{min-width:9rem}.content th{padding:var(--space-3);border-bottom:2px solid var(--color-border);color:var(--color-text);font-weight:var(--font-semibold);text-align:left}.content td{padding:var(--space-3);border-bottom:1px solid var(--color-border-light)}.content tr:last-child td{border-bottom:none}.content hr{margin:var(--space-8) 0;border:none;border-top:1px solid var(--color-border-light)}.content img{border-radius:var(--radius-md);max-width:100%;height:auto}.content figure{margin:var(--space-6) 0}.content figcaption{margin-top:var(--space-2);font-size:var(--text-sm);color:var(--color-text-muted);text-align:center}.content strong{font-weight:var(--font-semibold)}.content em,.content cite{font-style:italic}.content small{font-size:.875em}.content sup,.content sub{vertical-align:baseline;font-size:.75em;line-height:0;position:relative}.content sup{top:-.5em}.content sub{bottom:-.2em}.content abbr,.content acronym{border-bottom:1px dotted var(--color-text-muted);cursor:help}.content mark{background:var(--color-warning-soft);border-radius:var(--radius-sm);padding:.1em .2em}.post-content{margin-top:var(--space-6);overflow-wrap:anywhere;font-size:1.125rem}.post-content h2{margin-top:2.5rem}.post-content :is(th,td){vertical-align:top;line-height:1.6}.post-content th{background:var(--color-background-secondary)}@media (width<=640px){.post-content{font-size:1.0625rem}}.post-content>:first-child{margin-top:0}.post-content>:last-child{margin-bottom:0}.reading-progress{background:var(--color-primary);width:0%;height:3px;z-index:var(--z-toast);transition:width .1s linear;position:fixed;top:0;left:0}.reading-time{align-items:center;gap:var(--spacing-xs);color:var(--color-text-muted);font-size:var(--font-size-sm);display:inline-flex}.reading-time svg{opacity:.7;width:14px;height:14px}.toc-container{top:var(--spacing-xl);max-height:calc(100vh - 4rem);padding:var(--spacing-lg);background:var(--color-background-secondary);border-radius:var(--border-radius-lg);border:1px solid var(--color-border-light);position:sticky;overflow-y:auto}.toc-container h4{margin:0 0 var(--spacing-md) 0;padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--color-border);color:var(--color-text);font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.toc-list{margin:0;padding:0;list-style:none}.toc-list li{margin-bottom:var(--spacing-xs)}.toc-list a{padding:var(--spacing-xs) 0;color:var(--color-text-secondary);font-size:var(--font-size-sm);transition:color var(--transition-fast);line-height:var(--line-height-tight);text-decoration:none;display:block;background:0 0!important}.toc-list a:hover{color:var(--color-primary);background:0 0!important}.toc-list a.active{color:var(--color-primary);font-weight:500}.toc-list .toc-h3{padding-left:var(--spacing-md);font-size:var(--font-size-xs)}.toc-list .toc-h4{padding-left:var(--spacing-xl);font-size:var(--font-size-xs);color:var(--color-text-muted)}.toc-toggle{width:100%;padding:var(--spacing-sm) var(--spacing-md);background:var(--color-background-secondary);border:1px solid var(--color-border);border-radius:var(--border-radius-md);color:var(--color-text);font-size:var(--font-size-sm);cursor:pointer;text-align:left;display:none}.toc-toggle:hover{background:var(--color-background-tertiary)}@media (width<=1024px){.toc-container{max-height:none;margin-bottom:var(--spacing-lg);position:relative;top:0}.toc-toggle{justify-content:space-between;align-items:center;display:flex}.toc-list{margin-top:var(--spacing-md);display:none}.toc-list.expanded{display:block}}.dark{background-color:var(--color-background);color:var(--color-text)}.dark html{border-top-color:var(--color-primary)}.dark .highlight,.dark pre{background:var(--color-code-bg);border-color:var(--color-code-border)}.dark code{background:var(--color-background-tertiary);color:var(--color-code-text)}.dark .topic-card{background:var(--color-background-secondary);border-color:var(--color-border)}.dark .topic-card:hover{background:var(--color-background-tertiary);border-color:var(--color-primary)}.dark .related-articles{background:var(--color-background-secondary)}.dark .article-navigation{border-top-color:var(--color-border)}.dark .article-navigation .nav-title{color:var(--color-text)}.dark .toc-container{background:var(--color-background-secondary);border-color:var(--color-border)}.dark .search-input{background-color:var(--color-background-secondary);border-color:var(--color-border);color:var(--color-text)}.dark .search-input:focus{border-color:var(--color-primary)}.back-to-top{bottom:max(var(--space-6), env(safe-area-inset-bottom));right:max(var(--space-6), env(safe-area-inset-right));width:var(--control-size);height:var(--control-size);background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-full);color:var(--color-text-secondary);cursor:pointer;opacity:0;visibility:hidden;transition:opacity var(--transition-base), visibility var(--transition-base), transform var(--transition-base), background-color var(--transition-base), color var(--transition-base);z-index:var(--z-fixed);box-shadow:var(--shadow-sm);justify-content:center;align-items:center;display:flex;position:fixed;transform:translateY(10px)}.back-to-top:hover{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-text-inverse);box-shadow:var(--shadow-md);transform:translateY(-2px)}.back-to-top.visible{opacity:1;visibility:visible;transform:translateY(0)}.back-to-top svg{width:20px;height:20px}.post-item{border-bottom:1px solid var(--color-border-light);transition:background-color var(--transition-fast);align-items:baseline;gap:1.5rem;padding:.75rem 0;display:flex}.post-item:hover{background-color:var(--color-background-hover);border-radius:var(--border-radius-base);margin-left:-.5rem;margin-right:-.5rem;padding-left:.5rem;padding-right:.5rem}.post-meta-date{width:7rem;min-width:7rem;font-family:var(--font-family-mono);font-size:var(--font-size-sm);color:var(--color-text-meta);white-space:nowrap;flex-shrink:0}.post-item>.post-title-link{flex:1;min-width:0}.post-meta-content{flex-direction:column;flex:1;gap:.25rem;min-width:0;display:flex}.post-title-link{color:var(--color-text);font-weight:var(--font-weight-medium);transition:color var(--transition-fast);word-break:break-word;background-image:none;line-height:1.5;text-decoration:none}.post-title-link:hover,.post-item:hover .post-title-link{color:var(--color-primary)}.post-meta-detail{font-size:var(--font-size-sm);color:var(--color-text-meta)}.view-all-link{color:var(--color-primary);font-weight:var(--font-weight-medium);transition:color var(--transition-fast);text-decoration:none;display:inline-block}.view-all-link:hover{color:var(--color-primary-hover);text-decoration:underline}@media (width<=640px){.post-item{flex-direction:column;align-items:flex-start;gap:.25rem}.post-meta-date{width:auto;min-width:0}.post-item:hover{margin-left:-.35rem;margin-right:-.35rem;padding-left:.35rem;padding-right:.35rem}}html{border-top:2px solid var(--color-text)}body{flex-direction:column;display:flex}.content{flex:1}.max-width{max-width:var(--max-width)}.truncate{text-overflow:ellipsis;white-space:nowrap;display:inline-block;overflow:hidden}.icon,svg.icon{vertical-align:middle;color:inherit;fill:currentColor;display:inline-block}a.icon{color:var(--color-text);text-decoration:none}a.icon:hover{color:var(--color-primary)}.content a.icon{color:var(--color-text);background:0 0!important}.content a.icon:hover{color:var(--color-primary);background:0 0!important}.content .post-title-link,.content .post-title-link:hover,.content .post-item:hover .post-title-link,.content .view-all-link,.content .view-all-link:hover,.content .tag-card,.content .tag-card:hover,.content .tag-list a,.content .tag-list a:hover,.content .breadcrumb a,.content .breadcrumb a:hover,.content .back-link a,.content .back-link a:hover,.content .article-list a,.content .article-list a:hover,.content .article-link,.content .article-link:hover,.content .post-list a,.content .post-list a:hover{background-image:none}.content h1 a,.content .h1 a,.content h2 a,.content h3 a,.content h4 a,.content h5 a,.content h6 a{color:inherit;text-decoration:none;background:0 0!important}.post-item{margin-bottom:var(--space-4)}.post-list{margin:0;padding:0;list-style:none}@media (width>=540px){.image-wrap{flex-direction:row;margin-bottom:2rem;display:flex}.image-wrap .image-block{flex:1 0 35%;margin-right:2rem}.image-wrap .image-block img{max-width:100%}}#header{justify-content:space-between;align-items:center;display:flex}#header h1,#header .h1{font-size:var(--text-base);font-weight:var(--font-semibold);margin:0}#header a{color:inherit;text-decoration:none}#footer{padding:var(--space-4) 0;margin-top:auto}@media print{body{color:#000;background:#fff}.header,.footer,.back-to-top,.reading-progress,.share-section,.related{display:none!important}.content{max-width:100%;padding:0}a{color:#000;text-decoration:underline}a[href]:after{content:" (" attr(href) ")";font-size:.8em}}.site-content{width:100%;min-width:0;max-width:calc(var(--max-width) + var(--page-gutter) * 2);margin:clamp(2rem, 5vw, 3.5rem) auto var(--space-8);padding-inline:var(--page-gutter)}.site-content--wide{max-width:calc(var(--max-width-wide) + var(--page-gutter) * 2)}.site-content main{min-width:0}:is(a,button,input,select,textarea,summary,[tabindex="0"]):focus-visible{outline:2px solid var(--color-primary);outline-offset:4px}.content :is(h2,h3,h4,section[id]),#search-input{scroll-margin-top:6rem}.content .page-subtitle{color:var(--color-text-secondary);max-width:60ch}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media print{.site-content{max-width:none;margin:0;padding:0}}.skip-link{padding:var(--space-2) var(--space-4);background:var(--color-primary);color:var(--color-text-inverse);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--font-medium);z-index:9999;transition:top var(--transition);text-decoration:none;position:absolute;top:-100%;left:50%;transform:translate(-50%)}.skip-link:focus{top:var(--space-2);outline:2px solid var(--color-primary);outline-offset:2px}
