.rollout-figure{margin-inline:0}@media(min-width:1160px){.rollout-figure{margin-inline:calc((var(--content-width) - var(--content-width-wide)) / 2);max-width:var(--content-width-wide)}}.rollout-diagram{--d-card-bg: #ffffff;--d-card-border: rgba(0, 0, 0, .08);--d-group-bg: rgba(0, 0, 0, .02);--d-track: rgba(0, 0, 0, .06);--d-text: #111827;--d-text-muted: #6b7280;--d-accent: #c2410c;--d-success: #059669;--d-info: #0284c7;--d-danger: #b91c1c;--d-danger-bg: #fef2f2;--d-danger-border: #fecaca;--d-danger-text: #991b1b;--d-legend-bg: rgba(0, 0, 0, .02);display:block;width:100%;position:relative;border-radius:.75rem;border:1px solid var(--color-border);background:var(--color-bg-secondary);padding:1.5rem 1.25rem;cursor:zoom-in;transition:box-shadow .2s ease,transform .2s ease;font:inherit;color:inherit;text-align:left}.rollout-diagram:hover{box-shadow:0 8px 24px -12px #00000026}.rollout-diagram:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.dark .rollout-diagram{--d-card-bg: #0f1729;--d-card-border: rgba(255, 255, 255, .08);--d-group-bg: rgba(255, 255, 255, .02);--d-track: rgba(255, 255, 255, .08);--d-text: #e5e7eb;--d-text-muted: #9ca3af;--d-accent: #ea580c;--d-success: #10b981;--d-info: #38bdf8;--d-danger: #ef4444;--d-danger-bg: #1a0f12;--d-danger-border: rgba(239, 68, 68, .5);--d-danger-text: #fca5a5;--d-legend-bg: rgba(255, 255, 255, .02)}.dark .rollout-diagram:hover{box-shadow:0 8px 24px -12px #00000080}.rollout-diagram svg{display:block;width:100%;height:auto}.rollout-diagram .zoom-hint{position:absolute;top:.75rem;right:.75rem;width:2rem;height:2rem;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--color-bg-secondary);border:1px solid var(--color-border);color:var(--color-text-secondary);opacity:.7;transition:opacity .2s ease;pointer-events:none}.rollout-diagram .zoom-hint svg{width:1rem;height:1rem}.rollout-diagram:hover .zoom-hint{opacity:1;color:var(--color-accent)}.rollout-diagram .card{fill:var(--d-card-bg);stroke:var(--d-card-border);stroke-width:1.25}.rollout-diagram .card-accent{stroke:var(--d-accent);stroke-width:1.5}.rollout-diagram .card-success{stroke:var(--d-success);stroke-width:1.5}.rollout-diagram .card-info{stroke:var(--d-info);stroke-width:1.5}.rollout-diagram .card-group{fill:var(--d-group-bg);stroke:var(--d-accent);stroke-width:1.25;opacity:.9}.rollout-diagram .track{fill:var(--d-track)}.rollout-diagram .legend-bg{fill:var(--d-legend-bg);stroke:var(--d-card-border);stroke-width:1}.rollout-diagram .rb-badge{fill:var(--d-danger-bg);stroke:var(--d-danger-border);stroke-width:1.25}.rollout-diagram .title{fill:var(--d-text);font-family:Nunito,system-ui,-apple-system,sans-serif;font-weight:700;font-size:20px;letter-spacing:.01em}.rollout-diagram .label{fill:var(--d-text);font-family:Nunito,system-ui,-apple-system,sans-serif;font-weight:600;font-size:16px}.rollout-diagram .sublabel{fill:var(--d-text-muted);font-family:Nunito,system-ui,-apple-system,sans-serif;font-size:12px;letter-spacing:.02em}.rollout-diagram .pct{fill:var(--d-text);font-family:JetBrains Mono,ui-monospace,Menlo,monospace;font-weight:600;font-size:14px}.rollout-diagram .gate-tag{fill:var(--d-accent);font-family:Nunito,system-ui,-apple-system,sans-serif;font-weight:700;font-size:11px;letter-spacing:.12em;text-transform:uppercase}.rollout-diagram .gate-tag-info{fill:var(--d-info)}.rollout-diagram .gate-tag-success{fill:var(--d-success)}.rollout-diagram .rb-label{fill:var(--d-danger-text);font-family:Nunito,system-ui,-apple-system,sans-serif;font-weight:600;font-size:13px}.rollout-diagram .stroke-accent{stroke:var(--d-accent)}.rollout-diagram .stroke-success{stroke:var(--d-success)}.rollout-diagram .stroke-info{stroke:var(--d-info)}.rollout-diagram .stroke-danger{stroke:var(--d-danger)}.rollout-diagram .stroke-muted{stroke:var(--d-text-muted)}.rollout-diagram .fill-accent,.rollout-diagram .fill-accent-rect{fill:var(--d-accent)}.rollout-diagram .fill-success{fill:var(--d-success)}.rollout-diagram .fill-info{fill:var(--d-info)}.rollout-diagram .fill-danger{fill:var(--d-danger)}.rollout-figure .caption{margin-top:.75rem;text-align:center;font-size:.875rem;color:var(--color-text-secondary);font-style:italic}.rollout-diagram .card-danger{stroke:var(--d-danger);stroke-width:1.6}.rollout-diagram .card-soft{fill:var(--d-card-bg);stroke:var(--d-text-muted);stroke-width:1.25;stroke-dasharray:5 4;opacity:.9}.rollout-diagram .card-compare{fill:var(--d-card-bg);stroke:var(--d-accent);stroke-width:1.4;opacity:.96}.rollout-diagram .badge-success{fill:var(--d-success-bg, rgba(16, 185, 129, .1));stroke:var(--d-success);stroke-width:1.4}.rollout-diagram .note-bg{fill:var(--d-note-bg, rgba(202, 138, 4, .1));stroke:none}.rollout-diagram .note{fill:var(--d-note-fg, #92400e);font-family:Nunito,system-ui,-apple-system,sans-serif;font-size:12px;font-weight:500}.rollout-diagram .metric{fill:var(--d-text);font-family:Nunito,system-ui,-apple-system,sans-serif;font-size:13px}.rollout-diagram .fill-muted{fill:var(--d-text-muted)}.rollout-diagram{--d-success-bg: #ecfdf5;--d-note-bg: #fef3c7;--d-note-fg: #92400e}.dark .rollout-diagram{--d-success-bg: #062e22;--d-note-bg: #2a1f08;--d-note-fg: #fcd34d}body.rollout-zoom-active{overflow:hidden}.rollout-zoom-overlay{position:fixed;inset:0;background:#000000e0;backdrop-filter:blur(4px);z-index:100;opacity:0;transition:opacity .25s ease}.rollout-zoom-overlay.active{opacity:1}.rollout-zoom-stage{position:absolute;inset:0;overflow:hidden;cursor:grab;touch-action:none}.rollout-zoom-stage.dragging{cursor:grabbing}.rollout-zoom-canvas{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:3rem;transform-origin:center center;transition:transform .05s linear;will-change:transform;pointer-events:none}.rollout-zoom-canvas svg{display:block;width:min(90vw,1600px);height:auto;max-height:85vh;background:#0a0a0a;border-radius:.75rem;padding:1.5rem;box-shadow:0 25px 60px -20px #0009;border:1px solid rgba(255,255,255,.1)}:root:not(.dark) .rollout-zoom-canvas svg{background:#fff;border:1px solid rgba(0,0,0,.06)}.rollout-zoom-canvas svg text{font-family:Nunito,system-ui,-apple-system,sans-serif}.rollout-zoom-canvas svg .title{font-weight:700;font-size:20px;letter-spacing:.01em}.rollout-zoom-canvas svg .label{font-weight:600;font-size:16px}.rollout-zoom-canvas svg .sublabel{font-size:12px;letter-spacing:.02em}.rollout-zoom-canvas svg .pct{font-family:JetBrains Mono,ui-monospace,Menlo,monospace;font-weight:600;font-size:14px}.rollout-zoom-canvas svg .gate-tag,.rollout-zoom-canvas svg .gate-tag-info{font-weight:700;font-size:11px;letter-spacing:.12em;text-transform:uppercase}.rollout-zoom-canvas svg .rb-label{font-weight:600;font-size:13px}.rollout-zoom-controls{position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:.25rem;padding:.375rem;background:#0f172ae6;border:1px solid rgba(255,255,255,.12);border-radius:999px;color:#e5e7eb;font-family:Nunito,system-ui,-apple-system,sans-serif;backdrop-filter:blur(8px);box-shadow:0 10px 30px -10px #0009}.rollout-zoom-controls button{width:2.25rem;height:2.25rem;border-radius:999px;border:none;background:transparent;color:#e5e7eb;font-size:1.25rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s ease}.rollout-zoom-controls button:hover{background:#ffffff1a}.rollout-zoom-controls button:focus-visible{outline:2px solid #ea580c;outline-offset:2px}.rollout-zoom-controls [data-act=close]{color:#fca5a5;font-size:1.5rem}.rollout-zoom-level{min-width:3rem;text-align:center;font-size:.75rem;font-family:JetBrains Mono,ui-monospace,Menlo,monospace;color:#9ca3af;user-select:none}.rollout-zoom-canvas svg .card{fill:#0f1729;stroke:#ffffff14}.rollout-zoom-canvas svg .card-group{fill:#ffffff05;stroke:#ea580c}.rollout-zoom-canvas svg .track{fill:#ffffff14}.rollout-zoom-canvas svg .legend-bg{fill:#ffffff05;stroke:#ffffff14}.rollout-zoom-canvas svg .rb-badge{fill:#1a0f12;stroke:#ef444480}.rollout-zoom-canvas svg .title,.rollout-zoom-canvas svg .label,.rollout-zoom-canvas svg .pct{fill:#e5e7eb}.rollout-zoom-canvas svg .sublabel{fill:#9ca3af}.rollout-zoom-canvas svg .gate-tag{fill:#ea580c}.rollout-zoom-canvas svg .gate-tag-info{fill:#38bdf8}.rollout-zoom-canvas svg .gate-tag-success{fill:#10b981}.rollout-zoom-canvas svg .rb-label{fill:#fca5a5}.rollout-zoom-canvas svg .stroke-accent,.rollout-zoom-canvas svg .card-accent{stroke:#ea580c}.rollout-zoom-canvas svg .stroke-success,.rollout-zoom-canvas svg .card-success{stroke:#10b981}.rollout-zoom-canvas svg .stroke-info,.rollout-zoom-canvas svg .card-info{stroke:#38bdf8}.rollout-zoom-canvas svg .stroke-danger{stroke:#ef4444}.rollout-zoom-canvas svg .stroke-muted{stroke:#9ca3af}.rollout-zoom-canvas svg .fill-accent,.rollout-zoom-canvas svg .fill-accent-rect{fill:#ea580c}.rollout-zoom-canvas svg .fill-success{fill:#10b981}.rollout-zoom-canvas svg .fill-info{fill:#38bdf8}.rollout-zoom-canvas svg .fill-danger{fill:#ef4444}:root:not(.dark) .rollout-zoom-canvas svg .card{fill:#fff;stroke:#00000014}:root:not(.dark) .rollout-zoom-canvas svg .card-group{fill:#00000005;stroke:#c2410c}:root:not(.dark) .rollout-zoom-canvas svg .track{fill:#0000000f}:root:not(.dark) .rollout-zoom-canvas svg .legend-bg{fill:#00000005;stroke:#00000014}:root:not(.dark) .rollout-zoom-canvas svg .rb-badge{fill:#fef2f2;stroke:#fecaca}:root:not(.dark) .rollout-zoom-canvas svg .title,:root:not(.dark) .rollout-zoom-canvas svg .label,:root:not(.dark) .rollout-zoom-canvas svg .pct{fill:#111827}:root:not(.dark) .rollout-zoom-canvas svg .sublabel{fill:#6b7280}:root:not(.dark) .rollout-zoom-canvas svg .gate-tag{fill:#c2410c}:root:not(.dark) .rollout-zoom-canvas svg .gate-tag-info{fill:#0284c7}:root:not(.dark) .rollout-zoom-canvas svg .gate-tag-success{fill:#059669}:root:not(.dark) .rollout-zoom-canvas svg .rb-label{fill:#991b1b}:root:not(.dark) .rollout-zoom-canvas svg .stroke-accent,:root:not(.dark) .rollout-zoom-canvas svg .card-accent{stroke:#c2410c}:root:not(.dark) .rollout-zoom-canvas svg .stroke-success,:root:not(.dark) .rollout-zoom-canvas svg .card-success{stroke:#059669}:root:not(.dark) .rollout-zoom-canvas svg .stroke-info,:root:not(.dark) .rollout-zoom-canvas svg .card-info{stroke:#0284c7}:root:not(.dark) .rollout-zoom-canvas svg .stroke-danger{stroke:#b91c1c}:root:not(.dark) .rollout-zoom-canvas svg .stroke-muted{stroke:#6b7280}:root:not(.dark) .rollout-zoom-canvas svg .fill-accent,:root:not(.dark) .rollout-zoom-canvas svg .fill-accent-rect{fill:#c2410c}:root:not(.dark) .rollout-zoom-canvas svg .fill-success{fill:#059669}:root:not(.dark) .rollout-zoom-canvas svg .fill-info{fill:#0284c7}:root:not(.dark) .rollout-zoom-canvas svg .fill-danger{fill:#b91c1c}.rollout-zoom-canvas svg .card-danger{stroke:#ef4444}.rollout-zoom-canvas svg .card-soft{fill:#0f1729;stroke:#9ca3af;stroke-dasharray:5 4;opacity:.9}.rollout-zoom-canvas svg .card-compare{fill:#0f1729;stroke:#ea580c}.rollout-zoom-canvas svg .badge-success{fill:#062e22;stroke:#10b981}.rollout-zoom-canvas svg .note-bg{fill:#ca8a0429}.rollout-zoom-canvas svg .note{fill:#fcd34d}.rollout-zoom-canvas svg .metric{fill:#e5e7eb}.rollout-zoom-canvas svg .fill-muted{fill:#9ca3af}:root:not(.dark) .rollout-zoom-canvas svg .card-danger{stroke:#b91c1c}:root:not(.dark) .rollout-zoom-canvas svg .card-soft{fill:#fff;stroke:#6b7280}:root:not(.dark) .rollout-zoom-canvas svg .card-compare{fill:#fff;stroke:#c2410c}:root:not(.dark) .rollout-zoom-canvas svg .badge-success{fill:#ecfdf5;stroke:#059669}:root:not(.dark) .rollout-zoom-canvas svg .note-bg{fill:#ca8a041a}:root:not(.dark) .rollout-zoom-canvas svg .note{fill:#92400e}:root:not(.dark) .rollout-zoom-canvas svg .metric{fill:#111827}:root:not(.dark) .rollout-zoom-canvas svg .fill-muted{fill:#6b7280}
