.xrun-case{--xc-bg:#f5f5f7;--xc-surface:#ffffff;--xc-surface-soft:#f8f8fa;--xc-text:#1d1d1f;--xc-text-2:#515154;--xc-text-3:#86868b;--xc-text-4:#aeaeb2;--xc-accent:#3a6df0;--xc-accent-hover:#2a5cd6;--xc-accent-soft:rgba(58,109,240,.08);--xc-accent-glow:rgba(58,109,240,.12);--xc-success:#10b981;--xc-warning:#f59e0b;--xc-danger:#ef4444;--xc-border:#e8e8ed;--xc-border-strong:#d2d2d7;--xc-pill:#f0f0f3;--xc-space-xs:.625rem;--xc-space-sm:1rem;--xc-space-md:1.5rem;--xc-space-lg:2.5rem;--xc-space-xl:4rem;--xc-font-sans:-apple-system,"SF Pro Text","SF Pro Display","PingFang SC","Helvetica Neue","Microsoft YaHei",sans-serif;--xc-font-mono:"SF Mono","JetBrains Mono",Menlo,monospace;--xc-radius-sm:6px;--xc-radius-md:10px;--xc-radius-lg:14px;--xc-radius-xl:20px;--xc-radius-full:999px;--xc-shadow-sm:0 1px 2px rgba(0,0,0,.04);--xc-shadow-md:0 1px 2px rgba(0,0,0,.04),0 8px 24px -16px rgba(0,0,0,.12);--xc-shadow-lg:0 4px 12px rgba(0,0,0,.04),0 16px 48px -20px rgba(0,0,0,.16);--xc-transition:.2s cubic-bezier(.4,0,.2,1);font-family:var(--xc-font-sans);font-size:.9375rem;line-height:1.7;color:var(--xc-text);background:var(--xc-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh}.xrun-case *,.xrun-case *:before,.xrun-case *:after{box-sizing:border-box}.xrun-case p,.xrun-case h1,.xrun-case h2,.xrun-case h3,.xrun-case h4,.xrun-case ul,.xrun-case ol,.xrun-case figure,.xrun-case table{margin:0;padding:0}.xrun-case ul,.xrun-case ol{list-style:none}.xrun-case img{max-width:100%;display:block}.xc-topbar{position:sticky;top:0;z-index:20;background:#f5f5f7db;backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid var(--xc-border)}.xc-topbar-inner{max-width:880px;margin:0 auto;padding:12px 24px;display:flex;align-items:center;gap:10px;font-size:.8125rem;color:var(--xc-text-3)}.xc-topbar a{color:var(--xc-text-2);text-decoration:none;transition:color var(--xc-transition)}.xc-topbar a:hover{color:var(--xc-accent)}.xc-topbar .xc-crumb-sep{color:var(--xc-text-4)}.xc-topbar .xc-crumb-current{color:var(--xc-text);font-weight:500}.xc-wrap{max-width:880px;margin:0 auto;padding:0 24px 96px}.xc-hero{padding:var(--xc-space-xl) 0 var(--xc-space-lg)}.xc-eyebrow{font-family:var(--xc-font-mono);font-size:.6875rem;font-weight:500;text-transform:uppercase;letter-spacing:.12em;color:var(--xc-text-4);margin-bottom:var(--xc-space-xs)}.xc-hero h1{font-size:2.25rem;font-weight:600;letter-spacing:-.02em;line-height:1.15;margin-bottom:var(--xc-space-xs)}.xc-hero h1 .xc-h1-sub{color:var(--xc-text-3);font-weight:500}.xc-lede{font-size:1.0625rem;color:var(--xc-text-2);line-height:1.7;max-width:660px;margin-bottom:var(--xc-space-md)}.xc-lede strong{color:var(--xc-text);font-weight:600}.xc-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--xc-border);border:1px solid var(--xc-border);border-radius:var(--xc-radius-lg);overflow:hidden;box-shadow:var(--xc-shadow-md);margin-bottom:var(--xc-space-md)}.xc-stat{background:var(--xc-surface);padding:16px 18px}.xc-stat-num{font-family:var(--xc-font-mono);font-size:1.25rem;font-weight:600;color:var(--xc-text);letter-spacing:-.01em;line-height:1.3}.xc-stat-num em{font-style:normal;font-size:.8125rem;color:var(--xc-text-3);font-weight:500;margin-left:2px}.xc-stat-label{font-size:.75rem;color:var(--xc-text-3);margin-top:2px}.xc-tags{display:flex;flex-wrap:wrap;gap:6px}.xc-tag{display:inline-block;font-size:.6875rem;padding:2px 10px;line-height:1.6;font-weight:450;border-radius:var(--xc-radius-full);background:var(--xc-accent-soft);color:var(--xc-accent)}.xc-tag.xc-tag-mute{background:var(--xc-pill);color:var(--xc-text-3)}.xc-toc{background:var(--xc-surface);border:1px solid var(--xc-border);border-radius:var(--xc-radius-lg);padding:var(--xc-space-md);box-shadow:var(--xc-shadow-sm);margin-bottom:var(--xc-space-xl)}.xc-toc-title{font-family:var(--xc-font-mono);font-size:.6875rem;font-weight:500;text-transform:uppercase;letter-spacing:.12em;color:var(--xc-text-4);margin-bottom:var(--xc-space-xs)}.xc-toc-list{display:grid;grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(4,auto);grid-auto-flow:column;gap:2px 24px}.xc-toc-list a{display:flex;gap:10px;align-items:baseline;padding:5px 8px;border-radius:var(--xc-radius-sm);font-size:.8125rem;color:var(--xc-text-2);text-decoration:none;transition:background var(--xc-transition),color var(--xc-transition)}.xc-toc-list a:hover{background:var(--xc-accent-soft);color:var(--xc-accent)}.xc-toc-list .xc-toc-num{font-family:var(--xc-font-mono);font-size:.6875rem;color:var(--xc-text-4);flex-shrink:0}.xc-section{margin-bottom:var(--xc-space-xl);scroll-margin-top:72px}.xc-label{font-family:var(--xc-font-mono);font-size:.6875rem;font-weight:500;text-transform:uppercase;letter-spacing:.12em;color:var(--xc-text-4);margin-bottom:6px}.xc-section h2{font-size:1.625rem;font-weight:600;letter-spacing:-.02em;line-height:1.15;margin-bottom:6px}.xc-desc{font-size:.8125rem;color:var(--xc-text-3);line-height:1.7;max-width:600px;margin-bottom:var(--xc-space-md)}.xc-section h3{font-size:1.0625rem;font-weight:600;letter-spacing:-.01em;margin:var(--xc-space-md) 0 var(--xc-space-xs)}.xc-section h4{font-size:.9375rem;font-weight:600;margin:var(--xc-space-sm) 0 6px}.xc-section p{color:var(--xc-text-2);margin-bottom:var(--xc-space-xs)}.xc-section p:last-child{margin-bottom:0}.xc-section strong{color:var(--xc-text);font-weight:600}.xc-section code{font-family:var(--xc-font-mono);font-size:.8125em;background:var(--xc-pill);padding:1px 5px;border-radius:4px;color:var(--xc-text)}.xc-card{background:var(--xc-surface);border:1px solid var(--xc-border);border-radius:var(--xc-radius-lg);padding:var(--xc-space-md);box-shadow:var(--xc-shadow-sm);margin-bottom:var(--xc-space-sm);transition:box-shadow var(--xc-transition),border-color var(--xc-transition)}.xc-card:hover{border-color:var(--xc-border-strong);box-shadow:var(--xc-shadow-md)}.xc-card h3{margin-top:0}.xc-card-title-row{display:flex;align-items:baseline;gap:10px;margin-bottom:6px}.xc-card-index{font-family:var(--xc-font-mono);font-size:.6875rem;font-weight:500;letter-spacing:.05em;color:var(--xc-accent);flex-shrink:0}.xc-card-name{font-size:1.0625rem;font-weight:600;letter-spacing:-.01em;line-height:1.3}.xc-card-goal{font-size:.8125rem;color:var(--xc-text-3);line-height:1.6;margin-bottom:10px}.xc-card ul{display:flex;flex-direction:column;gap:5px}.xc-card li{position:relative;padding-left:16px;font-size:.8125rem;color:var(--xc-text-2);line-height:1.7}.xc-card li:before{content:"";position:absolute;left:2px;top:.68em;width:5px;height:5px;border-radius:50%;background:var(--xc-accent);opacity:.45}.xc-grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--xc-space-sm)}.xc-grid-2 .xc-card{margin-bottom:0}.xc-rows{display:flex;flex-direction:column;gap:10px}.xc-row{display:flex;gap:var(--xc-space-xs)}.xc-row-label{flex-shrink:0;width:4.6em;font-family:var(--xc-font-mono);font-size:.6875rem;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:var(--xc-text-4);padding-top:2px;line-height:1.7}.xc-row-body{flex:1;min-width:0;font-size:.875rem;color:var(--xc-text-2);line-height:1.75}.xc-row-body strong{color:var(--xc-text)}.xc-flow{display:flex;flex-wrap:wrap;align-items:center;gap:8px;background:var(--xc-surface-soft);border:1px solid var(--xc-border);border-radius:var(--xc-radius-md);padding:14px 16px;margin:var(--xc-space-xs) 0;font-family:var(--xc-font-mono);font-size:.75rem;color:var(--xc-text-2)}.xc-flow .xc-step{background:var(--xc-surface);border:1px solid var(--xc-border);border-radius:var(--xc-radius-sm);padding:3px 9px;white-space:nowrap}.xc-flow .xc-step.xc-step-accent{border-color:#3a6df059;background:var(--xc-accent-soft);color:var(--xc-accent)}.xc-flow .xc-arrow{color:var(--xc-text-4);flex-shrink:0}.xc-code{background:#1d1d1f;border-radius:var(--xc-radius-md);padding:16px 18px;overflow-x:auto;margin:var(--xc-space-xs) 0;box-shadow:var(--xc-shadow-md)}.xc-code code{font-family:var(--xc-font-mono);font-size:.75rem;line-height:1.75;color:#e8e8ed;background:none;padding:0;white-space:pre}.xc-code .c-comment{color:#86868b}.xc-code .c-keyword{color:#7ea6ff}.xc-code-cap{font-size:.75rem;color:var(--xc-text-4);font-family:var(--xc-font-mono);margin-top:-2px;margin-bottom:var(--xc-space-xs)}.xc-table-wrap{border:1px solid var(--xc-border);border-radius:var(--xc-radius-lg);overflow:hidden;box-shadow:var(--xc-shadow-sm);margin:var(--xc-space-xs) 0;background:var(--xc-surface)}.xc-table{width:100%;border-collapse:collapse;font-size:.8125rem}.xc-table th{text-align:left;font-weight:600;color:var(--xc-text);background:var(--xc-surface-soft);padding:10px 16px;border-bottom:1px solid var(--xc-border);font-size:.75rem;letter-spacing:.01em}.xc-table td{padding:10px 16px;border-bottom:1px solid var(--xc-border);color:var(--xc-text-2);line-height:1.65;vertical-align:top}.xc-table tr:last-child td{border-bottom:none}.xc-table td.xc-td-strong{color:var(--xc-text);font-weight:500}.xc-table td.xc-td-num{font-family:var(--xc-font-mono);color:var(--xc-text);font-weight:500;white-space:nowrap}.xc-figure{margin:var(--xc-space-sm) 0 var(--xc-space-md)}.xc-figure-img{border:1px dashed var(--xc-border-strong);border-radius:var(--xc-radius-lg);background:repeating-linear-gradient(45deg,var(--xc-surface-soft),var(--xc-surface-soft) 10px,var(--xc-surface) 10px,var(--xc-surface) 20px);min-height:180px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:24px;text-align:center}.xc-figure-num{font-family:var(--xc-font-mono);font-size:.6875rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--xc-accent)}.xc-figure-hint{font-size:.8125rem;color:var(--xc-text-3);max-width:420px;line-height:1.65}.xc-figure figcaption{font-size:.75rem;color:var(--xc-text-4);margin-top:8px;text-align:center;line-height:1.6}.xc-figure-art{background:var(--xc-surface);border:1px solid var(--xc-border);border-radius:var(--xc-radius-lg);padding:20px;box-shadow:var(--xc-shadow-sm);overflow-x:auto}.xc-figure-art svg{display:block;width:100%;height:auto;min-width:600px}.xc-note{border-left:3px solid var(--xc-accent);background:var(--xc-accent-soft);border-radius:0 var(--xc-radius-md) var(--xc-radius-md) 0;padding:14px 18px;margin:var(--xc-space-sm) 0}.xc-note p{font-size:.875rem;color:var(--xc-text-2);margin:0}.xc-note .xc-note-label{font-family:var(--xc-font-mono);font-size:.6875rem;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--xc-accent);display:block;margin-bottom:4px}.xc-kpi{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--xc-border);border:1px solid var(--xc-border);border-radius:var(--xc-radius-lg);overflow:hidden;margin:var(--xc-space-sm) 0}.xc-kpi-item{background:var(--xc-surface);padding:14px 16px}.xc-kpi-num{font-family:var(--xc-font-mono);font-size:1.125rem;font-weight:600;color:var(--xc-accent);line-height:1.3}.xc-kpi-label{font-size:.75rem;color:var(--xc-text-3);margin-top:2px;line-height:1.5}.xc-skills{display:flex;flex-direction:column;gap:1px;background:var(--xc-border);border:1px solid var(--xc-border);border-radius:var(--xc-radius-lg);overflow:hidden}.xc-skill{background:var(--xc-surface);padding:14px 18px;display:flex;gap:var(--xc-space-sm);align-items:flex-start}.xc-skill-name{flex-shrink:0;width:8.5em;font-size:.875rem;font-weight:600;color:var(--xc-text);line-height:1.6}.xc-skill-body{flex:1;font-size:.8125rem;color:var(--xc-text-2);line-height:1.7;min-width:0}.xc-foot{border-top:1px solid var(--xc-border);margin-top:var(--xc-space-xl);padding-top:var(--xc-space-md);font-size:.75rem;color:var(--xc-text-4);line-height:1.8}.xc-appendix{background:var(--xc-surface-soft);border:1px solid var(--xc-border);border-radius:var(--xc-radius-lg);padding:var(--xc-space-md)}.xc-appendix h3{margin-top:0}.xc-appendix ul{display:flex;flex-direction:column;gap:4px}.xc-appendix li{font-size:.8125rem;color:var(--xc-text-2);line-height:1.7}.xc-appendix li .xc-mono{font-family:var(--xc-font-mono);font-size:.75rem;color:var(--xc-text)}@media(max-width:720px){.xc-wrap{padding:0 18px 72px}.xc-hero{padding:var(--xc-space-lg) 0 var(--xc-space-md)}.xc-hero h1{font-size:1.75rem}.xc-lede{font-size:.9375rem}.xc-stats,.xc-kpi{grid-template-columns:repeat(2,1fr)}.xc-toc-list{grid-template-columns:1fr;grid-template-rows:none;grid-auto-flow:row}.xc-grid-2{grid-template-columns:1fr}.xc-section h2{font-size:1.375rem}.xc-row{flex-direction:column;gap:2px}.xc-row-label{width:auto;padding-top:0}.xc-skill{flex-direction:column;gap:2px}.xc-skill-name{width:auto}.xc-table-wrap{overflow-x:auto}.xc-table{min-width:520px}.case-page .xc-section,.case-page .xc-toc{scroll-margin-top:72px}}@media print{.xrun-case{background:#fff;font-size:11pt}.xc-topbar{display:none}.xc-card,.xc-toc,.xc-table-wrap{box-shadow:none}.xc-section{page-break-inside:avoid}}.case-page .xc-wrap{max-width:none;padding:0 0 var(--xc-space-xl)}.case-page .xc-hero{padding-top:var(--space-md)}.case-page .xc-section{scroll-margin-top:24px}.xc-shot{width:100%;display:block;border:1px solid var(--xc-border);border-radius:var(--xc-radius-lg);box-shadow:var(--xc-shadow-sm);background:var(--xc-surface);cursor:zoom-in}.xc-shot:focus-visible{outline:2px solid var(--xc-accent);outline-offset:4px}.xc-lightbox{padding:0;border:none;background:transparent;max-width:96vw;max-height:94vh;overflow:visible}.xc-lightbox::backdrop{background:#0c101cd1;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.xc-lightbox img{display:block;width:auto;height:auto;max-width:96vw;max-height:88vh;border-radius:10px;background:#fff;box-shadow:0 24px 80px #00000080}.xc-lightbox-close{position:fixed;top:16px;right:16px;width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.25);background:#141824b3;color:#fff;font-size:22px;line-height:1;cursor:pointer}.xc-lightbox-close:hover{background:#141824e6}.case-crumb[data-astro-cid-765s3f5a]{display:flex;align-items:center;gap:8px;font-size:var(--font-sm);color:var(--color-text-3);margin-bottom:var(--space-2xs)}.case-crumb[data-astro-cid-765s3f5a] a[data-astro-cid-765s3f5a]{color:var(--color-text-2)}.case-crumb[data-astro-cid-765s3f5a] a[data-astro-cid-765s3f5a]:hover{color:var(--color-accent)}.case-crumb-sep[data-astro-cid-765s3f5a]{color:var(--color-text-4)}.case-crumb-current[data-astro-cid-765s3f5a]{color:var(--color-text);font-weight:500}.case-back[data-astro-cid-765s3f5a]{margin-top:var(--space-lg);padding-top:var(--space-md);border-top:1px solid var(--color-border)}.case-back[data-astro-cid-765s3f5a] a[data-astro-cid-765s3f5a]{display:inline-flex;align-items:center;gap:6px;font-size:var(--font-sm);font-weight:500;color:var(--color-text-2)}.case-back[data-astro-cid-765s3f5a] a[data-astro-cid-765s3f5a]:hover{color:var(--color-accent)}.case-back[data-astro-cid-765s3f5a] svg[data-astro-cid-765s3f5a]{transition:transform var(--transition-fast)}.case-back[data-astro-cid-765s3f5a] a[data-astro-cid-765s3f5a]:hover svg[data-astro-cid-765s3f5a]{transform:translate(-2px)}
