/* Round 2: camera layers never share transforms with module content layers. */
.input-scene{transform-origin:700px 405px}
.input-camera{transform:none;will-change:auto}
.work-scene{transform-origin:0 0}
.page-camera{left:144px;top:176px}
.plan{top:150px}
.keywords{top:360px}
.strategy{top:620px}
.execution{top:770px}
.assistant-reply,.keywords,.strategy,.log-row>div:not(.filter-bar),.research-copy,.results-heading,.table-shell{
  mask-image:linear-gradient(to bottom,#000 0%,#000 calc(var(--mask-end,0%) - 12%),transparent var(--mask-end,0%));
}
/* One open, connected stepper across the existing content width. No added cards. */
.plan-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.plan-step{height:112px;display:block;position:relative}
.step-marker{position:absolute;left:0;top:0;z-index:1;background:#efeff4}
.plan-step:first-child .step-marker{background:rgb(calc(239 - 1 * var(--active,0)) calc(239 - 2 * var(--active,0)) calc(244 + 8 * var(--active,0)));color:rgb(calc(150 - 47 * var(--active,0)) calc(150 - 49 * var(--active,0)) calc(160 + 65 * var(--active,0)));box-shadow:0 0 0 4px rgba(103,101,225,calc(.06 * var(--active,0)))}
.plan-step .step-name{display:block;position:absolute;top:44px;left:0;right:0;line-height:30px;mask-image:linear-gradient(to right,#000 0%,#000 calc(var(--step-reveal,0%) - 12%),transparent var(--step-reveal,0%))}
.plan-step .step-status{position:absolute;left:0;top:78px;margin:0;line-height:24px}
.plan-step:first-child .step-status{color:#6765e1}
.plan-step:not(:last-child):after{top:12px;left:36px;width:calc(100% - 8px);height:1px;background:#dcdbee;transform:scaleX(var(--line-progress,0));transform-origin:left center}
.strategy-chips span{border-color:rgb(calc(237 - 20 * var(--confirmed,0)) calc(237 - 21 * var(--confirmed,0)) calc(242 + 1 * var(--confirmed,0)));background:rgb(calc(247 - 1 * var(--confirmed,0)) calc(247 - 2 * var(--confirmed,0)) calc(250 + 4 * var(--confirmed,0)))}
/* The same rail links filtering, completion and research; state replaces decoration. */
.execution-log{position:relative;border-left-color:#efeff6}
.execution-log:before{content:"";position:absolute;left:-1px;top:0;bottom:0;width:1px;background:#9c99e8;transform:scaleY(var(--rail-progress,0));transform-origin:top}
.filter-step:before,.research-step:before{content:"";position:absolute;left:-38px;top:6px;width:14px;height:14px;border:1px solid #6765e1;border-radius:50%;background:#fff;opacity:calc(1 - var(--completion,0))}
.filter-step:after,.research-step:after{content:"";position:absolute;left:-34px;top:10px;width:6px;height:6px;background:#6765e1;border-radius:50%;opacity:calc(1 - var(--completion,0))}
.execution-dot{box-shadow:0 0 0 4px rgba(103,101,225,calc(.04 + .03 * var(--executed,0)))}

