/* Exact selected DOM rules from canonical src/styles.css; material is rendered by original JS. */
.canvas{position:relative;flex:1;min-height:340px;margin-top:170px;margin-right:20px;touch-action:none;isolation:isolate}
.canvas canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.node{position:absolute;transform:translate(-50%,-50%);border-radius:50%;background:transparent;color:#644d51;font-size:25px;font-weight:500;letter-spacing:-1px;touch-action:none;cursor:grab;user-select:none;padding:0;opacity:.95}
.node span{display:block;transform:translateY(-2px);text-shadow:0 1px 1px #ffffff25}
.node:focus-visible{outline:1px dashed var(--accent);outline-offset:16px}
.is-dragging,.is-dragging .node{cursor:grabbing}
@media(max-width:680px){.canvas{margin-top:156px;min-height:330px;margin-right:0}}
.node .node-letter{font-size:23px}
.canvas{overflow:visible}
@media(max-width:680px){.node .node-letter{font-size:20px}}
.node .node-letter{font-size:clamp(14px,1.7vw,23px);padding:8px;text-wrap:balance}
@media(max-width:680px){.node .node-letter{font-size:15px}}
.satellite .release-cue{position:absolute;top:calc(100% + 7px);left:50%;transform:translateX(-50%);white-space:nowrap;font-size:10px;letter-spacing:0;color:var(--ink);background:var(--surface);padding:7px 10px;border:1px solid var(--line);border-radius:20px;opacity:0;pointer-events:none}
.satellite[data-ready=true] .release-cue{opacity:1}
.release-cue[hidden]{display:none!important}
.label-layer{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:2}
.label-layer .node{pointer-events:auto}
.satellite-layer{z-index:3}
.node .node-letter{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)!important;width:54%;padding:0!important;line-height:1.08;letter-spacing:0;white-space:pre-line;text-align:center;pointer-events:none}
.canvas{cursor:grab}
.node .inner-labels{transform:none;position:absolute;inset:0;pointer-events:none}
.node .inner-label{position:absolute;transform:translate(-50%,-50%);white-space:nowrap;font-weight:600;line-height:1;letter-spacing:0;color:#172334;text-shadow:0 1px 6px #ffffff50}
.dark .node .inner-label{color:#f8fbff;text-shadow:0 1px 5px #07121c}
.node[data-inside=true]>.node-letter{top:80%;color:var(--ink);max-width:80%;width:80%;line-height:1.1;opacity:.8}
.node[data-inside=true]>.node-letter{top:83%;white-space:nowrap}
.node:not([data-inside=true])>.node-letter,.node .inner-label{font-weight:700;opacity:.96;color:#172334;text-shadow:0 1px 2px #ffffffd9,0 0 5px #ffffff80}
.node:not([data-inside=true])>.node-letter{width:72%}
.lab.dark .node:not([data-inside=true])>.node-letter,.lab.dark .node .inner-label{color:#f8fbff;text-shadow:0 1px 2px #07121ce6,0 0 5px #07121cbd}
