.workspace{grid-template-columns:minmax(420px,1.55fr) minmax(330px,1fr)}
.map-panel{grid-column:1/-1;min-height:390px;display:grid;grid-template-columns:minmax(220px,.65fr) minmax(560px,2fr);position:relative;background:var(--acid);color:#171912;border-bottom:1px solid #171912;overflow:hidden}
.map-copy{padding:34px;border-right:1px solid rgba(23,25,18,.2)}
.map-copy h2{font-size:clamp(22px,2.3vw,36px);line-height:1.25;margin:22px 0 50px;max-width:330px}
.map-stats{display:flex;gap:30px;font-size:11px}.map-stats span{display:grid;gap:5px}.map-stats strong{font:700 21px Syne}
.map-canvas{min-width:0;overflow:hidden}.map-canvas svg{display:block;width:100%;height:390px}.map-canvas path{fill:none;stroke:#171912;stroke-width:1.2;stroke-dasharray:3 4;animation:draw .85s calc(.2s + var(--i)*.18s) both}.map-canvas circle{fill:#171912;transform-box:fill-box;transform-origin:center;animation:node-in .45s calc(.55s + var(--i)*.18s) both}.map-canvas text{fill:#171912;font:700 12px Syne;animation:label-in .5s calc(.7s + var(--i)*.18s) both}.map-canvas .leaf{font:500 10px "Noto Sans SC"}.map-canvas .root circle{fill:var(--coral);animation:root-in .6s both}.map-canvas .root text{text-anchor:middle;animation:label-in .4s .35s both}.map-canvas .branch{--i:0}
.map-panel .threads{position:absolute;left:34px;bottom:28px;max-width:320px}.map-panel .threads span{background:#171912;color:#eee9df;font-size:10px;padding:6px 8px}
.source-stream,.ai-panel{padding:34px}.source-stream{border-right:1px solid var(--line)}.ai-panel{border-right:0}
@keyframes draw{from{opacity:0;stroke-dashoffset:80}to{opacity:1;stroke-dashoffset:0}}@keyframes node-in{from{opacity:0;transform:scale(0)}70%{transform:scale(1.35)}to{opacity:1;transform:scale(1)}}@keyframes root-in{from{opacity:0;transform:scale(0) rotate(-20deg)}70%{transform:scale(1.18) rotate(4deg)}to{opacity:1;transform:scale(1)}}@keyframes label-in{from{opacity:0;transform:translateX(-8px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.map-canvas path,.map-canvas circle,.map-canvas text{animation:none}}
@media(max-width:980px){.workspace{grid-template-columns:1fr}.map-panel{grid-template-columns:230px 1fr}.source-stream{border-right:0}.ai-panel{grid-column:1}}
@media(max-width:640px){.map-panel{display:block;min-height:500px}.map-copy{border-right:0;padding:24px}.map-copy h2{margin-bottom:20px}.map-canvas{overflow-x:auto}.map-canvas svg{width:760px;height:330px}.map-panel .threads{position:static;padding:0 24px 24px}.source-stream,.ai-panel{padding:24px}}
