.giscus-wrapper[data-astro-cid-qdzwzgpn]{margin-top:var(--spacing-12);padding-top:var(--spacing-8);border-top:1px solid var(--color-border-primary)}.code-block-wrapper{position:relative;margin:var(--spacing-4) 0}.copy-button{position:absolute;top:var(--spacing-2);right:var(--spacing-2);padding:var(--spacing-2);background-color:var(--color-bg-elevated);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);z-index:10;display:flex;align-items:center;justify-content:center;width:32px;height:32px}.copy-button:hover{background-color:var(--color-bg-hover);border-color:var(--color-border-hover)}.copy-button:active{transform:scale(.95)}.copy-button .copy-icon{display:block;color:var(--color-text-secondary)}.copy-button .check-icon{display:none;color:var(--color-accent-primary)}.copy-button.copied .copy-icon{display:none}.copy-button.copied .check-icon{display:block}.copy-button.copied{background-color:var(--color-accent-bg);border-color:var(--color-accent-primary)}.scroll-to-top[data-astro-cid-73562bqz]{position:fixed;bottom:var(--spacing-6);right:var(--spacing-6);width:48px;height:48px;border-radius:var(--radius-full);background-color:var(--color-accent-primary);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-lg);transition:all var(--transition-base);z-index:var(--z-modal);opacity:0;visibility:hidden;transform:translateY(20px)}.scroll-to-top[data-astro-cid-73562bqz].visible{opacity:1;visibility:visible;transform:translateY(0)}.scroll-to-top[data-astro-cid-73562bqz]:hover{background-color:var(--color-accent-hover);box-shadow:var(--shadow-xl);transform:translateY(-2px)}.scroll-to-top[data-astro-cid-73562bqz]:active{transform:translateY(0)}@media(max-width:768px){.scroll-to-top[data-astro-cid-73562bqz]{bottom:var(--spacing-4);right:var(--spacing-4);width:44px;height:44px}}.reading-progress[data-astro-cid-mu6cnre2]{position:fixed;top:64px;left:0;right:0;height:4px;background-color:#0000001a;z-index:9999;overflow:hidden;transition:left .3s ease;pointer-events:none}.reading-progress-bar[data-astro-cid-mu6cnre2]{height:100%;width:0%;background:linear-gradient(90deg,#3b82f6,#2563eb);box-shadow:0 0 10px #3b82f680;transition:width .15s ease-out;transform-origin:left}.dark .reading-progress[data-astro-cid-mu6cnre2]{background-color:#ffffff0d}@media(max-height:600px){.reading-progress[data-astro-cid-mu6cnre2]{display:none}}@media(max-width:768px){.reading-progress[data-astro-cid-mu6cnre2]{left:0!important;top:56px}}.toc[data-astro-cid-xvrfupwn]{position:sticky;top:calc(var(--layout-header-height) + var(--spacing-2));max-height:calc(100vh - var(--layout-header-height) - var(--spacing-6));overflow-y:auto;padding:var(--spacing-4);background-color:var(--color-bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--color-border-primary);box-shadow:var(--shadow-card)}.toc-header[data-astro-cid-xvrfupwn]{padding-bottom:var(--spacing-3);margin-bottom:var(--spacing-3);border-bottom:1px solid var(--color-border-secondary)}.toc-title[data-astro-cid-xvrfupwn]{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);margin:0;text-transform:uppercase;letter-spacing:.05em}.toc-list[data-astro-cid-xvrfupwn]{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--spacing-1)}.toc-item[data-astro-cid-xvrfupwn]{position:relative}.toc-depth-2[data-astro-cid-xvrfupwn]{padding-left:0}.toc-depth-3[data-astro-cid-xvrfupwn]{padding-left:var(--spacing-4)}.toc-link[data-astro-cid-xvrfupwn]{display:block;padding:var(--spacing-2) var(--spacing-3);font-size:var(--font-size-sm);color:var(--color-text-secondary);text-decoration:none;border-radius:var(--radius-sm);transition:all var(--transition-fast);line-height:var(--line-height-tight);position:relative}.toc-link[data-astro-cid-xvrfupwn]:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:2px;height:0;background-color:var(--color-accent-primary);transition:height var(--transition-fast)}.toc-link[data-astro-cid-xvrfupwn]:hover{background-color:var(--color-bg-tertiary);color:var(--color-text-primary)}.toc-link[data-astro-cid-xvrfupwn].active{color:var(--color-accent-primary);background-color:var(--color-accent-tertiary);font-weight:var(--font-weight-medium)}.toc-link[data-astro-cid-xvrfupwn].active:before{height:100%}.toc[data-astro-cid-xvrfupwn]::-webkit-scrollbar{width:4px}.toc[data-astro-cid-xvrfupwn]::-webkit-scrollbar-track{background-color:transparent}.toc[data-astro-cid-xvrfupwn]::-webkit-scrollbar-thumb{background-color:var(--color-border-primary);border-radius:var(--radius-sm)}.toc[data-astro-cid-xvrfupwn]::-webkit-scrollbar-thumb:hover{background-color:var(--color-text-tertiary)}@media(max-width:1280px){.toc[data-astro-cid-xvrfupwn]{display:none}}.post-recommendations[data-astro-cid-bcf7t3qw]{margin-top:var(--spacing-16);margin-bottom:var(--spacing-12);padding-top:var(--spacing-12);border-top:1px solid var(--color-border-primary)}.recommendations-title[data-astro-cid-bcf7t3qw]{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin-bottom:var(--spacing-2);letter-spacing:-.02em}.recommendations-subtitle[data-astro-cid-bcf7t3qw]{font-size:var(--font-size-sm);color:var(--color-text-tertiary);margin-bottom:var(--spacing-8)}.recommendations-grid[data-astro-cid-bcf7t3qw]{display:grid;gap:var(--spacing-6);grid-template-columns:1fr}@media(min-width:768px){.recommendations-grid[data-astro-cid-bcf7t3qw]{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.recommendations-grid[data-astro-cid-bcf7t3qw]{grid-template-columns:repeat(3,1fr)}}.recommendation-card[data-astro-cid-bcf7t3qw]{display:block;background-color:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);padding:var(--spacing-6);text-decoration:none;transition:all var(--transition-normal);height:100%}.recommendation-card[data-astro-cid-bcf7t3qw]:hover{transform:translateY(-2px);box-shadow:var(--shadow-card);border-color:var(--color-accent-primary)}.card-content[data-astro-cid-bcf7t3qw]{display:flex;flex-direction:column;height:100%}.card-categories[data-astro-cid-bcf7t3qw]{display:flex;flex-wrap:wrap;gap:var(--spacing-2);margin-bottom:var(--spacing-3)}.category-badge[data-astro-cid-bcf7t3qw]{display:inline-block;padding:var(--spacing-1) var(--spacing-3);background-color:var(--color-accent-primary);color:var(--color-bg-primary);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);border-radius:var(--radius-full);line-height:1.4}.card-title[data-astro-cid-bcf7t3qw]{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--spacing-3);line-height:var(--line-height-tight);letter-spacing:-.01em;word-break:keep-all;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-excerpt[data-astro-cid-bcf7t3qw]{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:var(--line-height-relaxed);margin-bottom:var(--spacing-4);flex-grow:1;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-meta[data-astro-cid-bcf7t3qw]{display:flex;align-items:center;gap:var(--spacing-2);font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin-top:auto}.meta-separator[data-astro-cid-bcf7t3qw]{color:var(--color-text-tertiary)}@media(max-width:640px){.post-recommendations[data-astro-cid-bcf7t3qw]{margin-top:var(--spacing-12);padding-top:var(--spacing-8)}.recommendations-title[data-astro-cid-bcf7t3qw]{font-size:var(--font-size-xl)}.recommendation-card[data-astro-cid-bcf7t3qw]{padding:var(--spacing-5)}}.prose{font-family:var(--font-family-base);font-size:var(--font-size-post-body);line-height:var(--line-height-post-body);color:var(--color-text-primary);word-break:keep-all;word-wrap:break-word}.prose p{margin-top:0;margin-bottom:var(--spacing-paragraph)}.prose p:last-child{margin-bottom:0}.prose h2{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);color:var(--color-text-primary);margin-top:var(--spacing-heading-top);margin-bottom:var(--spacing-heading-bottom);scroll-margin-top:calc(var(--layout-header-height) + var(--spacing-4));letter-spacing:-.02em}.prose h2:first-child{margin-top:0}.prose h3{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);color:var(--color-text-primary);margin-top:calc(var(--spacing-heading-top) * .8);margin-bottom:calc(var(--spacing-heading-bottom) * .8);scroll-margin-top:calc(var(--layout-header-height) + var(--spacing-4));letter-spacing:-.01em}.prose h4{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);color:var(--color-text-primary);margin-top:calc(var(--spacing-heading-top) * .6);margin-bottom:calc(var(--spacing-heading-bottom) * .6);scroll-margin-top:calc(var(--layout-header-height) + var(--spacing-4))}.prose a{color:var(--color-accent-primary);text-decoration:underline;text-underline-offset:2px;transition:color var(--transition-fast)}.prose a:hover{color:var(--color-accent-secondary)}.prose strong{font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.prose em{font-style:italic;color:var(--color-text-secondary)}.prose code{font-family:var(--font-family-mono);font-size:.9em;background-color:var(--color-code-inline-bg);color:var(--color-code-inline-text);padding:.15em .4em;border-radius:var(--radius-sm);font-weight:var(--font-weight-medium)}.prose pre{border:1px solid var(--color-code-border);border-radius:var(--radius-md);padding:var(--spacing-4);margin:var(--spacing-6) 0;overflow-x:auto;line-height:1.6}.prose pre code{font-family:var(--font-family-mono);font-size:.875rem;background-color:transparent;padding:0;border-radius:0}.prose blockquote{border-left:4px solid var(--color-accent-primary);background-color:var(--color-bg-secondary);padding:var(--spacing-4) var(--spacing-5);margin:var(--spacing-6) 0;border-radius:var(--radius-sm)}.prose blockquote p{color:var(--color-text-secondary);font-style:normal;margin:0}.prose blockquote p:not(:last-child){margin-bottom:var(--spacing-3)}.prose ul,.prose ol{padding-left:var(--spacing-6);margin:var(--spacing-5) 0}.prose li{margin:var(--spacing-2) 0;line-height:var(--line-height-relaxed)}.prose li>p{margin:var(--spacing-2) 0}.prose ul ul,.prose ul ol,.prose ol ul,.prose ol ol{margin:var(--spacing-2) 0}.prose img{border-radius:var(--radius-md);margin:var(--spacing-8) auto;display:block;max-width:100%;height:auto;box-shadow:var(--shadow-card)}.prose table{width:100%;border-collapse:collapse;margin:var(--spacing-6) 0;font-size:var(--font-size-sm);line-height:var(--line-height-normal)}.prose thead{background-color:var(--color-bg-secondary);border-bottom:2px solid var(--color-border-primary)}.prose th{padding:var(--spacing-3) var(--spacing-4);text-align:left;font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.prose td{padding:var(--spacing-3) var(--spacing-4);border-bottom:1px solid var(--color-border-primary);color:var(--color-text-secondary)}.prose tbody tr:hover{background-color:var(--color-bg-secondary);transition:background-color var(--transition-fast)}.prose hr{border:none;border-top:1px solid var(--color-border-primary);margin:var(--spacing-8) 0}@media(max-width:640px){.prose{font-size:var(--font-size-base)}.prose h2{font-size:var(--font-size-xl);margin-top:calc(var(--spacing-heading-top) * .7)}.prose h3{font-size:var(--font-size-lg);margin-top:calc(var(--spacing-heading-top) * .6)}.prose h4{font-size:var(--font-size-base);margin-top:calc(var(--spacing-heading-top) * .5)}.prose pre{margin:var(--spacing-4) calc(-1 * var(--spacing-4));border-radius:0;border-left:none;border-right:none}}.page-layout[data-astro-cid-gjtny2mx]{position:relative;width:100%}.post-container[data-astro-cid-gjtny2mx]{max-width:var(--layout-content-width);margin:0 auto;padding:0 var(--spacing-6)}.toc-sidebar[data-astro-cid-gjtny2mx]{display:none}@media(min-width:1280px){.page-layout[data-astro-cid-gjtny2mx]{display:flex;justify-content:center;gap:var(--spacing-16);padding:0 var(--spacing-8)}.post-container[data-astro-cid-gjtny2mx]{flex:0 0 var(--layout-content-width);max-width:var(--layout-content-width);padding:0}.toc-sidebar[data-astro-cid-gjtny2mx]{display:block;flex:0 0 var(--layout-sidebar-width);position:sticky;top:calc(var(--layout-header-height) + var(--spacing-2));height:-moz-fit-content;height:fit-content;max-height:calc(100vh - var(--layout-header-height) - var(--spacing-6));align-self:flex-start}}@media(min-width:1536px){.page-layout[data-astro-cid-gjtny2mx]{gap:var(--spacing-20);padding:0 var(--spacing-12)}}.post-header[data-astro-cid-gjtny2mx]{margin-bottom:var(--spacing-12);padding-bottom:var(--spacing-8);border-bottom:1px solid var(--color-border-primary)}.series-info[data-astro-cid-gjtny2mx]{font-size:var(--font-size-sm);color:var(--color-text-tertiary);margin-bottom:var(--spacing-4);font-weight:var(--font-weight-medium)}.series-name[data-astro-cid-gjtny2mx]{font-weight:var(--font-weight-semibold);color:var(--color-accent-primary)}.post-title[data-astro-cid-gjtny2mx]{font-size:var(--font-size-post-title);font-weight:var(--font-weight-bold);line-height:var(--line-height-post-title);margin-bottom:var(--spacing-4);color:var(--color-text-primary);letter-spacing:-.02em;word-break:keep-all}.post-meta[data-astro-cid-gjtny2mx]{display:flex;flex-wrap:wrap;gap:var(--spacing-4);font-size:var(--font-size-sm);color:var(--color-text-tertiary);margin-bottom:var(--spacing-5)}.post-excerpt[data-astro-cid-gjtny2mx]{font-size:var(--font-size-lg);line-height:var(--line-height-relaxed);color:var(--color-text-secondary);margin-bottom:var(--spacing-6)}.post-tags[data-astro-cid-gjtny2mx]{display:flex;flex-direction:column;gap:var(--spacing-3)}.categories[data-astro-cid-gjtny2mx],.tags[data-astro-cid-gjtny2mx]{display:flex;flex-wrap:wrap;gap:var(--spacing-2)}.category-tag[data-astro-cid-gjtny2mx]{padding:var(--spacing-2) var(--spacing-4);background:var(--color-accent-primary);color:var(--color-bg-primary);border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);transition:background-color var(--transition-fast)}.category-tag[data-astro-cid-gjtny2mx]:hover{background:var(--color-accent-secondary)}.tag[data-astro-cid-gjtny2mx]{padding:var(--spacing-1) var(--spacing-3);background:var(--color-bg-secondary);color:var(--color-text-secondary);border-radius:var(--radius-sm);font-size:var(--font-size-xs);border:1px solid var(--color-border-primary);transition:all var(--transition-fast)}.tag[data-astro-cid-gjtny2mx]:hover{background:var(--color-bg-tertiary);border-color:var(--color-border-secondary)}.post-content[data-astro-cid-gjtny2mx]{margin-bottom:var(--spacing-12)}.post-footer[data-astro-cid-gjtny2mx]{margin-top:var(--spacing-12);padding-top:var(--spacing-8);border-top:1px solid var(--color-border-primary);text-align:center}.post-footer[data-astro-cid-gjtny2mx] p[data-astro-cid-gjtny2mx]{font-size:var(--font-size-sm);color:var(--color-text-tertiary)}.post-footer[data-astro-cid-gjtny2mx] a[data-astro-cid-gjtny2mx]{color:var(--color-accent-primary);text-decoration:none;transition:color var(--transition-fast)}.post-footer[data-astro-cid-gjtny2mx] a[data-astro-cid-gjtny2mx]:hover{color:var(--color-accent-secondary);text-decoration:underline}@media(max-width:640px){.post-title[data-astro-cid-gjtny2mx]{font-size:var(--font-size-3xl)}.post-header[data-astro-cid-gjtny2mx]{margin-bottom:var(--spacing-8);padding-bottom:var(--spacing-6)}.post-content-wrapper[data-astro-cid-gjtny2mx]{margin-bottom:var(--spacing-8)}}.notice[data-astro-cid-ftwfccio]{margin:1.5rem 0}.notice-content[data-astro-cid-ftwfccio]{line-height:1.6}.notice-content[data-astro-cid-ftwfccio] p{margin:.5rem 0}.notice-content[data-astro-cid-ftwfccio] p:first-child{margin-top:0}.notice-content[data-astro-cid-ftwfccio] p:last-child{margin-bottom:0}.notice-content[data-astro-cid-ftwfccio] code{background-color:#0000001a;padding:.125rem .25rem;border-radius:.25rem;font-size:.875em}.notice-content[data-astro-cid-ftwfccio] strong{font-weight:600}.notice-content[data-astro-cid-ftwfccio] a{text-decoration:underline;text-underline-offset:2px}
