:root{--bg: #eceef1;--card: #ffffff;--ink: #051c2c;--blue: #2251ff;--grey: #5b6770;--hairline: #d9dde3;--amber-text: #8a5a12;--amber-fill: #f7ecd6;--amber-border: #e6cf9f;--red: #c0392b;--green: #1f7a4d;--serif: "Source Serif 4", Georgia, "Times New Roman", serif;--sans: "Helvetica Neue", Helvetica, Arial, -apple-system, "Segoe UI", sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}::selection{background:#2251ff;color:#fff}:focus{outline:none}:focus-visible{outline:2px solid var(--blue);outline-offset:2px;border-radius:2px}input{caret-color:var(--blue)}.serif{font-family:var(--serif)}.eyebrow{font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--grey)}.clamp2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.clamp3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.clamp4{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.btn{font-family:var(--sans);font-size:13px;font-weight:600;border-radius:3px;border:1px solid transparent;padding:9px 16px;cursor:pointer;transition:background .15s ease-out,border-color .15s ease-out,color .15s ease-out,box-shadow .15s ease-out}.btn-primary{background:var(--blue);color:#fff}.btn-primary:hover{background:#1a41d4;box-shadow:0 3px 10px #2251ff47}.btn-primary:disabled{background:#9fb0e8;cursor:default;box-shadow:none}.btn-ghost{background:#fff;color:var(--ink);border-color:var(--hairline)}.btn-ghost:hover{border-color:var(--ink)}.btn-mini{font-size:12px;font-weight:600;padding:4px 10px;border-radius:3px;border:1px solid var(--hairline);background:#fff;color:var(--ink);cursor:pointer;transition:border-color .15s ease-out,color .15s ease-out,background .15s ease-out}.btn-mini:hover{border-color:var(--blue);color:var(--blue)}.link-btn{background:none;border:none;padding:0;font:inherit;font-size:13px;color:var(--grey);cursor:pointer}.link-btn:hover{color:var(--blue)}.chip{font-size:12px;font-weight:600;padding:6px 13px;border-radius:999px;border:1px solid var(--hairline);background:#fff;color:var(--ink);cursor:pointer;transition:border-color .15s ease-out,background .15s ease-out,color .15s ease-out}.chip:hover{border-color:var(--ink)}.chip.active{background:var(--ink);border-color:var(--ink);color:#fff}.pcard{background:var(--card);border:1px solid var(--hairline);border-radius:4px;padding:16px 18px;cursor:pointer;text-align:left;width:100%;font-family:var(--sans);transition:transform .16s ease-out,box-shadow .16s ease-out,border-color .16s ease-out}.pcard:hover{transform:translateY(-2px);box-shadow:0 8px 22px #051c2c1a;border-color:#c3cad2}.canvas-scroll{overflow-x:auto;overflow-y:hidden;cursor:grab;scrollbar-width:thin;scrollbar-color:#b7bfc9 transparent}.canvas-scroll.dragging{cursor:grabbing;-webkit-user-select:none;user-select:none}.canvas-scroll::-webkit-scrollbar{height:8px}.canvas-scroll::-webkit-scrollbar-track{background:transparent}.canvas-scroll::-webkit-scrollbar-thumb{background:#b7bfc9;border-radius:4px}.canvas-scroll::-webkit-scrollbar-thumb:hover{background:#8f9aa6}.step-card{background:#fff;border:1px solid var(--hairline);border-left:3px solid var(--ink);border-radius:4px;transition:box-shadow .16s ease-out,background .2s ease-out,border-color .2s ease-out}.step-card:hover{box-shadow:0 6px 16px #051c2c14}.step-card.noai{background:var(--amber-fill);border-color:var(--amber-border);border-left-color:var(--amber-text)}@keyframes stage-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.stage-col{animation:stage-in .5s cubic-bezier(.16,1,.3,1) both}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.shimmer{background:linear-gradient(90deg,#eef0f3 25%,#e2e6ea,#eef0f3 75%);background-size:800px 100%;animation:shimmer 1.4s linear infinite;border-radius:4px}@media (max-width: 760px){.grid-2,.stack-grid{grid-template-columns:1fr!important}.step-label{display:none}.step-connector{width:10px!important}.canvas-header{flex-wrap:wrap;gap:12px}}@media (max-width: 1200px){.stack-grid{grid-template-columns:repeat(2,1fr)}}
