.container[data-v-f1a43208]{margin:0 auto;max-width:1200px;padding:0 32px}.reading-progress[data-v-f1a43208]{background:#b85c3e;height:3px;left:0;position:fixed;top:0;transform:scaleX(0);transform-origin:left;transition:transform .1s linear;width:100%;will-change:transform;z-index:1001}.article-hero[data-v-f1a43208]{align-items:flex-end;display:flex;margin-top:-80px;min-height:540px;padding-top:80px;position:relative}.hero-image-wrapper[data-v-f1a43208]{inset:0;position:absolute;z-index:0}.hero-image[data-v-f1a43208]{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.hero-overlay[data-v-f1a43208]{background:linear-gradient(0deg,#000000bf 0,#0003 60%,#0000004d);inset:0;position:absolute}.hero-content[data-v-f1a43208]{padding-bottom:60px;padding-top:120px;position:relative;width:100%;z-index:1}.back-to-blog[data-v-f1a43208]{align-items:center;color:#fff9;display:flex;font-family:var(--font-mono,"IBM Plex Mono",monospace);font-size:13px;font-weight:500;gap:6px;margin-bottom:20px;text-decoration:none;transition:color .2s ease;width:-moz-fit-content;width:fit-content}.back-to-blog[data-v-f1a43208]:hover{color:#ffffffe6}.article-category[data-v-f1a43208]{color:#b85c3e;display:inline-block;font-family:var(--font-mono,"IBM Plex Mono",monospace);font-size:12px;font-weight:500;letter-spacing:2px;margin-bottom:16px;text-transform:uppercase}.article-hero h1[data-v-f1a43208]{color:#fff;font-family:var(--font-ui);font-size:48px;font-weight:600;letter-spacing:-.02em;line-height:1.15;margin:0 0 20px;max-width:800px}.article-meta[data-v-f1a43208]{align-items:center;color:#ffffffb3;display:flex;font-family:var(--font-mono,"IBM Plex Mono",monospace);font-size:13px;gap:10px}.meta-sep[data-v-f1a43208]{font-size:16px}.article-body[data-v-f1a43208]{align-items:start;display:grid;gap:60px;grid-template-columns:1fr 280px;padding-bottom:40px;padding-top:56px}.article-content[data-v-f1a43208]{max-width:720px;min-width:0}.article-intro[data-v-f1a43208]{padding-bottom:8px}.article-intro[data-v-f1a43208] p{color:var(--fg,#1a1a1a);font-family:var(--font-ui);font-size:18px;line-height:1.8;margin:0 0 20px}.article-intro[data-v-f1a43208] p:first-child{color:var(--fg,#1a1a1a);font-size:19px;line-height:1.75}.article-content[data-v-f1a43208] p{color:var(--fg,#1a1a1a);font-family:var(--font-ui);font-size:17px;line-height:1.75;margin:0 0 20px}.article-content[data-v-f1a43208] strong{color:var(--fg,#1a1a1a);font-weight:600}.article-content[data-v-f1a43208] a{color:#b85c3e;text-decoration:underline;text-underline-offset:3px;transition:color .2s ease}.article-content[data-v-f1a43208] a:hover{color:#d17a5e}.article-content[data-v-f1a43208] ol,.article-content[data-v-f1a43208] ul{margin:0 0 24px;padding-left:24px}.article-content[data-v-f1a43208] li{color:var(--fg,#1a1a1a);font-family:var(--font-ui);font-size:17px;line-height:1.75;margin-bottom:8px}.article-content[data-v-f1a43208] .table-wrapper{border:1px solid #e8e8e3;border-radius:8px;margin:28px 0;overflow-x:auto}.article-content[data-v-f1a43208] table{border-collapse:collapse;font-size:15px;overflow-x:auto;width:100%}.article-content[data-v-f1a43208] th{background:#fafafa;border-bottom:2px solid #e8e8e3;color:var(--fg,#1a1a1a);font-family:var(--font-ui);font-size:14px;font-weight:600;padding:14px 18px;text-align:left;white-space:nowrap}.article-content[data-v-f1a43208] td{border-bottom:1px solid #f0f0eb;color:var(--fg,#1a1a1a);font-family:var(--font-ui);line-height:1.5;padding:12px 18px}.article-content[data-v-f1a43208] tr:last-child td{border-bottom:none}.article-content[data-v-f1a43208] tr:hover td{background:#fafaf8}.article-section[data-v-f1a43208]{margin-top:36px;padding:0}.article-section[data-v-f1a43208]:first-of-type{border-top:1px solid #f0f0eb;margin-top:28px;padding:28px 0 0}.article-section[data-v-f1a43208]>div>ol:last-child,.article-section[data-v-f1a43208]>div>p:last-child,.article-section[data-v-f1a43208]>div>ul:last-child{margin-bottom:0}.section-heading-group[data-v-f1a43208]{margin:0 0 18px}.section-number[data-v-f1a43208]{display:none}.section-heading-group h2[data-v-f1a43208]{color:var(--fg,#1a1a1a);font-family:var(--font-ui);font-size:28px;font-weight:600;letter-spacing:-.01em;line-height:1.3;margin:0}.article-conclusion[data-v-f1a43208]{border-top:1px solid #f0f0eb;margin-top:40px;padding-top:32px}.article-tags[data-v-f1a43208]{border-top:1px solid #f0f0eb;display:flex;flex-wrap:wrap;gap:8px;margin-top:36px;padding-top:28px}.tag[data-v-f1a43208]{background:#f5f5f0;border-radius:6px;color:var(--muted,#666);font-family:var(--font-mono,"IBM Plex Mono",monospace);font-size:12px;font-weight:500;letter-spacing:.3px;padding:5px 12px}.article-sidebar[data-v-f1a43208]{display:flex;flex-direction:column;gap:32px;max-height:calc(100vh - 120px);overflow-y:auto;position:sticky;scrollbar-color:#e8e8e3 transparent;scrollbar-width:thin;top:100px}.article-sidebar[data-v-f1a43208]::-webkit-scrollbar{width:4px}.article-sidebar[data-v-f1a43208]::-webkit-scrollbar-track{background:transparent}.article-sidebar[data-v-f1a43208]::-webkit-scrollbar-thumb{background:#e8e8e3;border-radius:2px}.article-sidebar[data-v-f1a43208]::-webkit-scrollbar-thumb:hover{background:#d0d0cb}.sidebar-card[data-v-f1a43208]{background:#fafafa;border:1px solid #f0f0eb;border-radius:12px;padding:24px}.sidebar-card h4[data-v-f1a43208]{color:var(--muted,#999);font-family:var(--font-ui);font-size:12px;font-weight:600;letter-spacing:1.2px;margin:0 0 16px;text-transform:uppercase}.toc-card[data-v-f1a43208]{background:transparent;border:none;display:block;padding:0}.toc-card h4[data-v-f1a43208]{color:var(--muted,#999);font-size:11px;letter-spacing:1.5px;margin:0 0 14px;padding-left:14px}.toc-list[data-v-f1a43208]{border-left:1px solid #e8e8e3;list-style:none;margin:0;padding:0}.toc-list li[data-v-f1a43208]{margin-bottom:0}.toc-link[data-v-f1a43208]{border-left:2px solid transparent;color:var(--muted,#999);display:block;font-family:var(--font-ui);font-size:13px;line-height:1.4;margin-left:-1px;padding:7px 12px 7px 13px;text-decoration:none;transition:color .2s ease,border-color .2s ease}.toc-link[data-v-f1a43208]:hover{color:var(--fg,#1a1a1a)}.toc-link.active[data-v-f1a43208]{border-left-color:#b85c3e;color:#b85c3e;font-weight:500}.related-project[data-v-f1a43208]{margin-bottom:20px}.related-project[data-v-f1a43208]:last-child{margin-bottom:0}.rp-link[data-v-f1a43208]{color:#b85c3e;font-family:var(--font-ui);font-size:15px;font-weight:600;text-decoration:none;transition:color .2s ease}.rp-link[data-v-f1a43208]:hover{color:#d17a5e}.rp-reason[data-v-f1a43208]{color:var(--muted,#999);font-family:var(--font-ui);font-size:13px;line-height:1.5;margin:4px 0 0}.related-articles[data-v-f1a43208]{background:#fafafa;border-top:1px solid #f0f0eb;padding:80px 0}.related-articles h3[data-v-f1a43208]{color:var(--fg,#1a1a1a);font-family:var(--font-ui);font-size:32px;font-weight:600;letter-spacing:-.01em;margin:0 0 40px;text-align:center}.related-grid[data-v-f1a43208]{display:grid;gap:32px;grid-template-columns:repeat(2,1fr);margin:0 auto;max-width:900px}@media(max-width:1024px){.article-body[data-v-f1a43208]{gap:40px;grid-template-columns:1fr}.article-sidebar[data-v-f1a43208]{flex-direction:row;flex-wrap:wrap;position:static}.toc-card[data-v-f1a43208]{display:none}.sidebar-card[data-v-f1a43208]{flex:1;min-width:250px}.article-content[data-v-f1a43208]{max-width:100%}}@media(max-width:767px){.container[data-v-f1a43208]{padding:0 20px}.article-hero[data-v-f1a43208]{min-height:420px}.hero-content[data-v-f1a43208]{padding-bottom:36px;padding-top:80px}.hero-overlay[data-v-f1a43208]{background:linear-gradient(0deg,#000000d9 0,#0000004d 50%,#00000026)}.back-to-blog[data-v-f1a43208]{font-size:12px;margin-bottom:16px}.article-category[data-v-f1a43208]{border-bottom:2px solid #b85c3e;display:inline-block;font-size:11px;letter-spacing:2.5px;margin-bottom:12px;padding:4px 0}.article-hero h1[data-v-f1a43208]{font-size:28px;letter-spacing:-.03em;line-height:1.2;margin-bottom:16px}.article-meta[data-v-f1a43208]{flex-wrap:nowrap;font-size:11px;gap:8px;overflow-x:auto;white-space:nowrap}.meta-sep[data-v-f1a43208]{font-size:12px;opacity:.5}.article-body[data-v-f1a43208]{padding-bottom:24px;padding-top:32px}.article-intro[data-v-f1a43208]{padding-bottom:4px;position:relative}.article-intro[data-v-f1a43208]:before{background:#b85c3e;border-radius:2px;content:"";display:block;height:3px;margin-bottom:24px;width:40px}.article-intro[data-v-f1a43208] p:first-child{color:var(--fg,#1a1a1a);font-size:17px;font-weight:400;line-height:1.7}.article-intro[data-v-f1a43208] p{font-size:15px;line-height:1.75}.article-section[data-v-f1a43208]{margin-top:28px;padding-top:0}.article-section[data-v-f1a43208]:first-of-type{margin-top:24px;padding-top:24px}.section-heading-group[data-v-f1a43208]{margin-bottom:16px;position:relative}.section-number[data-v-f1a43208]{color:#b85c3e;display:block;font-family:var(--font-mono,"IBM Plex Mono",monospace);font-size:11px;font-weight:600;letter-spacing:2px;margin-bottom:8px;opacity:.8}.section-heading-group h2[data-v-f1a43208]{font-size:22px;letter-spacing:-.02em;line-height:1.25}.article-content[data-v-f1a43208] li,.article-content[data-v-f1a43208] p{font-size:15px;line-height:1.8}.article-content[data-v-f1a43208] ol,.article-content[data-v-f1a43208] ul{padding-left:20px}.article-content[data-v-f1a43208] li{margin-bottom:12px}.article-content[data-v-f1a43208] li strong:first-child{color:var(--fg,#1a1a1a);display:block;margin-bottom:2px}.article-content[data-v-f1a43208] .table-wrapper{border-left:none;border-radius:0;border-right:none;margin:24px -20px}.article-content[data-v-f1a43208] table{font-size:13px}.article-content[data-v-f1a43208] th{font-size:12px;padding:10px 14px}.article-content[data-v-f1a43208] td{font-size:13px;padding:10px 14px}.article-conclusion[data-v-f1a43208]{margin-top:32px;padding-top:28px;position:relative}.article-conclusion[data-v-f1a43208]:before{background:#b85c3e;border-radius:2px;content:"";height:3px;left:0;position:absolute;top:0;width:40px}.article-conclusion[data-v-f1a43208] p:first-child{font-size:16px;font-weight:400;line-height:1.75}.article-tags[data-v-f1a43208]{gap:8px;margin-top:28px;padding-top:24px}.tag[data-v-f1a43208]{background:transparent;border:1px solid #e8e8e3;border-radius:20px;color:var(--muted,#666);font-size:11px;letter-spacing:.5px;padding:6px 14px;transition:border-color .2s ease,color .2s ease}.article-sidebar[data-v-f1a43208]{max-height:none;overflow-y:visible}.sidebar-card[data-v-f1a43208]{background:#fafaf8;border:1px solid #f0f0eb;border-radius:16px;padding:20px}.sidebar-card h4[data-v-f1a43208]{font-size:11px;letter-spacing:1.8px;margin-bottom:14px}.related-project[data-v-f1a43208]{border-bottom:1px solid #f0f0eb;margin-bottom:16px;padding-bottom:16px}.related-project[data-v-f1a43208]:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.rp-link[data-v-f1a43208]{font-size:15px}.rp-reason[data-v-f1a43208]{font-size:13px;line-height:1.5;margin-top:4px}.related-articles[data-v-f1a43208]{padding:48px 0}.related-articles h3[data-v-f1a43208]{font-size:24px;margin-bottom:28px;text-align:left}.related-grid[data-v-f1a43208]{gap:20px;grid-template-columns:1fr}.back-to-top[data-v-f1a43208]{bottom:24px;height:40px;right:20px;width:40px}}.mobile-toc-drawer[data-v-f1a43208],.mobile-toc-fab[data-v-f1a43208]{display:none}@media(max-width:767px){.mobile-toc-fab[data-v-f1a43208]{align-items:center;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:#ffffffeb;border:1px solid #e8e8e3;border-radius:24px;bottom:24px;box-shadow:0 2px 12px #00000014;color:var(--fg,#1a1a1a);cursor:pointer;display:flex;font-family:var(--font-mono,"IBM Plex Mono",monospace);font-size:11px;font-weight:600;gap:6px;left:20px;letter-spacing:.8px;padding:10px 16px;position:fixed;text-transform:uppercase;transition:background .2s ease,box-shadow .2s ease;z-index:60}.mobile-toc-fab[data-v-f1a43208]:active{background:#fff;box-shadow:0 4px 16px #0000001f}.mobile-toc-drawer[data-v-f1a43208]{align-items:flex-end;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);background:#0006;display:flex;inset:0;justify-content:center;position:fixed;z-index:1100}.mobile-toc-panel[data-v-f1a43208]{background:#fff;border-radius:20px 20px 0 0;box-shadow:0 -8px 40px #0000001f;max-height:70vh;overflow-y:auto;padding:28px 24px 40px;width:100%}.mobile-toc-header[data-v-f1a43208]{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.mobile-toc-label[data-v-f1a43208]{color:var(--muted,#999);font-family:var(--font-mono,"IBM Plex Mono",monospace);font-size:11px;font-weight:600;letter-spacing:1.8px;text-transform:uppercase}.mobile-toc-close[data-v-f1a43208]{align-items:center;background:#f5f5f0;border:none;border-radius:50%;color:var(--fg,#1a1a1a);cursor:pointer;display:flex;height:32px;justify-content:center;transition:background .2s ease;width:32px}.mobile-toc-close[data-v-f1a43208]:active{background:#e8e8e3}.mobile-toc-list[data-v-f1a43208]{list-style:none;margin:0;padding:0}.mobile-toc-list li[data-v-f1a43208]{margin:0}.mobile-toc-link[data-v-f1a43208]{align-items:baseline;border-bottom:1px solid #f5f5f0;color:var(--fg,#1a1a1a);display:flex;font-family:var(--font-ui);font-size:15px;gap:12px;line-height:1.4;padding:14px 0;text-decoration:none;transition:color .15s ease}.mobile-toc-list li:last-child .mobile-toc-link[data-v-f1a43208]{border-bottom:none}.mobile-toc-link.active[data-v-f1a43208]{color:#b85c3e}.mobile-toc-link.active .mobile-toc-num[data-v-f1a43208]{color:#b85c3e;opacity:1}.mobile-toc-num[data-v-f1a43208]{color:var(--muted,#999);flex-shrink:0;font-family:var(--font-mono,"IBM Plex Mono",monospace);font-size:11px;font-weight:600;min-width:20px;opacity:.6}}.slide-up-enter-active[data-v-f1a43208],.slide-up-leave-active[data-v-f1a43208]{transition:opacity .25s ease}.slide-up-enter-active .mobile-toc-panel[data-v-f1a43208],.slide-up-leave-active .mobile-toc-panel[data-v-f1a43208]{transition:transform .3s cubic-bezier(.16,1,.3,1)}.slide-up-enter-from[data-v-f1a43208],.slide-up-leave-to[data-v-f1a43208]{opacity:0}.slide-up-enter-from .mobile-toc-panel[data-v-f1a43208],.slide-up-leave-to .mobile-toc-panel[data-v-f1a43208]{transform:translateY(100%)}.back-to-top[data-v-f1a43208]{align-items:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffe6;border:1px solid #e8e8e3;border-radius:50%;bottom:32px;box-shadow:0 2px 8px #0000000f;color:var(--fg,#1a1a1a);cursor:pointer;display:flex;height:44px;justify-content:center;position:fixed;right:32px;transition:background .2s ease,border-color .2s ease,transform .2s ease;width:44px;z-index:50}.back-to-top[data-v-f1a43208]:hover{background:#fff;border-color:#b85c3e;box-shadow:0 4px 12px #0000001a;color:#b85c3e;transform:translateY(-2px)}.fade-up-enter-active[data-v-f1a43208],.fade-up-leave-active[data-v-f1a43208]{transition:opacity .3s ease,transform .3s ease}.fade-up-enter-from[data-v-f1a43208],.fade-up-leave-to[data-v-f1a43208]{opacity:0;transform:translateY(12px)}@media(prefers-reduced-motion:reduce){.back-to-top[data-v-f1a43208],.fade-up-enter-active[data-v-f1a43208],.fade-up-leave-active[data-v-f1a43208],.reading-progress[data-v-f1a43208],.toc-link[data-v-f1a43208]{transition:none}}
