.theme-toggle[data-v-e099fc46]{display:flex;align-items:center;justify-content:center;width:28px;height:28px;color:var(--text-secondary);border-radius:var(--radius-sm);transition:color var(--t-fast)}.theme-toggle[data-v-e099fc46]:hover{color:var(--text-primary)}.theme-toggle[data-v-e099fc46]:focus-visible{outline:2px solid var(--link-color);outline-offset:2px}.header[data-v-6af55dd8]{position:sticky;top:0;z-index:100;height:var(--header-height);background:var(--bg-primary);border-bottom:1px solid var(--border-color)}.header__inner[data-v-6af55dd8]{max-width:var(--content-max);height:100%;margin:0 auto;padding:0 var(--sp-6);display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4)}.header__logo[data-v-6af55dd8]{font-size:var(--text-lg);font-weight:700;letter-spacing:var(--tracking-tight);color:var(--text-primary);text-decoration:none}.header__logo[data-v-6af55dd8]:hover{text-decoration:none}.header__logo[data-v-6af55dd8]:focus-visible{outline:2px solid var(--link-color);outline-offset:2px;border-radius:var(--radius-sm)}.header__nav[data-v-6af55dd8]{display:flex;align-items:center;gap:var(--sp-1)}.header__link[data-v-6af55dd8]{padding:var(--sp-1) var(--sp-3);font-size:var(--text-sm);color:var(--text-secondary);text-decoration:none;border-radius:var(--radius-sm);transition:color var(--t-fast)}.header__link[data-v-6af55dd8]:hover{color:var(--text-primary);text-decoration:none}.header__link[data-v-6af55dd8]:focus-visible{outline:2px solid var(--link-color);outline-offset:2px}.header__link--active[data-v-6af55dd8]{color:var(--text-primary);font-weight:600}.header__actions[data-v-6af55dd8]{display:flex;align-items:center;gap:var(--sp-2)}@media(max-width:640px){.header__nav[data-v-6af55dd8]{gap:0}.header__link[data-v-6af55dd8]{padding:var(--sp-1) var(--sp-2);font-size:var(--text-xs)}}.footer[data-v-134f0573]{border-top:1px solid var(--border-color);padding:var(--sp-6) 0}.footer__inner[data-v-134f0573]{max-width:var(--content-max);margin:0 auto;padding:0 var(--sp-6);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--sp-2);font-size:var(--text-sm);color:var(--text-tertiary)}.footer__inner a[data-v-134f0573]{color:var(--text-tertiary)}.footer__inner a[data-v-134f0573]:hover{color:var(--text-secondary)}.footer__inner a[data-v-134f0573]:focus-visible{outline:2px solid var(--link-color);outline-offset:2px}.scrolltop[data-v-ed72e367]{position:fixed;bottom:2rem;right:2rem;z-index:90;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid var(--border-strong);border-radius:50%;background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;transition:color var(--t-fast),border-color var(--t-fast)}.scrolltop[data-v-ed72e367]:hover{color:var(--text-primary);border-color:var(--text-tertiary)}.scrolltop[data-v-ed72e367]:focus-visible{outline:2px solid var(--link-color);outline-offset:2px}.scrolltop-enter-active[data-v-ed72e367],.scrolltop-leave-active[data-v-ed72e367]{transition:opacity var(--t-normal),transform var(--t-normal)}.scrolltop-enter-from[data-v-ed72e367],.scrolltop-leave-to[data-v-ed72e367]{opacity:0;transform:translateY(8px)}main[data-v-12be27d7]{min-height:calc(100vh - var(--header-height))}.skip-link[data-v-12be27d7]{position:absolute;top:-100px;left:0;z-index:200;padding:var(--sp-2) var(--sp-4);background:var(--bg-secondary);color:var(--text-primary);font-size:var(--text-sm);text-decoration:none;border:1px solid var(--border-strong);border-radius:0 0 var(--radius) 0}.skip-link[data-v-12be27d7]:focus-visible{top:0;outline:2px solid var(--link-color)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}body{font-family:var(--font-serif);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--text-primary);background-color:var(--bg-primary);min-height:100vh;transition:background-color var(--t-normal),color var(--t-normal)}a{color:var(--link-color);text-decoration:none;transition:color var(--t-fast)}a:hover{color:var(--link-hover);text-decoration:underline}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}::selection{background:var(--selection-bg)}img,svg{display:block;max-width:100%}:root{--brand: #5b5b8a;--font-serif: serif;--font-mono: "Courier New", monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 2rem;--text-4xl: 2.5rem;--leading-tight: 1.3;--leading-normal: 1.7;--leading-relaxed: 1.85;--tracking-tight: -.01em;--tracking-normal: 0;--tracking-wide: .04em;--sp-1: .25rem;--sp-2: .5rem;--sp-3: .75rem;--sp-4: 1rem;--sp-6: 1.5rem;--sp-8: 2rem;--sp-12: 3rem;--sp-16: 4rem;--sp-24: 6rem;--header-height: 3.5rem;--content-max: 720px;--radius-sm: 3px;--radius: 5px;--radius-lg: 8px;--radius-full: 9999px;--t-fast: .15s ease;--t-normal: .25s ease;--bg-primary: #1a1a1a;--bg-secondary: #232323;--bg-tertiary: #2e2e2e;--text-primary: #e0e0e0;--text-secondary: #b0b0b0;--text-tertiary: #787878;--border-color: #3a3a3a;--border-strong: #505050;--link-color: #a0b4d8;--link-hover: #c0d0f0;--code-bg: #2a2a2a;--code-border: #383838;--table-stripe: rgba(255, 255, 255, .02);--table-border: #404040;--selection-bg: rgba(160, 180, 216, .3)}[data-theme=light]{--bg-primary: #fdfdfb;--bg-secondary: #ffffff;--bg-tertiary: #f5f5f0;--text-primary: #1a1a1a;--text-secondary: #444444;--text-tertiary: #777777;--border-color: #cccccc;--border-strong: #999999;--link-color: #3a4a7a;--link-hover: #2a3a6a;--code-bg: #f5f5f0;--code-border: #cccccc;--table-stripe: rgba(0, 0, 0, .02);--table-border: #bbbbbb;--selection-bg: rgba(58, 74, 122, .15)}.prose{max-width:var(--content-max);margin:0 auto;line-height:var(--leading-relaxed);color:var(--text-primary)}.prose h1{font-size:var(--text-2xl);font-weight:700;margin-bottom:var(--sp-8);line-height:var(--leading-tight)}.prose h2{font-size:var(--text-xl);font-weight:700;margin-top:var(--sp-12);margin-bottom:var(--sp-4);padding-bottom:var(--sp-2);border-bottom:1px solid var(--border-color)}.prose h3{font-size:var(--text-lg);font-weight:600;margin-top:var(--sp-8);margin-bottom:var(--sp-3)}.prose p{margin-bottom:var(--sp-4);color:var(--text-secondary)}.prose ul,.prose ol{margin-bottom:var(--sp-4);padding-left:var(--sp-6);color:var(--text-secondary)}.prose ul li,.prose ol li{margin-bottom:var(--sp-2)}.prose strong{color:var(--text-primary);font-weight:700}.prose em{color:var(--text-tertiary)}.prose a{color:var(--link-color);text-decoration:underline;text-underline-offset:2px}.prose code{font-family:var(--font-mono);font-size:.85em;background:var(--code-bg);border:1px solid var(--code-border);border-radius:var(--radius-sm);padding:.1em .3em}.prose pre{background:var(--code-bg);border:1px solid var(--code-border);border-radius:var(--radius);padding:var(--sp-4);overflow-x:auto;margin-bottom:var(--sp-4)}.prose pre code{background:none;border:none;padding:0;font-size:var(--text-sm);line-height:var(--leading-normal)}.prose table{display:block;overflow-x:auto;width:100%;border-collapse:collapse;margin-bottom:var(--sp-6);font-size:var(--text-sm);-webkit-overflow-scrolling:touch}.prose table th{font-weight:700;padding:var(--sp-2) var(--sp-3);border-bottom:2px solid var(--table-border);white-space:nowrap}.prose table td{padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border-color);color:var(--text-secondary)}.prose table tr:nth-child(2n) td{background:var(--table-stripe)}.prose .table-scroll>table{display:table;overflow:visible;width:max-content}.prose hr{border:none;border-top:1px solid var(--border-color);margin:var(--sp-8) 0}.prose blockquote{border-left:3px solid var(--border-strong);padding-left:var(--sp-4);margin-bottom:var(--sp-4);color:var(--text-tertiary);font-style:italic}.page-wrapper{max-width:var(--content-max);margin:0 auto;padding:var(--sp-8) var(--sp-6) var(--sp-16)}.fade-enter-active{transition:opacity var(--t-normal)}.fade-leave-active{transition:opacity var(--t-fast)}.fade-enter-from,.fade-leave-to{opacity:0}@media print{body *{visibility:hidden}.print-area,.print-area *{visibility:visible}.print-area{position:absolute;left:0;top:0;width:100%}.print-area{background:#fff!important;color:#000!important}.no-print{display:none!important}}
