diff --git a/authoring_server.py b/authoring_server.py
index b10f357..bc11c8c 100755
--- a/authoring_server.py
+++ b/authoring_server.py
@@ -158,7 +158,7 @@ CHARACTER_REGISTRY = {
"playful": "https://zainezq.com/assets/avatars/young-z.jpeg",
},
"sizes": {"tiny": 18, "medium": 42, "close": 56, "focus": 82},
- "observatory": {"territory": "nostalgic/playful memories", "anchor": {"x": 0.23, "y": 0.7}, "shimmer": "soft"},
+ "observatory": {"territory": "nostalgic/playful memories", "shimmer": "soft"},
"presenceTones": ["nostalgic", "funny", "hopeful"],
"presenceKeywords": ["childhood", "play", "desk", "crayon", "young", "small", "blanket", "memory"],
"symbol": "Y",
@@ -176,7 +176,7 @@ CHARACTER_REGISTRY = {
"fallbackAvatar": "https://zainezq.com/assets/avatars/z.jpeg",
"expressions": {"default": "https://zainezq.com/assets/avatars/z.jpeg", "calm": "https://zainezq.com/assets/avatars/z.jpeg"},
"sizes": {"tiny": 18, "medium": 42, "close": 56, "focus": 82},
- "observatory": {"territory": "self/archive memories", "anchor": {"x": 0.5, "y": 0.52}, "shimmer": "steady"},
+ "observatory": {"territory": "self/archive memories", "shimmer": "steady"},
"presenceTones": ["warm", "soft", "hopeful"],
"presenceKeywords": ["website", "archive", "home", "self", "making", "return", "zaine"],
"symbol": "Z",
@@ -198,7 +198,7 @@ CHARACTER_REGISTRY = {
"amused": "https://zainezq.com/assets/avatars/aphy.jpeg",
},
"sizes": {"tiny": 18, "medium": 42, "close": 56, "focus": 82},
- "observatory": {"territory": "system/symbolic areas", "anchor": {"x": 0.77, "y": 0.35}, "shimmer": "diagnostic"},
+ "observatory": {"territory": "system/symbolic areas", "shimmer": "diagnostic"},
"presenceTones": ["funny", "strange", "hopeful"],
"presenceKeywords": ["system", "console", "diagnostic", "keyboard", "search", "terminal", "backup", "symbolic", "query"],
"symbol": "A",
@@ -221,7 +221,7 @@ CHARACTER_REGISTRY = {
"protective": "https://zainezq.com/assets/avatars/lima.jpg",
},
"sizes": {"tiny": 18, "medium": 42, "close": 56, "focus": 82},
- "observatory": {"territory": "warm/protective arcs", "anchor": {"x": 0.29, "y": 0.36}, "shimmer": "warm"},
+ "observatory": {"territory": "warm/protective arcs", "shimmer": "warm"},
"presenceTones": ["warm", "protective", "soft"],
"presenceKeywords": ["lima", "love", "warm", "kitchen", "light", "ring", "home", "protect", "eat"],
"symbol": "L",
@@ -243,7 +243,7 @@ CHARACTER_REGISTRY = {
"wise": "https://zainezq.com/assets/avatars/sensei-chi.jpeg",
},
"sizes": {"tiny": 18, "medium": 42, "close": 56, "focus": 82},
- "observatory": {"territory": "reflective areas", "anchor": {"x": 0.68, "y": 0.68}, "shimmer": "quiet"},
+ "observatory": {"territory": "reflective areas", "shimmer": "quiet"},
"presenceTones": ["wise", "melancholy", "soft"],
"presenceKeywords": ["reflection", "patience", "wisdom", "lesson", "tea", "garden", "quiet", "sensei"],
"symbol": "S",
@@ -265,7 +265,7 @@ CHARACTER_REGISTRY = {
"reassuring": "https://zainezq.com/assets/avatars/future-z.jpeg",
},
"sizes": {"tiny": 18, "medium": 42, "close": 56, "focus": 82},
- "observatory": {"territory": "temporal regions", "anchor": {"x": 0.73, "y": 0.18}, "shimmer": "temporal"},
+ "observatory": {"territory": "temporal regions", "shimmer": "temporal"},
"presenceTones": ["hopeful", "melancholy", "wise"],
"presenceKeywords": ["future", "time", "clock", "older", "tomorrow", "age", "reassurance", "continuity"],
"symbol": "F",
@@ -2853,10 +2853,6 @@ HIDDEN_APP_HTML = r"""
}
.cluster-node .count { font-size: 18px; font-weight: 850; }
.cluster-halo { fill: rgba(211, 166, 77, 0.08); stroke: rgba(211, 166, 77, 0.22); stroke-dasharray: 3 8; }
- .territory-anchor { pointer-events: none; opacity: 0.72; }
- .territory-anchor circle { fill: rgba(251, 241, 220, 0.035); stroke-width: 1.2; stroke-dasharray: 5 11; }
- .territory-anchor image { opacity: 0.88; }
- .territory-anchor text { fill: rgba(248, 234, 209, 0.66); font-size: 18px; paint-order: stroke; stroke: rgba(14, 11, 8, 0.78); stroke-width: 3px; }
.drag-preview-line { stroke: rgba(255, 232, 177, 0.78); stroke-width: 3; stroke-dasharray: 8 8; pointer-events: none; }
.drag-preview-halo { fill: rgba(211, 166, 77, 0.1); stroke: rgba(255, 232, 177, 0.58); stroke-width: 2; stroke-dasharray: 4 7; pointer-events: none; }
.drag-preview-label rect { fill: rgba(18, 16, 13, 0.86); stroke: rgba(255, 232, 177, 0.42); rx: 7; }
@@ -3972,7 +3968,6 @@ HIDDEN_APP_HTML = r"""
const storyRegions = renderStoryRegions(entries);
const occupied = [];
const defs = [];
- const territoryAnchors = renderTerritoryAnchors(defs);
const clusterNodes = clusters.map((cluster) => {
const pos = state.clusterPositions.get(cluster.id);
const character = state.mode === "character" ? cluster.label : cluster.character || "z";
@@ -4010,7 +4005,7 @@ HIDDEN_APP_HTML = r"""
: svgAvatar(character, size, clipId, avatarExpressionForEntry(entry), state.zoom >= 2 ? "node-breathe" : "")}
${label}`;
}).join("");
- graph.innerHTML = `${defs.join("")}${rings}${territoryAnchors}${storyRegions}${clusterEdges}${edges}${clusterNodes}${nodes}`;
+ graph.innerHTML = `${defs.join("")}${rings}${storyRegions}${clusterEdges}${edges}${clusterNodes}${nodes}`;
graph.querySelectorAll(".cluster-node").forEach((node) => {
node.addEventListener("click", () => openCluster(node.dataset.id));
node.addEventListener("dblclick", () => openCluster(node.dataset.id));
@@ -4029,23 +4024,6 @@ HIDDEN_APP_HTML = r"""
renderMinimap(scope);
updateDragPreview();
}
- function renderTerritoryAnchors(defs) {
- if (state.camera.k < 0.18 || ["journey","hidden","dream","temporal"].includes(state.mode)) return "";
- return Object.entries(avatarRegistry()).map(([character, config]) => {
- const anchor = config.observatory?.anchor || { x: 0.5, y: 0.5 };
- const x = Math.max(260, Math.min(WORLD.width - 260, Number(anchor.x || 0.5) * WORLD.width));
- const y = Math.max(220, Math.min(WORLD.height - 220, Number(anchor.y || 0.5) * WORLD.height));
- const radius = state.mode === "character" ? 150 : 105;
- const portrait = state.mode === "character" || state.camera.k > 0.42;
- const clipId = `clip-territory-${slugify(character)}`;
- defs.push(``);
- return `
-
- ${portrait ? svgAvatar(character, 38, clipId, "default", "node-breathe") : ""}
- ${html(characterLabel(character))}
- `;
- }).join("");
- }
function renderStoryRegions(entries) {
if (!entries.length || state.camera.k < 0.22) return "";
return filteredStories().map((story) => {