.panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin:0 0 16px}.panel-head h1{margin:0}.how-link{font-size:11.5px;font-weight:500;color:var(--verdigris);text-decoration:none;border-bottom:1px solid transparent}.how-link:hover{border-bottom-color:currentColor}.gate-card .gate-how{align-self:center;margin-top:4px}.lp{--ink-soft: #3a434f;--store: #3f5c8f;position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;overflow-y:auto;overscroll-behavior:contain;background:var(--paper);color:var(--ink);font-family:Archivo,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}.lp :focus-visible{outline:2px solid var(--verdigris);outline-offset:3px;border-radius:6px}.lp-bar{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:20px;padding:0 28px;height:58px;background:#fafaf8e6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--rule)}.lp-mark{font:inherit;font-size:18px;font-weight:650;letter-spacing:-.02em;background:none;border:0;padding:0;color:var(--ink);cursor:pointer}.lp-nav{position:relative;display:flex;gap:4px;flex:1;min-width:0;height:100%;overflow-x:auto;scrollbar-width:none}.lp-nav::-webkit-scrollbar{display:none}.lp-nav button{position:relative;flex:none;height:100%;font:inherit;font-size:13.5px;font-weight:500;color:var(--graphite);white-space:nowrap;background:none;border:0;padding:0 10px;cursor:pointer;transition:color .2s var(--eink)}.lp-nav button:after{content:"";position:absolute;left:10px;right:10px;bottom:-1px;height:2px;background:var(--verdigris);transform:scaleX(0);transform-origin:left;transition:transform .26s var(--eink)}.lp-nav button:hover{color:var(--ink)}.lp-nav button[aria-current=true]{color:var(--ink);font-weight:650}.lp-nav button[aria-current=true]:after{transform:scaleX(1)}.lp-bar-try{font:inherit;font-size:13px;font-weight:650;white-space:nowrap;cursor:pointer;padding:8px 14px;border-radius:8px;border:0;background:var(--ink);color:#fff}.lp-bar-try:hover{background:var(--verdigris-deep)}.lp-hero{max-width:1200px;margin:0 auto;padding:72px 28px 40px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:center}.lp-hero h1{font-size:clamp(40px,5vw,72px);line-height:1;font-weight:500;letter-spacing:-.045em;margin:0;text-wrap:balance}.lp-sub{font-size:19px;line-height:1.5;color:var(--ink-soft);max-width:36ch;margin:26px 0 34px}.lp-try{font:inherit;cursor:pointer;font-size:clamp(20px,2.2vw,26px);font-weight:600;letter-spacing:-.01em;padding:26px 56px;border:0;border-radius:14px;background:var(--verdigris);color:#fff;box-shadow:0 1px 0 var(--verdigris-deep),0 14px 30px -12px #2e6f628c;transition:background .18s var(--eink),transform .18s var(--eink),box-shadow .18s var(--eink)}.lp-try:hover{background:var(--verdigris-deep);transform:translateY(-2px);box-shadow:0 1px 0 var(--verdigris-deep),0 20px 36px -14px #2e6f6299}.lp-try:active{transform:translateY(0)}.lp-hero-note{margin:16px 0 0;font-size:13.5px;color:var(--graphite)}.lp-hero-art{margin:0;border-radius:18px;padding:18px;background:linear-gradient(to right,rgba(21,26,34,.05) 1px,transparent 1px) 0 0 / 26px 26px,linear-gradient(to bottom,rgba(21,26,34,.05) 1px,transparent 1px) 0 0 / 26px 26px,var(--surface);border:1px solid var(--rule)}.lp-ask{margin:0 0 18px;padding:12px 16px;border-radius:12px 12px 12px 3px;background:var(--ink);color:#fff;font-size:14.5px;line-height:1.45;max-width:46ch;animation:hd-in .42s var(--eink) both}.hd{display:block;width:100%;height:auto;overflow:visible}.hd text{font-family:Archivo,sans-serif}.hd-box rect{fill:#fff;stroke:var(--rule-strong);stroke-width:1.2}.hd-box .hd-kind{stroke:none;fill:var(--graphite)}.hd-box.client .hd-kind{fill:var(--ink)}.hd-box.external .hd-kind{fill:var(--ochre)}.hd-box.datastore .hd-kind{fill:var(--store)}.hd-box.queue .hd-kind{fill:#1f7d86}.hd-box.service .hd-kind{fill:var(--verdigris)}.hd-box text{font-size:15px;font-weight:600;fill:var(--ink)}.hd-group rect{fill:#2e6f620a;stroke:#2e6f6266;stroke-dasharray:5 4}.hd-group text{font-size:12px;font-weight:600;fill:var(--verdigris)}.hd-edge path{fill:none;stroke:var(--ink-soft);stroke-width:1.6;stroke-dasharray:1;stroke-dashoffset:0}.hd-edge text{font-size:11px;fill:var(--graphite)}#hd-arrow path{fill:var(--ink-soft)}.hd-box,.hd-group,.hd-edge text{animation:hd-in .52s var(--eink) both;animation-delay:calc(var(--d) + .3s)}.hd-edge path{animation:hd-stroke .62s var(--eink) both;animation-delay:calc(var(--d) + .3s)}.hd-edge text{animation-delay:calc(var(--d) + .66s)}@keyframes hd-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes hd-stroke{0%{stroke-dashoffset:1;opacity:0}1%{opacity:1}to{stroke-dashoffset:0;opacity:1}}.lp-page{max-width:1200px;margin:0 auto;padding:0 28px}.lp-section{padding-top:88px;scroll-margin-top:58px}.lp-section h2{font-size:15px;font-weight:650;color:var(--verdigris);margin:0;letter-spacing:0}.lp-takeaway{font-size:clamp(24px,2.7vw,36px);line-height:1.18;font-weight:500;letter-spacing:-.03em;max-width:30ch;margin:10px 0 36px;text-wrap:balance}.lp-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 56px}.lp-result{border-top:2px solid var(--ink);padding-top:18px}.lp-result h3{font-size:19px;font-weight:600;letter-spacing:-.015em;line-height:1.25;margin:0 0 18px}.lp-result p{margin:14px 0 0;font-size:13.5px;line-height:1.5;color:var(--graphite)}.lp-bar-row{display:grid;grid-template-columns:96px minmax(0,1fr) 54px;gap:10px;align-items:center;margin-top:8px}.lp-bar-label{font-size:13px;color:var(--graphite)}.lp-bar-track{height:14px;border-radius:3px;background:#eef0ec;overflow:hidden}.lp-bar-track i{display:block;height:100%;border-radius:3px;background:var(--rule-strong)}.lp-bar-value{font-size:20px;font-weight:500;letter-spacing:-.02em;text-align:right;font-variant-numeric:tabular-nums;color:var(--graphite)}.lp-bar-row.boxr .lp-bar-label{color:var(--ink);font-weight:650}.lp-bar-row.boxr .lp-bar-track i{background:var(--verdigris)}.lp-bar-row.boxr .lp-bar-value{color:var(--verdigris-deep)}.lp-shortfalls{margin-top:44px;padding:18px 22px;border-radius:10px;background:var(--surface);border:1px solid var(--rule)}.lp-shortfalls h3{margin:0 0 8px;font-size:14px;font-weight:650;color:var(--rust)}.lp-shortfalls ul{margin:0;padding-left:18px;display:grid;gap:4px}.lp-shortfalls li{font-size:14.5px;line-height:1.5;color:var(--ink-soft)}.lp-method{margin-top:16px}.lp-method summary{cursor:pointer;font-size:13.5px;font-weight:600;color:var(--graphite);width:fit-content}.lp-method summary:hover{color:var(--ink)}.lp-method p{margin:10px 0 0;max-width:72ch;font-size:13.5px;line-height:1.55;color:var(--graphite)}.lp-steps{list-style:none;counter-reset:step;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0}.lp-steps li{counter-increment:step;position:relative;padding:0 24px 0 0}.lp-steps li:before{content:counter(step);display:grid;place-items:center;width:38px;height:38px;margin-bottom:16px;border-radius:50%;background:var(--paper);border:1.5px solid var(--verdigris);color:var(--verdigris-deep);font-size:15px;font-weight:700;position:relative;z-index:1}.lp-steps li:not(:last-child):after{content:"";position:absolute;top:19px;left:38px;right:0;height:1.5px;background:var(--rule-strong)}.lp-steps b{display:block;font-size:18px;font-weight:600;letter-spacing:-.01em;margin-bottom:6px}.lp-steps span{display:block;font-size:14.5px;line-height:1.5;color:var(--graphite);max-width:30ch}.lp-parts{border-top:2px solid var(--ink)}.lp-part{border-bottom:1px solid var(--rule)}.lp-part summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:180px minmax(0,1fr) minmax(0,auto) 20px;gap:20px;align-items:center;padding:16px 4px}.lp-part summary::-webkit-details-marker{display:none}.lp-part summary:after{content:"";justify-self:end;width:9px;height:9px;border-right:2px solid var(--pencil);border-bottom:2px solid var(--pencil);transform:rotate(45deg) translateY(-3px);transition:transform .22s var(--eink)}.lp-part[open] summary:after{transform:rotate(225deg) translateY(-2px)}.lp-part summary:hover .lp-part-name{color:var(--verdigris-deep)}.lp-part-name{font-size:15px;font-weight:600;color:var(--graphite)}.lp-part-value{font-size:17px;font-weight:600;line-height:1.3}.lp-chips{display:flex;flex-wrap:wrap;gap:5px;justify-content:flex-end}.lp-chips span{font-size:12px;padding:3px 8px;border-radius:999px;background:#eef0ec;color:var(--ink-soft);white-space:nowrap}.lp-part-body{margin:0;padding:0 4px 20px 204px;max-width:900px;font-size:14.5px;line-height:1.55;color:var(--ink-soft)}.lp-built-note{margin:18px 0 0;font-size:14.5px;color:var(--graphite)}.lp-papers{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px}.lp-paper{display:flex;flex-direction:column;gap:10px;padding-top:16px;border-top:3px solid var(--ochre)}.lp-found{margin:0;font-size:16.5px;font-weight:600;line-height:1.35}.lp-applied{margin:0;font-size:14px;line-height:1.5;color:var(--ink-soft);padding-left:12px;border-left:2px solid var(--verdigris)}.lp-paper a{margin-top:auto;font-size:13px;color:var(--graphite);text-decoration:underline;text-decoration-color:var(--rule-strong);text-underline-offset:3px}.lp-paper a:hover{color:var(--ochre);text-decoration-color:currentColor}.lp-end{margin:112px 0 0;padding:96px 28px 110px;text-align:center;background:var(--ink);color:#fff}.lp-end h2{font-size:clamp(30px,4.6vw,60px);line-height:1.05;font-weight:500;letter-spacing:-.045em;margin:0 auto 40px;max-width:18ch;text-wrap:balance}.lp-end .lp-try{box-shadow:none}@media (max-width: 1000px){.lp-hero{grid-template-columns:minmax(0,1fr);padding-top:48px;gap:36px}.lp-results{grid-template-columns:minmax(0,1fr);gap:32px}.lp-steps{grid-template-columns:minmax(0,1fr);gap:20px}.lp-steps li{display:grid;grid-template-columns:38px minmax(0,1fr);column-gap:16px;padding:0}.lp-steps li:before{grid-row:1 / 3;margin:0}.lp-steps li:not(:last-child):after{top:38px;bottom:-20px;left:18px;right:auto;width:1.5px;height:auto}.lp-papers{grid-template-columns:repeat(2,minmax(0,1fr))}.lp-part summary{grid-template-columns:minmax(0,1fr) 20px;gap:6px 12px}.lp-part-name,.lp-part-value{grid-column:1}.lp-chips{grid-column:1;justify-content:flex-start}.lp-part summary:after{grid-column:2;grid-row:1 / 4;align-self:center}.lp-part-body{padding-left:4px}}@media (max-width: 760px){.lp-bar{padding:0 16px;gap:10px}.lp-mark{display:none}.lp-hero,.lp-page{padding-left:16px;padding-right:16px}.lp-sub{font-size:17px}.lp-try{width:100%;padding:22px 24px}.lp-section{padding-top:72px}.lp-papers{grid-template-columns:minmax(0,1fr)}.lp-end{padding:72px 16px 84px}}@media (prefers-reduced-motion: reduce){.lp-ask,.hd-box,.hd-group,.hd-edge text,.hd-edge path{animation:none}.lp-nav button:after,.lp-try,.lp-part summary:after{transition:none}}:root{--paper: #fafaf8;--surface: #ffffff;--ink: #151a22;--graphite: #5c6673;--pencil: #8b939e;--rule: #e4e6e2;--rule-strong: #cfd3ce;--verdigris: #2e6f62;--verdigris-deep: #245a4f;--verdigris-wash: #edf3f1;--ochre: #8f5e14;--ochre-wash: #fbf4e6;--rust: #9e3b2e;--rust-wash: #fbeeec;--shadow-float: 0 6px 24px rgba(21, 26, 34, .09);--shadow-rest: 0 1px 2px rgba(21, 26, 34, .05);font-family:Archivo,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;font-feature-settings:"ss01","cv01";color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased}:focus-visible{outline:2px solid var(--verdigris);outline-offset:2px;border-radius:4px}.app{display:flex;height:100%}.canvas{flex:1;min-width:0;position:relative}.canvas.empty .react-flow__background{opacity:0}.grid-drift{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;z-index:0;opacity:1;transition:opacity .9s var(--eink);-webkit-mask-image:radial-gradient(ellipse 72% 68% at 50% 48%,#000 30%,transparent 100%);mask-image:radial-gradient(ellipse 72% 68% at 50% 48%,#000 30%,transparent 100%)}.grid-drift.gone{opacity:0}.grid-drift:before,.grid-drift:after{content:"";position:absolute;top:-160px;right:-160px;bottom:-160px;left:-160px;background-size:160px 160px,160px 160px,32px 32px,32px 32px;animation:grid-drift 28s linear infinite;will-change:transform}.grid-drift:before{background-image:linear-gradient(to right,rgba(21,26,34,.075) 1px,transparent 1px),linear-gradient(to bottom,rgba(21,26,34,.075) 1px,transparent 1px),linear-gradient(to right,rgba(21,26,34,.038) 1px,transparent 1px),linear-gradient(to bottom,rgba(21,26,34,.038) 1px,transparent 1px)}.grid-drift:after{background-image:linear-gradient(to right,rgba(46,111,98,.55) 1px,transparent 1px),linear-gradient(to bottom,rgba(46,111,98,.55) 1px,transparent 1px),linear-gradient(to right,rgba(46,111,98,.22) 1px,transparent 1px),linear-gradient(to bottom,rgba(46,111,98,.22) 1px,transparent 1px);-webkit-mask-image:radial-gradient(circle closest-side,#000,transparent);mask-image:radial-gradient(circle closest-side,#000,transparent);-webkit-mask-size:560px 560px;mask-size:560px 560px;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;opacity:.45;transition:opacity .7s var(--eink);animation:grid-drift 28s linear infinite,grid-glow 19s ease-in-out infinite alternate}.grid-drift.busy:after{opacity:1}@keyframes grid-drift{0%{transform:translateZ(0)}to{transform:translate3d(160px,160px,0)}}@keyframes grid-glow{0%{-webkit-mask-position:18% 26%;mask-position:18% 26%}35%{-webkit-mask-position:74% 20%;mask-position:74% 20%}70%{-webkit-mask-position:62% 78%;mask-position:62% 78%}to{-webkit-mask-position:24% 70%;mask-position:24% 70%}}.panel{width:236px;flex:none;padding:18px 16px 24px;border-right:1px solid var(--rule);background:var(--surface);overflow-y:auto;font-size:12px}.panel h1{font-size:15px;font-weight:600;letter-spacing:-.01em;margin:0 0 16px}.legend-title{margin:22px 0 8px;padding-top:9px;border-top:1px solid var(--rule);font-size:11px;font-weight:600;color:var(--graphite)}.panel>.legend-title:first-of-type{margin-top:0;padding-top:0;border-top:0}.panel .sub{color:var(--graphite);font-size:11px;line-height:1.5;margin:8px 0 12px}.muted{margin:3px 0 0;font-size:10.5px;color:var(--pencil);line-height:1.45}.seg{display:flex;gap:2px;padding:2px;border:1px solid var(--rule);border-radius:8px}.seg button{flex:1;padding:5px 4px;font:inherit;font-size:11px;text-transform:capitalize;border:0;border-radius:6px;background:transparent;color:var(--graphite);cursor:pointer;transition:color .16s var(--eink),background .16s var(--eink)}.seg button:hover:not(.on){color:var(--ink)}.seg button.on{background:var(--verdigris-wash);color:var(--verdigris-deep);font-weight:600}.stat{margin:14px 0 4px;padding:8px 0 0;border-top:1px dotted var(--rule-strong);font-size:10.5px;color:var(--graphite)}.stat b{color:var(--ink);font-weight:600}.sessions{display:flex;flex-direction:column;gap:1px}.session-new{margin-bottom:6px;padding:6px 8px;cursor:pointer;font:inherit;font-size:11px;font-weight:600;text-align:left;border:1px solid var(--rule);border-radius:7px;background:transparent;color:var(--ink);transition:border-color .16s var(--eink),background .16s var(--eink)}.session-new:hover{border-color:var(--verdigris);color:var(--verdigris-deep)}.session-row{display:flex;align-items:stretch;gap:2px;border-radius:7px}.session-row:hover{background:#f4f5f3}.session-row.on{background:var(--verdigris-wash)}.session-title{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px;padding:6px 8px;font:inherit;text-align:left;border:0;background:transparent;color:var(--graphite);cursor:pointer}.session-row.on .session-title{color:var(--verdigris-deep);font-weight:600}.session-name{font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-time{font-size:10px;color:var(--pencil)}.session-del{flex:none;width:22px;border:0;background:transparent;color:var(--pencil);font-size:15px;line-height:1;cursor:pointer;border-radius:6px}.session-del:hover{background:var(--rust-wash);color:var(--rust)}.flows{display:flex;flex-direction:column;gap:1px}.flow{display:flex;align-items:center;gap:9px;width:100%;padding:6px 8px;font:inherit;font-size:11px;text-align:left;border:0;border-radius:7px;background:transparent;color:var(--graphite);cursor:pointer}.flow:hover{background:#f4f5f3;color:var(--ink)}.flow.on{background:var(--verdigris-wash);color:var(--verdigris-deep);font-weight:600}.flow .dot{width:8px;height:8px;border-radius:50%;flex:none}.flow>span:nth-child(2){flex:1}.flow .n{color:var(--pencil);font-size:10px;font-weight:400}.legend{display:flex;flex-direction:column;gap:3px}.legend-row{display:flex;align-items:center;gap:9px;font-size:10.5px;color:var(--graphite)}.model{width:100%;font:inherit;font-size:11px;padding:6px 7px;border:1px solid var(--rule);border-radius:7px;background:var(--surface);color:var(--ink)}.model:focus-visible{border-color:var(--verdigris)}.model+.model,.model+.keyhint{margin-top:6px}.model.key{font-family:IBM Plex Mono,ui-monospace,monospace;letter-spacing:.06em}.keyhint{font-size:10px;color:var(--pencil);line-height:1.45;margin:6px 0 0}.conn{display:flex;align-items:center;gap:7px;margin-top:10px;font-size:10.5px;color:var(--graphite)}.conn .pip{width:6px;height:6px;border-radius:50%;background:var(--rule-strong);flex:none}.conn.ready .pip{background:var(--verdigris)}.conn.running .pip{background:var(--ochre);animation:pulse 1.1s ease-in-out infinite}.conn.offline .pip{background:var(--rust)}@keyframes pulse{50%{opacity:.25}}.retry,.sel-clear,.context-clear,.q-skip{font:inherit;font-size:10.5px;cursor:pointer;color:var(--verdigris-deep);border:0;background:none;padding:0;text-decoration:underline;text-underline-offset:2px}.retry{margin-left:auto}.sel-clear{margin-top:10px}.context-clear,.q-skip{color:var(--pencil)}.context-clear:hover,.q-skip:hover:not(:disabled){color:var(--ink)}.route,.usage-details{margin-top:8px;font-size:10.5px;color:var(--graphite)}.route summary,.usage-details summary{cursor:pointer;list-style:none;line-height:1.45;display:flex;align-items:baseline;justify-content:space-between;gap:6px}.route summary::-webkit-details-marker,.usage-details summary::-webkit-details-marker{display:none}.route summary:after,.usage-details summary:after{content:"Details";flex:none;font-weight:600;color:var(--verdigris-deep)}.route[open] summary:after,.usage-details[open] summary:after{content:"Hide"}.route-list{margin-top:8px;padding-left:10px;border-left:1px solid var(--rule);display:flex;flex-direction:column;gap:5px}.route-row{display:flex;justify-content:space-between;gap:8px}.route-row span:first-child{font-weight:600;color:var(--ink)}.route-row span:last-child{text-align:right;color:var(--verdigris-deep)}.notice{margin:8px 0 0;font-size:10.5px;line-height:1.45;color:var(--verdigris-deep)}.err,.warn{margin:8px 0 0;font-size:10.5px;line-height:1.45}.err{color:var(--rust)}.warn{color:var(--ochre)}.selected{border-top:1px solid var(--rule);margin-top:16px;padding-top:0}.sel-label{font-size:13px;font-weight:600}.sel-kind{font-size:10.5px;color:var(--pencil);margin-top:2px;text-transform:capitalize}.sel-summary{font-size:11px;color:var(--graphite);line-height:1.5;margin:7px 0 0}.sel-conns{margin-top:11px;display:flex;flex-direction:column;gap:5px}.sel-conn{font-size:10.5px;line-height:1.4;color:var(--graphite)}.sel-conn .dir{color:var(--pencil);margin-right:5px}.sel-conn .peer{font-weight:600;color:var(--ink)}.sel-conn .payload{display:block;margin-left:16px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:9.5px;color:var(--pencil)}.export-row,.transport{display:flex;gap:5px;margin-bottom:6px}.export-row.build button{flex:1;font-weight:600;color:var(--verdigris-deep)}.fill-contracts{width:100%;margin:0 0 6px;padding:6px 8px;cursor:pointer;font:inherit;font-size:11px;line-height:1.35;text-align:left;color:var(--ochre);background:var(--ochre-wash);border:1px solid #ecd9b4;border-radius:7px}.fill-contracts:hover:not(:disabled){border-color:var(--ochre)}.fill-contracts:disabled{opacity:.5;cursor:default}.export-row button,.transport button,.reset{flex:1;padding:6px 4px;font:inherit;font-size:10.5px;cursor:pointer;border:1px solid var(--rule);border-radius:7px;background:var(--surface);color:var(--graphite);transition:border-color .16s var(--eink),color .16s var(--eink)}.export-row button:hover,.transport button:hover:not(:disabled),.reset:hover{border-color:var(--verdigris);color:var(--verdigris-deep)}.transport button.on{background:var(--verdigris-wash);color:var(--verdigris-deep);font-weight:600}.transport button:disabled{opacity:.4;cursor:default}.reset{width:100%;margin-top:6px}.disclose{width:100%;margin-top:22px;padding:9px 0 0;text-align:left;font:inherit;font-size:10.5px;color:var(--pencil);cursor:pointer;border:0;border-top:1px solid var(--rule);border-radius:0;background:none}.disclose:hover{color:var(--ink)}.options{padding-top:8px}.row{display:block;margin-bottom:9px}.row>span{display:block;color:var(--graphite);font-size:10.5px;margin-bottom:4px}.row>span b{color:var(--ink);font-weight:600}.row select,.row input[type=range]{width:100%}.row select{font:inherit;font-size:11px;padding:4px 5px;border:1px solid var(--rule);border-radius:6px;background:var(--surface)}.panel label.row.toggle{display:flex;align-items:center;gap:8px;margin:10px 0 12px}.panel label.row.toggle>span{display:inline;margin:0;font-size:11px;color:var(--ink)}.panel label.row.toggle input{width:auto;margin:0;flex:none;cursor:pointer;accent-color:var(--verdigris)}.progress{height:2px;border-radius:1px;background:var(--rule);overflow:hidden}.progress>div{height:100%;background:var(--verdigris);transition:width .3s ease}.batchline{margin-top:8px;font-size:10.5px;color:var(--graphite)}.tag{display:inline-block;padding:1px 6px;border-radius:4px;font-size:10px;font-weight:600}.tag.applied{background:var(--verdigris-wash);color:var(--verdigris-deep)}.tag.queued{background:var(--ochre-wash);color:var(--ochre)}.tag.rejected{background:var(--rust-wash);color:var(--rust)}.note{margin:6px 0 0;font-size:11px;color:var(--ink);line-height:1.4}.queue{margin-top:10px;padding:8px 9px;font-size:10.5px;line-height:1.5;background:var(--ochre-wash);border-radius:7px;color:var(--ochre)}.qrow{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:9.5px;opacity:.85}.node{position:relative;width:100%;height:100%;padding:7px 9px 7px 11px;border-radius:6px;border:1px solid var(--rule-strong);background:var(--surface);box-shadow:var(--shadow-rest);overflow:hidden;transition:opacity .18s ease,border-color .18s ease,box-shadow .18s ease}.node-label{font-size:11.5px;font-weight:600;line-height:1.25;letter-spacing:-.005em}.node-summary{font-size:9.5px;color:var(--graphite);line-height:1.3;margin-top:2px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.node:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px}.kind-client:before{background:#3f5c8f}.kind-service:before{background:#2e6f62}.kind-datastore:before{background:#8f5e14}.kind-queue:before{background:#1f7d86}.kind-job:before{background:#4a7a3a}.kind-external:before{background:#9aa2ad}.status-stub{border-style:dashed;background:#f7f8f6}.status-stub .node-label{color:var(--graphite);font-weight:500}.status-settled{border-color:var(--graphite)}.node.pending{border-color:var(--ochre)!important;border-style:dashed!important;background:#fdfaf4}.pending-dot{position:absolute;top:6px;right:6px;width:5px;height:5px;border-radius:50%;background:var(--ochre)}.badges{display:flex;flex-wrap:nowrap;overflow:hidden;gap:3px;margin-top:4px}.badge{font-size:8.5px;line-height:1;padding:3px 5px;border-radius:3px;background:#f2f3f1;color:var(--graphite);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:78px}.badge.more{flex:none;color:var(--pencil)}.node.collapsed{border-style:solid;border-color:var(--rule-strong);background:#f7f8f6;border-left:3px solid var(--graphite);padding-left:9px;cursor:pointer}.node.collapsed:before{display:none}.collapsed-meta{font-size:9px;color:var(--pencil);margin-top:3px}.node.dim,.group.dim{opacity:.16}.group.dim{opacity:.35}.group{width:100%;height:100%;border:1px solid var(--rule);border-radius:10px;background:#2e6f6206;cursor:pointer;transition:opacity .18s ease}.group-label{padding:8px 12px;font-size:10px;font-weight:600;color:var(--graphite);letter-spacing:.01em}.node.selected{border-color:var(--verdigris)!important;box-shadow:0 0 0 3px #2e6f6224,var(--shadow-rest)}.node.fresh{border-color:var(--verdigris)!important;animation:eink-settle .52s var(--eink) both,fresh-glow 3.4s ease-out both}@keyframes fresh-glow{0%,55%{box-shadow:0 0 0 4px #2e6f6242}to{box-shadow:0 0 #2e6f6200}}.react-flow__handle{opacity:0;width:1px;height:1px;min-width:0;min-height:0;border:0}.react-flow__edge-text{font-size:9px}.react-flow__attribution{opacity:.35;font-size:9px}.react-flow__controls,.react-flow__minimap{box-shadow:var(--shadow-rest)!important;border:1px solid var(--rule);border-radius:8px;overflow:hidden}.react-flow__minimap{margin:52px 16px 0 0}.canvas{--z: 1}.edge-chip{transition:opacity .16s var(--eink)}.lod-overview .edge-chip:not(.keep),.lod-map .edge-chip:not(.keep){opacity:0}.lod-map .node-summary,.lod-map .badges,.lod-map .pending-dot{visibility:hidden}.group{position:relative}.lod-overview .group.top .group-label,.lod-map .group.top .group-label{position:absolute;left:-1px;top:0;white-space:nowrap;padding:3px 9px 2px;background:var(--paper);color:var(--ink);border:1px solid var(--rule-strong);border-bottom:0;border-radius:6px 6px 0 0;transform-origin:0 100%;transform:translateY(-100%) scale(min(2.8,max(1,calc(1.05 / var(--z)))))}.node.faded{opacity:.28}.zoom-bar{position:absolute;left:16px;bottom:16px;z-index:11;display:flex;flex-direction:column;gap:1px;padding:3px;background:var(--surface);border:1px solid var(--rule-strong);border-radius:10px;box-shadow:var(--shadow-rest)}.zoom-bar button{width:30px;height:28px;display:grid;place-items:center;padding:0;border:0;border-radius:7px;background:none;color:var(--graphite);cursor:pointer;transition:background .14s var(--eink),color .14s var(--eink)}.zoom-bar button:hover:not(:disabled){background:#f1f3ef;color:var(--ink)}.zoom-bar button:disabled{opacity:.35;cursor:default}.zoom-bar button.on{background:var(--verdigris-wash);color:var(--verdigris-deep)}.zoom-bar .zoom-pct{height:22px;font:inherit;font-size:10px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}.zoom-sep{height:1px;margin:3px 5px;background:var(--rule)}.stack-index{position:absolute;left:16px;top:16px;z-index:11;display:flex;flex-direction:column;padding:4px 0;max-height:calc(100% - 300px);overflow-y:auto;scrollbar-width:none}.stack-index:before{content:"";position:absolute;left:4px;top:10px;bottom:10px;width:1px;background:var(--rule-strong)}.stack-row{position:relative;display:flex;align-items:baseline;gap:10px;padding:4px 12px 4px 16px;font:inherit;text-align:left;cursor:pointer;background:#fafaf8e0;border:0;border-radius:0 7px 7px 0;transition:background .14s var(--eink)}.stack-tick{position:absolute;left:3px;top:5px;bottom:5px;width:3px;border-radius:2px;overflow:hidden;background:var(--rule)}.stack-tick span{display:block;width:100%;height:100%;background:var(--verdigris);transform-origin:top;transition:transform .12s linear}.stack-label{font-size:11.5px;font-weight:500;color:var(--graphite);transition:color .14s var(--eink)}.stack-row.in-view .stack-label{color:var(--ink)}.stack-count{font-size:10px;color:var(--pencil);font-variant-numeric:tabular-nums}.stack-row:hover{background:#eff2ee}.stack-row:hover .stack-label{color:var(--verdigris-deep)}.nav-pill{position:absolute;top:16px;left:50%;transform:translate(-50%);z-index:11;display:flex;align-items:center;gap:10px;max-width:calc(100% - 380px);padding:5px 5px 5px 14px;border-radius:999px;background:var(--ink);color:#eef0ec;font-size:11.5px;box-shadow:var(--shadow-float);animation:eink-settle .32s var(--eink) both}.nav-pill span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-pill button{flex:none;font:inherit;font-size:11px;font-weight:600;cursor:pointer;padding:4px 11px;border:0;border-radius:999px;background:#eef0ec;color:var(--ink)}.nav-pill button:hover{background:#fff}.nav-pill .nav-pill-x{background:transparent;color:#9aa2ad;padding:2px 7px;font-size:14px}.nav-pill .nav-pill-x:hover{background:transparent;color:#fff}.edge-chip{position:absolute;pointer-events:none;z-index:6;display:flex;flex-direction:column;align-items:center;gap:1px;padding:3px 6px;border-radius:4px;background:#fafaf8f0;border:1px solid var(--rule);white-space:nowrap}.edge-chip.dim{opacity:.12}.edge-call{font-size:9px;color:var(--graphite);line-height:1.2}.edge-data{font-size:9px;font-family:IBM Plex Mono,ui-monospace,monospace;line-height:1.25;color:var(--ink)}.edge-data .dir{opacity:.5;margin-right:3px}.edge-data.ret{color:var(--pencil)!important}.react-flow__edgelabel-renderer{z-index:6}:root{--eink: cubic-bezier(.22, .61, .36, 1);--eink-ms: .46s}.react-flow__node{transition:transform var(--eink-ms) var(--eink),width .32s var(--eink),height .32s var(--eink)}.react-flow__node.dragging{transition:none}@keyframes eink-settle{0%{opacity:0;filter:blur(3px);transform:translateY(3px)}60%{opacity:1}to{opacity:1;filter:blur(0);transform:translateY(0)}}.node,.group{animation:eink-settle .52s var(--eink) both;animation-delay:min(var(--i, 0) * 26ms,.52s)}@keyframes eink-edge{0%{opacity:0}to{opacity:1}}.react-flow__edge{animation:eink-edge .62s var(--eink) both;animation-delay:.18s}.react-flow__edge path{transition:stroke .32s var(--eink),stroke-width .32s var(--eink),opacity .32s var(--eink)}.eink-sweep{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:4;background:linear-gradient(180deg,transparent 0%,rgba(46,111,98,.05) 42%,rgba(46,111,98,.07) 50%,rgba(46,111,98,.05) 58%,transparent 100%);background-size:100% 42%;background-repeat:no-repeat;animation:eink-sweep .62s var(--eink) forwards}@keyframes eink-sweep{0%{background-position:0 -42%;opacity:1}to{background-position:0 142%;opacity:0}}.edge-pulse{stroke-dasharray:26 100000;stroke-dashoffset:0;opacity:.9;animation-name:pulse-travel;animation-timing-function:linear;animation-iteration-count:infinite;pointer-events:none}@keyframes pulse-travel{0%{stroke-dashoffset:26}to{stroke-dashoffset:-3000}}@media (prefers-reduced-motion: reduce){.react-flow__node{transition:none}.node,.group,.react-flow__edge,.turn,.question,.hero,.building,.suggestion,.context-chip,.gate-card,.req-column,.req-overlay,.req-leaf,.req-active,.req-value{animation:none}.eink-sweep,.edge-pulse{display:none}.grid-drift:before,.grid-drift:after,.dots i,.plan-skeleton span{animation:none}.spinner{animation-duration:2.4s}.build-bar span{animation:none;width:100%}}.composer{position:absolute;left:50%;z-index:12;transform:translate(-50%);width:min(660px,calc(100% - 48px));transition:width var(--eink-ms) var(--eink)}.composer.landing{top:50%;bottom:auto;transform:translate(-50%,-50%);width:min(560px,calc(100% - 48px))}.composer.docked{top:auto;bottom:16px;transform:translate(-50%);padding:10px;border-radius:14px;background:var(--surface);border:1px solid var(--rule-strong);box-shadow:var(--shadow-float)}.composer.docked .chat{max-height:240px;margin-bottom:8px;padding:6px 2px 2px 0;-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 16px);mask-image:linear-gradient(to bottom,transparent 0,#000 16px)}.sheet-head{display:flex;align-items:center;gap:10px;padding:0 2px 8px;margin-bottom:2px;border-bottom:1px solid var(--rule)}.composer.docked.collapsed .sheet-head{border-bottom:0;padding-bottom:8px;margin-bottom:0}.sheet-title{font-size:11.5px;font-weight:600;flex:none}.sheet-status{flex:1;min-width:0;display:flex;align-items:center;gap:7px;font-size:10.5px;color:var(--pencil);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sheet-toggle{flex:none;font:inherit;font-size:10.5px;color:var(--graphite);cursor:pointer;background:none;border:1px solid var(--rule);border-radius:999px;padding:2px 10px;transition:border-color .16s var(--eink),color .16s var(--eink)}.sheet-toggle:hover{border-color:var(--verdigris);color:var(--verdigris-deep)}.composer.docked .composer-row{background:#f6f7f4;-webkit-backdrop-filter:none;backdrop-filter:none;border-color:var(--rule);box-shadow:none}.composer.docked .composer-row:focus-within{border-color:var(--verdigris);background:var(--surface)}.composer.docked .suggestion{background:var(--surface);-webkit-backdrop-filter:none;backdrop-filter:none}.composer.planning{top:50%;width:min(780px,calc(100% - 48px));padding:10px;border-radius:16px;background:var(--surface);border:1px solid var(--rule-strong);box-shadow:var(--shadow-float)}.composer.planning .composer-row{background:#f6f7f4;-webkit-backdrop-filter:none;backdrop-filter:none;border-color:var(--rule);box-shadow:none}.composer.planning .composer-row:focus-within{border-color:var(--verdigris);background:var(--surface)}.composer.planning .suggestion{background:var(--surface);-webkit-backdrop-filter:none;backdrop-filter:none}.composer.planning .chat.convo{max-height:26vh;margin:2px 4px 10px;padding:8px 4px 8px 0;border-bottom:1px solid var(--rule)}.hero{margin-bottom:22px;animation:eink-settle .62s var(--eink) both}.hero h1{font-size:34px;font-weight:600;letter-spacing:-.03em;line-height:1.05;margin:0 0 8px;max-width:14ch}.hero p{font-size:13.5px;color:var(--graphite);margin:0;max-width:46ch}.start-modes{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 14px}.start-modes button{font:inherit;text-align:left;cursor:pointer;padding:11px 13px;display:flex;flex-direction:column;gap:4px;border:1px solid var(--rule-strong);border-radius:10px;background:var(--surface);transition:border-color .18s var(--eink),background .18s var(--eink)}.start-modes button b{font-size:12.5px;font-weight:600;color:var(--ink)}.start-modes button span{font-size:11px;line-height:1.4;color:var(--graphite)}.start-modes button:hover{border-color:var(--verdigris)}.start-modes button.on{border-color:var(--verdigris);background:var(--verdigris-wash)}.start-modes button.on b{color:var(--verdigris-deep)}.composer-row{display:flex;align-items:flex-end;gap:6px;padding:6px 6px 6px 10px;background:#fffffff7;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--rule-strong);border-radius:12px;box-shadow:var(--shadow-float);transition:border-color .22s var(--eink),box-shadow .22s var(--eink)}.composer-row:focus-within{border-color:var(--verdigris)}.composer-row.listening{border-color:var(--rust);box-shadow:0 0 0 3px #9e3b2e1a}.composer-row textarea{flex:1;font:inherit;font-size:13.5px;line-height:1.5;padding:7px 4px;border:0;background:none;outline:none;color:var(--ink);resize:none;overflow-y:auto;max-height:160px}.composer-row textarea::placeholder{color:var(--pencil)}.composer-row button{font:inherit;font-size:11.5px;font-weight:600;padding:8px 16px;cursor:pointer;border:0;border-radius:8px;background:var(--verdigris);color:#fff;flex:none;transition:background .18s var(--eink)}.composer-row button:hover:not(:disabled){background:var(--verdigris-deep)}.composer-row button:disabled{background:var(--rule-strong);cursor:default}.composer-row button.stop{background:var(--rust)}.composer-row .mic{display:grid;place-items:center;width:32px;height:32px;padding:0;background:transparent;color:var(--graphite);border:1px solid var(--rule);border-radius:8px}.composer-row .mic:hover:not(:disabled){color:var(--ink);border-color:var(--rule-strong);background:transparent}.composer-row .mic.on{background:var(--rust);border-color:var(--rust);color:#fff;animation:mic-pulse 1.6s ease-in-out infinite}@keyframes mic-pulse{0%,to{box-shadow:0 0 #9e3b2e4d}50%{box-shadow:0 0 0 5px #9e3b2e00}}.voice-err{margin:7px 2px 0;font-size:10.5px;color:var(--rust)}.archetypes{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}.archetypes button,.q-options button,.suggestion{font:inherit;font-size:11.5px;padding:6px 12px;cursor:pointer;text-align:left;border:1px solid var(--rule);border-radius:999px;background:#ffffffe6;color:var(--graphite);transition:border-color .16s var(--eink),color .16s var(--eink)}.archetypes button:hover:not(:disabled),.q-options button:hover:not(:disabled),.suggestion:hover:not(:disabled){border-color:var(--verdigris);color:var(--verdigris-deep)}.archetypes button:disabled,.q-options button:disabled,.suggestion:disabled{opacity:.45;cursor:default}.suggestions{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:9px;padding:0 2px}.suggestions-label{font-size:10.5px;font-weight:600;color:var(--pencil);margin-right:2px}.suggestion{font-size:11px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:eink-settle .38s var(--eink) both}.questions{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}.question{padding:14px 16px;border-radius:12px;margin-bottom:10px;background:#fffffff7;border:1px solid var(--rule-strong);box-shadow:var(--shadow-float);animation:eink-settle .42s var(--eink) both}.q-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}.q-step{font-size:10.5px;color:var(--pencil)}.q-text{font-size:14px;font-weight:600;line-height:1.35;margin-bottom:10px;letter-spacing:-.01em}.q-options{display:flex;flex-wrap:wrap;gap:6px}.q-or{font-size:10.5px;color:var(--pencil);margin-top:9px}.q-step{display:inline-flex;align-items:center;gap:8px}.q-progress{display:inline-block;width:64px;height:3px;border-radius:2px;background:var(--rule);overflow:hidden}.q-progress span{display:block;height:100%;background:var(--verdigris);transition:width .42s var(--eink)}.q-actions{display:inline-flex;gap:4px}.q-skip{font:inherit;font-size:10.5px;color:var(--graphite);cursor:pointer;background:none;border:0;padding:2px 6px;border-radius:6px}.q-skip:hover:not(:disabled){color:var(--verdigris-deep);background:var(--verdigris-wash)}.q-skip:disabled{opacity:.45;cursor:default}.question.stalled .q-text{font-weight:500}.lost-why{margin:-2px 0 10px;color:var(--ochre);line-height:1.45;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.req-column{width:336px;flex:none;padding:18px 18px 20px;border-left:1px solid var(--rule);background:var(--surface);overflow-y:auto;animation:req-in .46s var(--eink) both}@keyframes req-in{0%{opacity:0;transform:translate(14px)}to{opacity:1;transform:none}}.req-toggle{position:absolute;top:16px;right:16px;z-index:11;font:inherit;font-size:11px;color:var(--graphite);cursor:pointer;padding:6px 12px;border-radius:999px;background:var(--surface);border:1px solid var(--rule-strong);box-shadow:var(--shadow-rest);transition:border-color .16s var(--eink),color .16s var(--eink)}.req-toggle b{color:var(--verdigris-deep);font-weight:600;margin-left:4px}.req-toggle:hover{border-color:var(--verdigris);color:var(--ink)}.req-overlay{position:absolute;top:16px;right:16px;z-index:11;width:318px;max-height:calc(100% - 32px);overflow-y:auto;padding:14px 16px 16px;border-radius:14px;background:var(--surface);border:1px solid var(--rule-strong);box-shadow:var(--shadow-float);animation:eink-settle .38s var(--eink) both}.req-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.req-title{font-size:13px;font-weight:600;letter-spacing:-.01em}.req-sub{font-size:10.5px;color:var(--pencil);margin-top:2px}.req-close{font:inherit;font-size:16px;line-height:1;color:var(--graphite);cursor:pointer;background:none;border:0;padding:2px 6px;border-radius:6px}.req-close:hover{background:#f4f5f3;color:var(--ink)}.req-graph{display:block;width:100%;max-width:320px;margin:6px auto 4px;overflow:visible}.req-spoke{stroke:var(--rule-strong);stroke-width:1;stroke-dasharray:2 3;transition:stroke .42s var(--eink)}.req-spoke.on{stroke:var(--verdigris);stroke-opacity:.45;stroke-dasharray:none}.req-ring-track{fill:none;stroke:var(--rule);stroke-width:3}.req-ring{fill:none;stroke:var(--verdigris);stroke-width:3;stroke-linecap:round;transition:stroke-dashoffset .62s var(--eink)}.req-hub{fill:var(--surface);stroke:var(--rule)}.req-hub-num{text-anchor:middle;font-size:15px;font-weight:600;fill:var(--ink);letter-spacing:-.02em}.req-hub-cap{text-anchor:middle;font-size:9px;fill:var(--pencil)}.req-area{fill:var(--surface);stroke:var(--rule-strong);transition:stroke .42s var(--eink),fill .42s var(--eink)}.req-area.full{stroke:var(--verdigris);fill:var(--verdigris-wash)}.req-area-label{text-anchor:middle;font-size:10.5px;font-weight:600;fill:var(--graphite)}.req-area-label.full{fill:var(--verdigris-deep)}.req-leaf{stroke-width:1.4;transform-box:fill-box;transform-origin:center;animation:leaf-settle .46s var(--eink) both}.req-leaf.unknown{fill:var(--surface);stroke:var(--pencil);stroke-dasharray:2 2;animation:none}.req-leaf.known{fill:var(--verdigris);stroke:var(--verdigris-deep)}.req-leaf.assumed{fill:var(--ochre-wash);stroke:var(--ochre)}@keyframes leaf-settle{0%{transform:scale(.4)}60%{transform:scale(1.18)}to{transform:scale(1)}}.req-active{fill:none;stroke:var(--ink);stroke-width:1.2;transform-box:fill-box;transform-origin:center;animation:active-ring 1.6s var(--eink) infinite}@keyframes active-ring{0%,to{opacity:.9;transform:scale(1)}50%{opacity:.35;transform:scale(1.14)}}.req-list{display:flex;flex-direction:column;gap:12px;margin-top:8px}.req-group-title{font-size:10.5px;font-weight:600;color:var(--graphite);padding-bottom:5px;margin-bottom:4px;border-bottom:1px solid var(--rule)}.req-row{display:grid;grid-template-columns:96px 1fr;gap:10px;align-items:baseline;padding:4px 0 4px 8px;margin-left:-8px;border-left:2px solid transparent;transition:border-color .22s var(--eink),background .22s var(--eink)}.req-row.active{border-left-color:var(--ink);background:#f6f7f4}.req-label{font-size:10.5px;color:var(--graphite)}.req-value{font-size:11.5px;line-height:1.4;color:var(--ink);animation:eink-settle .42s var(--eink) both}.req-row.unknown .req-value{color:var(--pencil);animation:none}.req-row.assumed .req-value{color:var(--ochre)}.req-foot{position:sticky;bottom:-20px;margin:14px -18px -20px;padding:12px 18px 16px;background:linear-gradient(to bottom,rgba(255,255,255,0),var(--surface) 22%);display:flex;flex-direction:column;gap:6px}.req-foot button{font:inherit;font-size:12px;font-weight:600;padding:8px 12px;cursor:pointer;border:1px solid var(--rule-strong);border-radius:9px;background:var(--surface);color:var(--ink);transition:border-color .16s var(--eink),color .16s var(--eink)}.req-foot button:hover:not(:disabled){border-color:var(--verdigris);color:var(--verdigris-deep)}.req-foot button:disabled{opacity:.5;cursor:default}.req-foot span{font-size:10.5px;color:var(--pencil);text-align:center}.chat{display:flex;flex-direction:column;gap:7px;margin-bottom:10px;max-height:260px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--rule-strong) transparent}.chat.tall{max-height:min(52vh,460px)}.turn{font-size:12px;line-height:1.5;padding:8px 12px;border-radius:10px;animation:eink-settle .42s var(--eink) both}.turn.user{align-self:flex-end;max-width:78%;background:var(--ink);color:#f4f5f2;border-radius:12px 12px 4px}.turn.planner{align-self:flex-start;max-width:94%;position:relative;background:transparent;color:var(--ink);padding:2px 4px 2px 26px;border-radius:0;font-size:12.5px;line-height:1.55}.turn.planner.lead{margin-top:3px}.turn.planner.lead:before{content:"";position:absolute;left:5px;top:5px;width:11px;height:11px;border-radius:3px;border:1.5px solid var(--verdigris);background:var(--verdigris-wash)}.turn.typing{display:flex;align-items:center;gap:9px;padding:6px 4px 4px 6px;font-size:11px;color:var(--graphite);animation:eink-settle .3s var(--eink) both}.spinner{flex:none;display:inline-block;width:12px;height:12px;border-radius:50%;border:1.6px solid var(--rule-strong);border-top-color:var(--verdigris);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.build-sub{display:flex;align-items:center;gap:8px;margin-top:6px;font-size:11px;color:var(--pencil)}.dots{display:inline-flex;align-items:center;gap:3px;flex:none}.dots i{width:4px;height:4px;border-radius:50%;background:var(--verdigris);opacity:.3;animation:dot-bounce 1.2s var(--eink) infinite}.dots i:nth-child(2){animation-delay:.15s}.dots i:nth-child(3){animation-delay:.3s}@keyframes dot-bounce{0%,80%,to{opacity:.25;transform:none}40%{opacity:1;transform:translateY(-3px)}}.plan-card{align-self:stretch;margin-left:26px;border:1px solid var(--rule);border-radius:10px;background:var(--surface);animation:eink-settle .42s var(--eink) both}.plan-card-head{display:flex;align-items:center;gap:9px;width:100%;padding:8px 11px;font:inherit;font-size:11.5px;text-align:left;color:var(--ink);background:none;border:0;cursor:pointer;border-radius:10px}.plan-card-head:hover{background:#f6f7f4}.plan-card-head b{font-weight:600}.plan-card-head span{font-size:10.5px;color:var(--pencil)}.plan-card-head .chev,.plan-convo-toggle .chev{margin-left:auto;color:var(--graphite);transition:transform .22s var(--eink)}.plan-card.open .chev,.plan-convo-toggle[aria-expanded=true] .chev{transform:rotate(180deg)}.plan-card-body{padding:8px 12px 10px;max-height:280px;overflow-y:auto;font-size:11.5px;line-height:1.5;border-top:1px solid var(--rule)}.turn.system{align-self:stretch;max-width:100%;background:transparent;border:0;padding:2px 4px;font-size:11px;color:var(--graphite);display:flex;gap:8px;align-items:baseline}.turn.system:before{flex:none;width:11px;text-align:center;font-weight:700}.turn.system.change{color:var(--verdigris-deep)}.turn.system.change:before{content:"✓"}.turn.system.nochange{color:var(--ochre)}.turn.system.nochange:before{content:"!"}.turn.system.repair:before{content:"↺"}.turn.system.undone .sys-text{text-decoration:line-through;opacity:.6}.turn .undo{margin-left:auto;flex:none;font:inherit;font-size:10.5px;cursor:pointer;color:var(--verdigris-deep);background:none;border:1px solid var(--rule-strong);border-radius:999px;padding:2px 10px;transition:border-color .16s var(--eink),background .16s var(--eink)}.turn .undo:hover:not(:disabled){border-color:var(--verdigris);background:var(--verdigris-wash)}.turn .undo:disabled{opacity:.45;cursor:default}.rich h4{margin:11px 0 3px;font-size:11px;font-weight:600;color:var(--verdigris-deep);letter-spacing:0}.rich h4:first-child{margin-top:0}.rich p{margin:3px 0;max-width:68ch}.rich ul{margin:3px 0;padding-left:17px}.rich li{margin:2px 0;max-width:66ch}.rich li::marker{color:var(--pencil)}.plan-convo-toggle{display:flex;align-items:center;gap:8px;width:100%;font:inherit;font-size:11px;color:var(--graphite);text-align:left;cursor:pointer;background:none;border:0;border-radius:8px;padding:5px 8px;margin-bottom:2px}.plan-convo-toggle .chev{order:-1;margin-left:0;font-size:10px}.plan-convo-toggle .n{color:var(--pencil);margin-left:auto}.plan-convo-toggle:hover{background:#f6f7f4;color:var(--ink)}.plan-doc{max-height:min(56vh,620px);overflow-y:auto;padding:16px 22px 10px;scrollbar-width:thin;scrollbar-color:var(--rule-strong) transparent;animation:eink-settle .48s var(--eink) both}.plan-eyebrow{display:flex;align-items:center;gap:12px;font-size:10.5px;font-weight:600;color:var(--verdigris-deep)}.plan-writing{display:inline-flex;align-items:center;gap:7px;font-weight:400;color:var(--pencil)}.plan-title{margin:7px 0 8px;max-width:58ch;font-size:19px;font-weight:600;line-height:1.3;letter-spacing:-.02em}.plan-stats{display:flex;flex-wrap:wrap;gap:16px;font-size:11px;color:var(--graphite)}.plan-stats b{color:var(--ink);font-weight:600;font-size:13px;margin-right:2px}.plan-nav{position:sticky;top:-16px;z-index:1;display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;margin:14px -22px 0;padding:8px 22px;background:var(--surface);border-bottom:1px solid var(--rule)}.plan-nav button{flex:none;font:inherit;font-size:10.5px;color:var(--graphite);cursor:pointer;padding:3px 10px;border:1px solid var(--rule);border-radius:999px;background:var(--surface);transition:border-color .16s var(--eink),color .16s var(--eink)}.plan-nav button:hover{border-color:var(--verdigris);color:var(--verdigris-deep)}.plan-sec{padding:16px 0 6px;scroll-margin-top:40px}.plan-sec+.plan-sec{border-top:1px dotted var(--rule-strong)}.plan-sec h3{margin:0 0 9px;font-size:11px;font-weight:600;color:var(--graphite);letter-spacing:.01em}.plan-sec p{margin:0 0 6px;font-size:12.5px;line-height:1.6;max-width:68ch}.plan-sec ul{margin:0;padding-left:16px}.plan-sec li{margin:3px 0;font-size:12px;line-height:1.55;max-width:66ch}.plan-sec li::marker{color:var(--pencil)}.plan-reqs li{padding-left:2px}.plan-assumed{display:inline-block;margin-left:7px;padding:0 6px;border-radius:4px;font-size:9.5px;font-weight:600;color:var(--ochre);background:var(--ochre-wash);vertical-align:1px}.plan-comps{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:6px}.plan-comp{padding:7px 10px 8px;border-radius:8px;border:1px solid var(--rule);border-left:3px solid var(--kind);background:var(--surface)}.plan-comp-top{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.plan-comp-name{font-size:12px;font-weight:600;line-height:1.3}.plan-comp-kind{flex:none;font-size:9.5px;color:var(--kind);font-weight:600}.plan-comp-what{margin-top:3px;font-size:11px;line-height:1.45;color:var(--graphite)}.plan-flows{display:flex;flex-direction:column;gap:10px}.plan-flow-name{font-size:11.5px;font-weight:600;margin-bottom:5px}.plan-steps{display:flex;flex-wrap:wrap;align-items:center;row-gap:5px}.plan-step-wrap{display:inline-flex;align-items:center}.plan-step{font-size:10.5px;padding:2px 9px;border-radius:999px;background:#f4f5f2;border:1px solid var(--rule);color:var(--ink)}.plan-arrow{margin:0 5px;font-size:10px;color:var(--verdigris)}.plan-questions{display:flex;flex-direction:column;gap:2px}.plan-q{display:flex;align-items:baseline;gap:9px;padding:6px 8px;margin:0 -8px;border-radius:8px;transition:background .16s var(--eink)}.plan-q:hover{background:#f6f7f4}.plan-q-mark{flex:none;width:16px;height:16px;border-radius:50%;display:grid;place-items:center;font-size:10px;font-weight:700;color:var(--ochre);background:var(--ochre-wash);transform:translateY(2px)}.plan-q-text{flex:1;font-size:12px;line-height:1.5}.plan-q button{flex:none;font:inherit;font-size:10.5px;color:var(--verdigris-deep);cursor:pointer;padding:2px 10px;border:1px solid var(--rule-strong);border-radius:999px;background:var(--surface);opacity:.7;transition:opacity .16s var(--eink),border-color .16s var(--eink)}.plan-q:hover button,.plan-q button:focus-visible{opacity:1;border-color:var(--verdigris)}.plan-skeleton{display:flex;flex-direction:column;gap:10px;padding:18px 0 14px}.plan-skeleton span{display:block;height:9px;border-radius:5px;background:linear-gradient(90deg,#eef0ec,#f7f8f5,#eef0ec);background-size:200% 100%;animation:skeleton-sheen 1.4s linear infinite}@keyframes skeleton-sheen{0%{background-position:100% 0}to{background-position:-100% 0}}.plan-bar{display:flex;align-items:center;gap:12px;margin:0 0 10px;padding:10px 6px 0 10px;border-top:1px solid var(--rule)}.plan-status{flex:1;min-width:0;display:flex;align-items:center;gap:8px;font-size:11px;color:var(--graphite);line-height:1.4;overflow:hidden;text-overflow:ellipsis}.plan-status.bad{color:var(--ochre)}.plan-bar .primary{flex:none;font:inherit;font-size:12px;font-weight:600;padding:9px 16px;cursor:pointer;border:0;border-radius:9px;background:var(--verdigris);color:#fff;transition:background .18s var(--eink),transform .18s var(--eink)}.plan-bar .primary span{display:inline-block;transition:transform .18s var(--eink)}.plan-bar .primary:hover:not(:disabled){background:var(--verdigris-deep)}.plan-bar .primary:hover:not(:disabled) span{transform:translate(3px)}.plan-bar .primary:disabled{background:var(--rule-strong);cursor:default}.context-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;padding-left:2px}.context-chip{display:inline-flex;align-items:center;gap:6px;font:inherit;font-size:11px;font-weight:600;padding:4px 10px;cursor:pointer;border:1px solid var(--verdigris);border-radius:999px;background:var(--verdigris-wash);color:var(--verdigris-deep);animation:eink-settle .32s var(--eink) both}.context-chip .plus{display:none}.context-chip .x{color:var(--graphite);margin-left:1px}.context-chip:hover .x{color:var(--verdigris-deep)}.context-note{font-size:10.5px;color:var(--pencil)}.building{margin-bottom:18px;animation:eink-settle .42s var(--eink) both}.build-bar{width:100%;height:2px;margin:0 0 10px;border-radius:1px;background:var(--rule);overflow:hidden}.build-bar span{display:block;width:34%;height:100%;border-radius:1px;background:var(--verdigris);animation:build-slide 1.15s var(--eink) infinite}@keyframes build-slide{0%{transform:translate(-100%)}to{transform:translate(300%)}}.build-text{font-size:13px;color:var(--graphite)}.gate{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:var(--paper);z-index:100}.gate-card{display:flex;flex-direction:column;gap:11px;width:min(330px,calc(100% - 48px));padding:28px 26px;background:var(--surface);border:1px solid var(--rule);border-radius:14px;box-shadow:var(--shadow-float);animation:eink-settle .48s var(--eink) both}.gate-card h1{font-size:19px;font-weight:600;letter-spacing:-.02em;margin:0}.gate-card p{font-size:12.5px;color:var(--graphite);margin:0 0 4px;line-height:1.5}.gate-card input{font:inherit;font-size:13.5px;padding:10px 12px;border:1px solid var(--rule-strong);border-radius:9px;outline:none;background:var(--surface)}.gate-card input:focus{border-color:var(--verdigris)}.gate-card button{font:inherit;font-size:12.5px;font-weight:600;padding:10px;cursor:pointer;border:0;border-radius:9px;background:var(--verdigris);color:#fff}.gate-card button:hover:not(:disabled){background:var(--verdigris-deep)}.gate-card button:disabled{background:var(--rule-strong);cursor:default}.gate-error{font-size:11.5px;color:var(--rust)}.gate-card.wrong{animation:gate-shake .42s ease}@keyframes gate-shake{0%,to{transform:translate(0)}20%{transform:translate(-7px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(3px)}}@media (max-width: 760px){.app{flex-direction:column}.panel{width:100%;max-height:38vh;border-right:0;border-bottom:1px solid var(--rule)}.composer,.composer.landing,.composer.docked,.composer.planning{width:calc(100% - 24px)}.req-column{width:100%;max-height:42vh;border-left:0;border-top:1px solid var(--rule)}.req-graph{max-width:240px}.zoom-bar{bottom:auto;top:12px;left:12px}.stack-index{display:none}.nav-pill{max-width:calc(100% - 120px)}.req-overlay{width:calc(100% - 32px)}.hero h1{font-size:27px}.start-modes{grid-template-columns:1fr}}
