.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}:root{--color-primary: #047857;--color-primary-hover: #065f46;--color-primary-soft: rgba(16, 185, 129, .1);--color-text: #1a1a1a;--color-text-secondary: #525252;--color-text-muted: #737373;--color-text-light: #6b6b6b;--color-text-inverse: #ffffff;--color-background: #ffffff;--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 rgba(0, 0, 0, .05);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .1);--shadow-md: 0 4px 6px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .1);--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: rgba(52, 211, 153, .15);--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: #333333;--color-border: #262626;--color-border-light: #1f1f1f;--color-border-dark: #404040;--color-success-soft: rgba(16, 185, 129, .2);--color-error-soft: rgba(239, 68, 68, .2);--color-warning-soft: rgba(245, 158, 11, .2);--color-info-soft: rgba(59, 130, 246, .2)}*{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{margin:0;min-height:100vh}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:transparent}::-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-x3pjskd3]{width:44px;height:44px;flex-shrink:0;display:flex;align-items:center;justify-content:center;padding:0;background:transparent;border:none;color:var(--color-primary);cursor:pointer;transition:color var(--transition-fast)}.theme-toggle[data-astro-cid-x3pjskd3]:hover{color:var(--color-primary-hover)}.theme-toggle[data-astro-cid-x3pjskd3]: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-x3pjskd3] svg[data-astro-cid-x3pjskd3]{width:18px;height:18px}.theme-toggle[data-astro-cid-x3pjskd3] .sun-icon[data-astro-cid-x3pjskd3]{display:none}.theme-toggle[data-astro-cid-x3pjskd3] .moon-icon[data-astro-cid-x3pjskd3],.dark .theme-toggle[data-astro-cid-x3pjskd3] .sun-icon[data-astro-cid-x3pjskd3]{display:block}.dark .theme-toggle[data-astro-cid-x3pjskd3] .moon-icon[data-astro-cid-x3pjskd3]{display:none}.icon[data-astro-cid-patnjmll]{display:inline-block;vertical-align:middle;flex-shrink:0}.header[data-astro-cid-ctg3m53h]{position:sticky;top:0;z-index:var(--z-sticky);background:color-mix(in srgb,var(--color-background) 95%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--color-border-light)}.header-inner[data-astro-cid-ctg3m53h]{display:flex;justify-content:space-between;align-items:center;max-width:calc(var(--max-width-wide) + var(--page-gutter) * 2);margin:0 auto;padding:var(--space-3) var(--page-gutter)}.brand[data-astro-cid-ctg3m53h]{display:flex;align-items:center;gap:var(--space-2)}.logo[data-astro-cid-ctg3m53h]{width:32px;height:32px;border-radius:var(--radius-md)}.name[data-astro-cid-ctg3m53h]{font-size:var(--text-base);font-weight:var(--font-semibold);margin:0;letter-spacing:-.01em}.header-right[data-astro-cid-ctg3m53h]{display:flex;align-items:center;gap:var(--space-2)}.nav[data-astro-cid-ctg3m53h]{display:flex;gap:var(--space-1)}.nav-link[data-astro-cid-ctg3m53h]{display:inline-flex;align-items:center;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)}.nav-link[data-astro-cid-ctg3m53h][aria-current],.mobile-nav-link[data-astro-cid-ctg3m53h][aria-current]{color:var(--color-primary);text-decoration:underline;text-underline-offset:.45em;text-decoration-thickness:2px}.header-search[data-astro-cid-ctg3m53h]{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;color:var(--color-text-secondary);border-radius:var(--radius-md)}.header-search[data-astro-cid-ctg3m53h]:hover,.nav-link[data-astro-cid-ctg3m53h]:hover{color:var(--color-primary)}.mobile-menu-btn[data-astro-cid-ctg3m53h]{width:44px;height:44px;display:none;align-items:center;justify-content:center;padding:var(--space-2);background:transparent;border:none;color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-md);transition:color var(--transition)}.mobile-menu-btn[data-astro-cid-ctg3m53h]:hover{color:var(--color-primary)}.mobile-menu-btn[data-astro-cid-ctg3m53h] .icon-close[data-astro-cid-ctg3m53h],.mobile-menu-btn[data-astro-cid-ctg3m53h].is-open .icon-menu[data-astro-cid-ctg3m53h]{display:none}.mobile-menu-btn[data-astro-cid-ctg3m53h].is-open .icon-close[data-astro-cid-ctg3m53h]{display:block}.mobile-nav[data-astro-cid-ctg3m53h]{display:none}@media(max-width:760px){.nav[data-astro-cid-ctg3m53h]{display:none}.mobile-menu-btn[data-astro-cid-ctg3m53h]:not([hidden]){display:flex}.mobile-nav[data-astro-cid-ctg3m53h]{display:none;flex-direction:column;padding:0 var(--page-gutter) var(--space-4);border-top:1px solid var(--color-border)}.mobile-nav[data-astro-cid-ctg3m53h].is-open{display:flex}.mobile-nav[data-astro-cid-ctg3m53h][hidden]{display:none}.header-right[data-astro-cid-ctg3m53h]{gap:0}.header[data-astro-cid-ctg3m53h]:not([data-navigation-ready]) .header-inner[data-astro-cid-ctg3m53h]{flex-wrap:wrap}.header[data-astro-cid-ctg3m53h]:not([data-navigation-ready]) .nav[data-astro-cid-ctg3m53h]{display:flex;flex-wrap:wrap}.mobile-nav-link[data-astro-cid-ctg3m53h]{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-ctg3m53h]:hover{color:var(--color-primary)}.mobile-nav-link[data-astro-cid-ctg3m53h]:last-child{border-bottom:none}}.footer[data-astro-cid-gcn2mc3v]{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-gcn2mc3v]{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--space-4) var(--space-8);max-width:var(--max-width-wide);margin:0 auto}.copyright[data-astro-cid-gcn2mc3v]{font-size:var(--text-sm);color:var(--color-text-muted)}.footer-nav[data-astro-cid-gcn2mc3v]{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-4)}.footer-link[data-astro-cid-gcn2mc3v]{display:inline-flex;align-items:center;min-height:44px;font-size:var(--text-sm);color:var(--color-text-muted);transition:color var(--transition)}.footer-link[data-astro-cid-gcn2mc3v]:hover{color:var(--color-primary)}@media(max-width:640px){.footer-inner[data-astro-cid-gcn2mc3v]{flex-direction:column;gap:var(--space-3)}.footer-nav[data-astro-cid-gcn2mc3v]{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{display:table;content:" "}.clearfix:after{clear:both}.left{float:left}.right{float:right}.fit{max-width:100%}.max-width{max-width:48rem}.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-right:0;margin-left: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-right:.5rem;margin-left:.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-right:1rem;margin-left: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-right:2rem;margin-left: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-right:4rem;margin-left:4rem}.my4{margin-top:4rem;margin-bottom:4rem}.ml-auto{margin-left:auto}.mr-auto{margin-right:auto}.mx-auto{margin-right:auto;margin-left:auto}.p0{padding:0}.pt0{padding-top:0}.pr0{padding-right:0}.pb0{padding-bottom:0}.pl0{padding-left:0}.px0{padding-right:0;padding-left: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-right:.5rem;padding-left:.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-right:1rem;padding-left: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-right:2rem;padding-left:2rem}.p4{padding:4rem}@media(max-width:480px){.px3{padding-right:1rem;padding-left:1rem}.my4{margin-top:2rem;margin-bottom:2rem}}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:var(--control-size);min-width:var(--control-size);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);border:1px solid transparent;cursor:pointer;text-decoration:none;transition:all var(--transition-fast)}.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{background:transparent;color:var(--color-text-secondary);border-color:transparent}.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);overflow:hidden;transition:all var(--transition-base)}.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{transform:translateY(-2px);box-shadow:var(--shadow-md)}.link{color:var(--color-link);text-decoration:none;transition:color var(--transition-fast)}.link:hover{color:var(--color-link-hover)}.link-underline{color:var(--color-text);text-decoration:none;background-image:linear-gradient(transparent,transparent 5px,var(--color-link-underline) 5px,var(--color-link-underline));background-position:bottom;background-size:100% 6px;background-repeat:repeat-x;transition:background-image var(--transition-fast)}.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);text-decoration:none;font-weight:var(--font-weight-medium)}.link-nav:hover{text-decoration:underline}.tag{display:inline-flex;align-items:center;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);text-decoration:none;transition:all var(--transition-fast)}.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);background:#0000001a;border-radius:var(--radius-full);font-size:var(--font-size-xs)}.dark .tag-count{background:#ffffff26}.input{display:block;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)}.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{display:inline-flex;align-items:center;padding:.125rem var(--spacing-2);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);border-radius:var(--radius-full)}.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{display:block;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}.content h2,.content .h2{position:relative;display:block;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}.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);text-decoration:none;background-image:linear-gradient(transparent,transparent 5px,var(--color-link-underline) 5px,var(--color-link-underline));background-position:bottom;background-size:100% 6px;background-repeat:repeat-x;transition:background-image var(--transition)}.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{background:none;color:inherit}.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{margin:0;color:var(--color-text-secondary);font-style:italic}.content blockquote cite{display:block;margin-top:var(--space-2);font-size:var(--text-sm);color:var(--color-text-muted);font-style:normal}.content code{padding:.2em .4em;font-family:var(--font-mono);font-size:.875em;background:var(--color-background-tertiary);border-radius:var(--radius-sm)}.content pre{margin:var(--space-6) 0;padding:var(--space-4);overflow-x:auto;background:var(--color-background-tertiary);border-radius:var(--radius-md)}.content pre code{padding:0;background:none;font-size:var(--text-sm);line-height:var(--leading-relaxed)}.content table{width:100%;margin:var(--space-6) 0;border-collapse:collapse;font-size:var(--text-sm)}.post-content table{display:block;max-width:100%;overflow-x:auto;overflow-wrap:normal}.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{max-width:100%;height:auto;border-radius:var(--radius-md)}.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{position:relative;vertical-align:baseline;font-size:.75em;line-height:0}.content sup{top:-.5em}.content sub{bottom:-.2em}.content abbr,.content acronym{border-bottom:1px dotted var(--color-text-muted);cursor:help}.content mark{padding:.1em .2em;background:var(--color-warning-soft);border-radius:var(--radius-sm)}.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(max-width:640px){.post-content{font-size:1.0625rem}}.post-content>*:first-child{margin-top:0}.post-content>*:last-child{margin-bottom:0}.reading-progress{position:fixed;top:0;left:0;width:0%;height:3px;background:var(--color-primary);z-index:var(--z-toast);transition:width .1s linear}.reading-time{display:inline-flex;align-items:center;gap:var(--spacing-xs);color:var(--color-text-muted);font-size:var(--font-size-sm)}.reading-time svg{width:14px;height:14px;opacity:.7}.toc-container{position:sticky;top:var(--spacing-xl);max-height:calc(100vh - 4rem);overflow-y:auto;padding:var(--spacing-lg);background:var(--color-background-secondary);border-radius:var(--border-radius-lg);border:1px solid var(--color-border-light)}.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);font-weight:600;text-transform:uppercase;letter-spacing:.05em}.toc-list{margin:0;padding:0;list-style:none}.toc-list li{margin-bottom:var(--spacing-xs)}.toc-list a{display:block;padding:var(--spacing-xs) 0;color:var(--color-text-secondary);font-size:var(--font-size-sm);text-decoration:none;background:none!important;background-image:none!important;transition:color var(--transition-fast);line-height:var(--line-height-tight)}.toc-list a:hover{color:var(--color-primary);background:none!important;background-image:none!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{display:none;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}.toc-toggle:hover{background:var(--color-background-tertiary)}@media(max-width:1024px){.toc-container{position:relative;top:0;max-height:none;margin-bottom:var(--spacing-lg)}.toc-toggle{display:flex;align-items:center;justify-content:space-between}.toc-list{display:none;margin-top:var(--spacing-md)}.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{position:fixed;bottom:max(var(--space-6),env(safe-area-inset-bottom));right:max(var(--space-6),env(safe-area-inset-right));display:flex;align-items:center;justify-content:center;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;transform:translateY(10px);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)}.back-to-top:hover{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-text-inverse);transform:translateY(-2px);box-shadow:var(--shadow-md)}.back-to-top.visible{opacity:1;visibility:visible;transform:translateY(0)}.back-to-top svg{width:20px;height:20px}.post-item{display:flex;align-items:baseline;gap:1.5rem;padding:.75rem 0;border-bottom:1px solid var(--color-border-light);transition:background-color var(--transition-fast)}.post-item:hover{background-color:var(--color-background-hover);border-radius:var(--border-radius-base);padding-left:.5rem;padding-right:.5rem;margin-left:-.5rem;margin-right:-.5rem}.post-meta-date{flex-shrink:0;min-width:7rem;width:7rem;font-family:var(--font-family-mono);font-size:var(--font-size-sm);color:var(--color-text-meta);white-space:nowrap}.post-item>.post-title-link{flex:1;min-width:0}.post-meta-content{display:flex;flex-direction:column;gap:.25rem;flex:1;min-width:0}.post-title-link{color:var(--color-text);text-decoration:none;background-image:none;font-weight:var(--font-weight-medium);line-height:1.5;transition:color var(--transition-fast);word-break:break-word}.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{display:inline-block;color:var(--color-primary);font-weight:var(--font-weight-medium);text-decoration:none;transition:color var(--transition-fast)}.view-all-link:hover{color:var(--color-primary-hover);text-decoration:underline}@media(max-width:640px){.post-item{flex-direction:column;align-items:flex-start;gap:.25rem}.post-meta-date{min-width:0;width:auto}.post-item:hover{padding-left:.35rem;padding-right:.35rem;margin-left:-.35rem;margin-right:-.35rem}}html{border-top:2px solid var(--color-text)}body{display:flex;flex-direction:column}.content{flex:1}.max-width{max-width:var(--max-width)}.truncate{display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.icon,svg.icon{display:inline-block;vertical-align:middle;color:inherit;fill:currentColor}a.icon{color:var(--color-text);text-decoration:none}a.icon:hover{color:var(--color-primary)}.content a.icon{background:none!important;background-image:none!important;color:var(--color-text)}.content a.icon:hover{color:var(--color-primary);background:none!important;background-image:none!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{background:none!important;background-image:none!important;color:inherit;text-decoration:none}.post-item{margin-bottom:var(--space-4)}.post-list{list-style:none;padding:0;margin:0}@media(min-width:540px){.image-wrap{display:flex;flex-direction:row;margin-bottom:2rem}.image-wrap .image-block{flex:1 0 35%;margin-right:2rem}.image-wrap .image-block img{max-width:100%}}#header{display:flex;justify-content:space-between;align-items:center}#header h1,#header .h1{margin:0;font-size:var(--text-base);font-weight:var(--font-semibold)}#header a{text-decoration:none;color:inherit}#footer{margin-top:auto;padding:var(--space-4) 0}@media print{body{background:#fff;color:#000}.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{position:absolute;top:-100%;left:50%;transform:translate(-50%);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);text-decoration:none;z-index:9999;transition:top var(--transition)}.skip-link:focus{top:var(--space-2);outline:2px solid var(--color-primary);outline-offset:2px}
