@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@300;400;500;600&family=Space+Mono:wght@400;700&display=swap");:root{--bg:#06080a;--surface:hsla(0,0%,100%,.04);--border:hsla(0,0%,100%,.08);--text:hsla(0,0%,100%,.85);--muted:hsla(0,0%,100%,.35);--accent-red:#ff4757;--accent-pink:#e84393;--accent-teal:#2ed573;--accent-blue:#70a1ff;--accent-purple:#a29bfe}*{margin:0;padding:0;box-sizing:border-box}body,html{background:radial-gradient(ellipse at 90% 0,rgba(80,10,10,.55) 0,transparent 55%),radial-gradient(ellipse at 10% 100%,rgba(5,20,12,.4) 0,transparent 50%),var(--bg);font-family:DM Sans,sans-serif;overflow:hidden;width:100vw;height:100vh;color:var(--text)}#world-canvas{position:fixed;inset:0;display:block}#world-canvas,#world-canvas.has-selection{cursor:pointer}#labels-layer{position:fixed;inset:0;pointer-events:none;z-index:20}.char-label{position:absolute;transform:translate(-50%,-100%);display:flex;flex-direction:column;align-items:center;gap:3px;pointer-events:none}.char-label-name{font-size:11px;font-weight:600;letter-spacing:.5px;white-space:nowrap}.char-label-dot{width:6px;height:6px;border-radius:50%}.char-label.selected .char-label-name{font-weight:800;text-shadow:0 0 8px currentColor}.char-label.selected .char-label-dot{transform:scale(1.5);box-shadow:0 0 6px currentColor}.speech-bubble{background:rgba(20,24,34,.92);border:1px solid hsla(0,0%,100%,.12);border-radius:10px;padding:5px 10px;font-size:11px;color:var(--text);white-space:nowrap;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);backdrop-filter:blur(8px);opacity:0;transition:opacity .3s;pointer-events:none}.speech-bubble.visible{opacity:1}.lucide{width:18px;height:18px;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;fill:none;flex-shrink:0}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.85)}}@keyframes icon-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes icon-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.18);opacity:.75}}@keyframes icon-bounce{0%,to{transform:translateY(0)}40%{transform:translateY(-4px)}70%{transform:translateY(-2px)}}@keyframes icon-shake{0%,to{transform:rotate(0)}20%{transform:rotate(-12deg)}60%{transform:rotate(12deg)}80%{transform:rotate(-6deg)}}@keyframes icon-float{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes icon-ping{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.25);opacity:.6}}.toggle{width:34px;height:19px;background:hsla(0,0%,100%,.1);border-radius:10px;position:relative;cursor:pointer;transition:background .2s;border:none;flex-shrink:0}.toggle.on{background:var(--accent-red)}.toggle:after{content:"";position:absolute;width:13px;height:13px;border-radius:50%;background:#fff;top:3px;left:3px;transition:transform .2s}.toggle.on:after{transform:translateX(15px)}.control-slider{flex:1;-webkit-appearance:none;height:4px;border-radius:2px;background:hsla(0,0%,100%,.1);outline:none;cursor:pointer}.control-slider::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:var(--accent-red);cursor:pointer}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:hsla(0,0%,100%,.1);border-radius:2px}