.stage{position:relative;padding:1.6rem 0 2rem 4.5rem;border-bottom:1px dashed color-mix(in oklab,var(--color-base-content) 12%,transparent)}.stage:last-child{border-bottom:none}.stage:before{content:"";position:absolute;left:1.85rem;top:0;bottom:0;width:1px;background:linear-gradient(to bottom,transparent 0%,color-mix(in oklab,var(--color-primary) 35%,transparent) 8%,color-mix(in oklab,var(--color-primary) 35%,transparent) 92%,transparent 100%)}.stage-head{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;gap:.2rem 1rem;margin-bottom:1rem;align-items:start}.stage-num{grid-row:1 / span 2;grid-column:1;position:absolute;left:0;top:1.25rem;width:3.7rem;text-align:center;font-family:var(--font-serif);font-style:italic;font-weight:500;font-size:1.6rem;line-height:1;color:var(--color-primary);background:var(--color-base-100);padding:.3rem 0;z-index:1}.stage-title{grid-row:1;grid-column:2}.stage-name{margin:0;font-family:var(--font-mono);font-size:.85rem;text-transform:uppercase;letter-spacing:.16em;color:var(--color-base-content);font-weight:500}.stage-subtitle{margin:.25rem 0 0;font-style:italic;font-size:1rem;color:color-mix(in oklab,var(--color-base-content) 70%,transparent)}.stage-flow{grid-row:2;grid-column:2;display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin-top:.55rem}.stage-pill{display:inline-block;padding:.18rem .55rem;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.04em;border:1px solid color-mix(in oklab,var(--color-base-content) 22%,transparent);background:color-mix(in oklab,var(--color-base-200) 50%,transparent);color:color-mix(in oklab,var(--color-base-content) 80%,transparent)}.stage-pill-in{border-color:color-mix(in oklab,var(--color-base-content) 25%,transparent)}.stage-pill-out{border-color:color-mix(in oklab,var(--color-primary) 50%,transparent);color:var(--color-primary);background:color-mix(in oklab,var(--color-primary) 6%,transparent)}.stage-arrow{font-family:var(--font-mono);color:color-mix(in oklab,var(--color-base-content) 45%,transparent);margin:0 .15rem}.stage-body{display:grid;gap:.6rem}.stage-body>p{margin:0;line-height:1.55;color:color-mix(in oklab,var(--color-base-content) 92%,transparent)}@media(max-width:720px){.stage{padding-left:0}.stage:before{display:none}.stage-num{position:static;grid-row:1;grid-column:1;text-align:left;width:auto;padding:0;font-size:1.2rem}.stage-head{grid-template-columns:auto 1fr}}.artifact{margin:.5rem 0 .2rem;border:1px solid color-mix(in oklab,var(--color-base-content) 18%,transparent);background:color-mix(in oklab,var(--color-base-200) 30%,var(--color-base-100));overflow:hidden}.artifact-head{display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding:.42rem .75rem;background:color-mix(in oklab,var(--color-base-200) 80%,var(--color-base-100));border-bottom:1px solid color-mix(in oklab,var(--color-base-content) 14%,transparent);font-family:var(--font-mono);font-size:.66rem;letter-spacing:.06em}.artifact-path{color:color-mix(in oklab,var(--color-base-content) 85%,transparent);font-size:.7rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.artifact-meta{display:inline-flex;gap:.55rem;color:color-mix(in oklab,var(--color-base-content) 55%,transparent);text-transform:uppercase;letter-spacing:.1em;flex-shrink:0}.artifact-lang{color:var(--color-primary)}.artifact-pre{margin:0;padding:.85rem .95rem;font-family:var(--font-mono);font-size:.72rem;line-height:1.55;color:color-mix(in oklab,var(--color-base-content) 92%,transparent);overflow-x:auto;background:transparent;background-image:linear-gradient(to bottom,transparent 0,transparent calc(1.55em - 1px),color-mix(in oklab,var(--color-base-content) 3%,transparent) calc(1.55em - 1px),color-mix(in oklab,var(--color-base-content) 3%,transparent) 1.55em);background-size:100% 1.55em}.artifact-caption{padding:.45rem .75rem;font-size:.78rem;font-style:italic;color:color-mix(in oklab,var(--color-base-content) 65%,transparent);border-top:1px solid color-mix(in oklab,var(--color-base-content) 8%,transparent);background:color-mix(in oklab,var(--color-base-200) 50%,transparent)}
