{"id":4692,"date":"2026-05-23T07:18:44","date_gmt":"2026-05-23T07:18:44","guid":{"rendered":"https:\/\/imaginariumrpg.com\/?page_id=4692"},"modified":"2026-05-23T15:59:47","modified_gmt":"2026-05-23T15:59:47","slug":"secret-identity","status":"publish","type":"page","link":"https:\/\/imaginariumrpg.com\/?page_id=4692","title":{"rendered":"Secret Identity"},"content":{"rendered":"\n<style data-wp-block-html=\"css\">\n*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }\n\n:root {\n  --bg: #080c10;\n  --panel: #0d1318;\n  --panel2: #111820;\n  --accent: #00e5ff;\n  --accent2: #ff3c5f;\n  --warn: #ffb300;\n  --text: #c8d8e8;\n  --muted: #4a6070;\n  --border: rgba(0,229,255,0.12);\n  --border2: rgba(0,229,255,0.25);\n  --glow: 0 0 20px rgba(0,229,255,0.2);\n  --font-display: 'Orbitron', monospace;\n  --font-ui: 'Rajdhani', sans-serif;\n  --font-mono: 'Share Tech Mono', monospace;\n}\n\nhtml, body {\n  min-height: 100vh;\n  background: var(--bg);\n  color: var(--text);\n  font-family: var(--font-ui);\n  font-size: 16px;\n  line-height: 1.5;\n}\n\nbody {\n  background-image:\n    radial-gradient(ellipse at 15% 50%, rgba(0,229,255,0.04) 0%, transparent 60%),\n    radial-gradient(ellipse at 85% 20%, rgba(255,60,95,0.04) 0%, transparent 50%),\n    repeating-linear-gradient(0deg, transparent, transparent 39px, rgba(0,229,255,0.03) 39px, rgba(0,229,255,0.03) 40px),\n    repeating-linear-gradient(90deg, transparent, transparent 39px, rgba(0,229,255,0.02) 39px, rgba(0,229,255,0.02) 40px);\n}\n\n\/* \u2500\u2500 Layout \u2500\u2500 *\/\n.app {\n  max-width: 720px;\n  margin: 0 auto;\n  padding: 2rem 1.25rem 4rem;\n}\n\n\/* \u2500\u2500 Header \u2500\u2500 *\/\n.hdr {\n  text-align: center;\n  margin-bottom: 2.5rem;\n  animation: fadeDown 0.6s ease both;\n}\n.hdr-eyebrow {\n  font-family: var(--font-mono);\n  font-size: 11px;\n  color: var(--accent);\n  letter-spacing: 4px;\n  text-transform: uppercase;\n  margin-bottom: 0.5rem;\n  opacity: 0.75;\n}\n.hdr h1 {\n  font-family: var(--font-display);\n  font-size: clamp(28px, 6vw, 48px);\n  font-weight: 900;\n  color: #fff;\n  letter-spacing: 3px;\n  text-shadow: 0 0 40px rgba(0,229,255,0.4), 0 0 80px rgba(0,229,255,0.15);\n  line-height: 1.1;\n}\n.hdr-sub {\n  font-family: var(--font-mono);\n  font-size: 12px;\n  color: var(--muted);\n  margin-top: 0.5rem;\n  letter-spacing: 1px;\n}\n\n\/* \u2500\u2500 Progress bar \u2500\u2500 *\/\n.progress-wrap {\n  margin-bottom: 2.5rem;\n  animation: fadeDown 0.6s 0.1s ease both;\n}\n.progress-track {\n  display: flex;\n  gap: 4px;\n  margin-bottom: 8px;\n}\n.progress-seg {\n  flex: 1;\n  height: 3px;\n  background: var(--panel2);\n  border-radius: 2px;\n  overflow: hidden;\n  position: relative;\n}\n.progress-seg::after {\n  content: '';\n  position: absolute;\n  inset: 0;\n  background: var(--accent);\n  transform: scaleX(0);\n  transform-origin: left;\n  transition: transform 0.4s cubic-bezier(0.4,0,0.2,1);\n  box-shadow: 0 0 8px var(--accent);\n}\n.progress-seg.done::after { transform: scaleX(1); }\n.progress-seg.active::after { transform: scaleX(0.5); }\n.progress-labels {\n  display: flex;\n  justify-content: space-between;\n  font-family: var(--font-mono);\n  font-size: 10px;\n  color: var(--muted);\n  letter-spacing: 0.5px;\n}\n.progress-labels span.active-lbl { color: var(--accent); }\n\n\/* \u2500\u2500 Steps \u2500\u2500 *\/\n.step {\n  display: none;\n  animation: stepIn 0.45s cubic-bezier(0.22,1,0.36,1) both;\n}\n.step.active { display: block; }\n\n@keyframes stepIn {\n  from { opacity: 0; transform: translateY(18px); }\n  to   { opacity: 1; transform: translateY(0); }\n}\n@keyframes stepOut {\n  from { opacity: 1; transform: translateY(0); }\n  to   { opacity: 0; transform: translateY(-18px); }\n}\n@keyframes fadeDown {\n  from { opacity: 0; transform: translateY(-12px); }\n  to   { opacity: 1; transform: translateY(0); }\n}\n\n\/* \u2500\u2500 Step header \u2500\u2500 *\/\n.step-hdr {\n  margin-bottom: 1.75rem;\n}\n.step-num {\n  font-family: var(--font-mono);\n  font-size: 11px;\n  color: var(--accent);\n  letter-spacing: 3px;\n  text-transform: uppercase;\n  margin-bottom: 4px;\n}\n.step-title {\n  font-family: var(--font-display);\n  font-size: 22px;\n  font-weight: 700;\n  color: #fff;\n  letter-spacing: 1px;\n}\n.step-desc {\n  font-size: 14px;\n  color: var(--muted);\n  margin-top: 6px;\n  font-family: var(--font-mono);\n  line-height: 1.6;\n}\n\n\/* \u2500\u2500 Panel \u2500\u2500 *\/\n.panel {\n  background: var(--panel);\n  border: 1px solid var(--border);\n  border-radius: 4px;\n  padding: 1.5rem;\n  margin-bottom: 1rem;\n  position: relative;\n  overflow: hidden;\n}\n.panel::before {\n  content: '';\n  position: absolute;\n  top: 0; left: 0; right: 0;\n  height: 1px;\n  background: linear-gradient(90deg, transparent, var(--accent), transparent);\n  opacity: 0.4;\n}\n\n\/* \u2500\u2500 Text inputs \u2500\u2500 *\/\n.field { margin-bottom: 1.25rem; }\n.field:last-child { margin-bottom: 0; }\n.field label {\n  display: block;\n  font-family: var(--font-mono);\n  font-size: 11px;\n  letter-spacing: 2px;\n  text-transform: uppercase;\n  color: var(--accent);\n  margin-bottom: 8px;\n}\n.field input[type=text] {\n  width: 100%;\n  background: var(--panel2);\n  border: 1px solid var(--border2);\n  border-radius: 3px;\n  padding: 12px 16px;\n  font-family: var(--font-mono);\n  font-size: 16px;\n  color: #fff;\n  outline: none;\n  transition: border-color 0.2s, box-shadow 0.2s;\n  letter-spacing: 1px;\n}\n.field input[type=text]:focus {\n  border-color: var(--accent);\n  box-shadow: var(--glow);\n}\n.field input[type=text]::placeholder { color: var(--muted); font-size: 14px; }\n\n\/* \u2500\u2500 Origin cards \u2500\u2500 *\/\n.origin-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));\n  gap: 10px;\n}\n.origin-card {\n  background: var(--panel2);\n  border: 1px solid var(--border);\n  border-radius: 4px;\n  padding: 14px;\n  cursor: pointer;\n  transition: border-color 0.2s, background 0.2s, transform 0.15s;\n  position: relative;\n  overflow: hidden;\n}\n.origin-card::after {\n  content: '';\n  position: absolute;\n  inset: 0;\n  background: radial-gradient(circle at 30% 50%, rgba(0,229,255,0.06), transparent 70%);\n  opacity: 0;\n  transition: opacity 0.3s;\n}\n.origin-card:hover { border-color: var(--border2); transform: translateY(-2px); }\n.origin-card:hover::after { opacity: 1; }\n.origin-card.selected {\n  border-color: var(--accent);\n  background: rgba(0,229,255,0.05);\n  box-shadow: var(--glow);\n}\n.origin-card.selected::after { opacity: 1; }\n.origin-icon {\n  font-size: 22px;\n  margin-bottom: 8px;\n  display: block;\n}\n.origin-name {\n  font-family: var(--font-ui);\n  font-weight: 700;\n  font-size: 13px;\n  color: #fff;\n  margin-bottom: 4px;\n  letter-spacing: 0.5px;\n}\n.origin-desc {\n  font-family: var(--font-mono);\n  font-size: 11px;\n  color: var(--muted);\n  line-height: 1.5;\n}\n.origin-card.selected .origin-name { color: var(--accent); }\n.selected-check {\n  position: absolute;\n  top: 10px; right: 10px;\n  width: 18px; height: 18px;\n  border-radius: 50%;\n  background: var(--accent);\n  display: flex; align-items: center; justify-content: center;\n  font-size: 10px;\n  color: #000;\n  opacity: 0;\n  transform: scale(0);\n  transition: opacity 0.2s, transform 0.2s;\n}\n.origin-card.selected .selected-check { opacity: 1; transform: scale(1); }\n\n\/* \u2500\u2500 Power pills \u2500\u2500 *\/\n.power-grid {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 8px;\n}\n.power-pill {\n  padding: 8px 16px;\n  border: 1px solid var(--border2);\n  border-radius: 2px;\n  background: var(--panel2);\n  font-family: var(--font-mono);\n  font-size: 12px;\n  color: var(--text);\n  cursor: pointer;\n  transition: all 0.15s;\n  letter-spacing: 0.5px;\n  position: relative;\n  overflow: hidden;\n}\n.power-pill::before {\n  content: '';\n  position: absolute;\n  left: 0; top: 0; bottom: 0;\n  width: 2px;\n  background: var(--accent);\n  transform: scaleY(0);\n  transition: transform 0.2s;\n}\n.power-pill:hover { border-color: var(--accent); color: #fff; }\n.power-pill:hover::before { transform: scaleY(1); }\n.power-pill.selected {\n  background: rgba(0,229,255,0.08);\n  border-color: var(--accent);\n  color: var(--accent);\n  box-shadow: 0 0 10px rgba(0,229,255,0.15);\n}\n.power-pill.selected::before { transform: scaleY(1); }\n.power-pill.disabled {\n  opacity: 0.35;\n  cursor: not-allowed;\n  pointer-events: none;\n}\n.power-count {\n  font-family: var(--font-mono);\n  font-size: 11px;\n  color: var(--muted);\n  margin-bottom: 1rem;\n  letter-spacing: 1px;\n}\n.power-count span { color: var(--accent); font-weight: bold; }\n\n\/* \u2500\u2500 Nemesis \/ Day job \/ Reason \u2014 option list \u2500\u2500 *\/\n.option-list {\n  display: flex;\n  flex-direction: column;\n  gap: 8px;\n}\n.option-row {\n  display: flex;\n  align-items: flex-start;\n  gap: 14px;\n  padding: 12px 16px;\n  border: 1px solid var(--border);\n  border-radius: 3px;\n  background: var(--panel2);\n  cursor: pointer;\n  transition: all 0.15s;\n}\n.option-row:hover { border-color: var(--border2); background: rgba(255,255,255,0.02); }\n.option-row.selected {\n  border-color: var(--accent);\n  background: rgba(0,229,255,0.05);\n}\n.option-icon { font-size: 20px; flex-shrink: 0; margin-top: 1px; }\n.option-text-wrap { flex: 1; }\n.option-label {\n  font-weight: 700;\n  font-size: 14px;\n  color: #fff;\n  letter-spacing: 0.3px;\n}\n.option-row.selected .option-label { color: var(--accent); }\n.option-sub {\n  font-family: var(--font-mono);\n  font-size: 11px;\n  color: var(--muted);\n  margin-top: 2px;\n  line-height: 1.5;\n}\n.option-radio {\n  width: 16px; height: 16px;\n  border-radius: 50%;\n  border: 1px solid var(--muted);\n  flex-shrink: 0;\n  margin-top: 3px;\n  position: relative;\n  transition: border-color 0.2s;\n}\n.option-row.selected .option-radio {\n  border-color: var(--accent);\n  box-shadow: 0 0 8px rgba(0,229,255,0.4);\n}\n.option-row.selected .option-radio::after {\n  content: '';\n  position: absolute;\n  inset: 3px;\n  border-radius: 50%;\n  background: var(--accent);\n}\n\n\/* \u2500\u2500 Risk meter \u2500\u2500 *\/\n.risk-grid {\n  display: flex;\n  flex-direction: column;\n  gap: 10px;\n}\n.risk-card {\n  display: flex;\n  align-items: center;\n  gap: 16px;\n  padding: 16px;\n  border: 1px solid var(--border);\n  border-radius: 3px;\n  background: var(--panel2);\n  cursor: pointer;\n  transition: all 0.2s;\n}\n.risk-card:hover { border-color: var(--border2); }\n.risk-card.selected { box-shadow: 0 0 20px var(--risk-glow, rgba(0,229,255,0.2)); }\n.risk-indicator {\n  width: 12px; height: 48px;\n  border-radius: 2px;\n  flex-shrink: 0;\n}\n.risk-info { flex: 1; }\n.risk-level {\n  font-family: var(--font-display);\n  font-size: 13px;\n  font-weight: 700;\n  letter-spacing: 1px;\n  margin-bottom: 2px;\n}\n.risk-desc {\n  font-family: var(--font-mono);\n  font-size: 11px;\n  color: var(--muted);\n  line-height: 1.5;\n}\n.risk-badge {\n  font-family: var(--font-mono);\n  font-size: 10px;\n  padding: 4px 10px;\n  border-radius: 2px;\n  letter-spacing: 1px;\n  font-weight: bold;\n  flex-shrink: 0;\n}\n\n\/* \u2500\u2500 Nav buttons \u2500\u2500 *\/\n.nav {\n  display: flex;\n  gap: 10px;\n  margin-top: 1.75rem;\n}\n.btn {\n  padding: 13px 24px;\n  border: 1px solid;\n  border-radius: 3px;\n  font-family: var(--font-display);\n  font-size: 13px;\n  font-weight: 700;\n  letter-spacing: 2px;\n  text-transform: uppercase;\n  cursor: pointer;\n  transition: all 0.15s;\n  position: relative;\n  overflow: hidden;\n}\n.btn::after {\n  content: '';\n  position: absolute;\n  inset: 0;\n  background: currentColor;\n  opacity: 0;\n  transition: opacity 0.15s;\n}\n.btn:active::after { opacity: 0.08; }\n\n.btn-back {\n  background: transparent;\n  border-color: var(--muted);\n  color: var(--muted);\n  flex-shrink: 0;\n}\n.btn-back:hover { border-color: var(--text); color: var(--text); }\n\n.btn-next {\n  flex: 1;\n  background: transparent;\n  border-color: var(--accent);\n  color: var(--accent);\n}\n.btn-next:hover {\n  background: rgba(0,229,255,0.08);\n  box-shadow: var(--glow);\n}\n\n.btn-create {\n  flex: 1;\n  background: var(--accent2);\n  border-color: var(--accent2);\n  color: #fff;\n  box-shadow: 0 0 24px rgba(255,60,95,0.3);\n}\n.btn-create:hover {\n  background: #ff5577;\n  box-shadow: 0 0 32px rgba(255,60,95,0.5);\n}\n\n\/* \u2500\u2500 Dossier reveal \u2500\u2500 *\/\n.dossier {\n  animation: dossierIn 0.7s cubic-bezier(0.22,1,0.36,1) both;\n}\n@keyframes dossierIn {\n  from { opacity: 0; transform: scale(0.96) translateY(20px); }\n  to   { opacity: 1; transform: scale(1) translateY(0); }\n}\n.dossier-header {\n  background: var(--accent2);\n  padding: 1rem 1.5rem;\n  border-radius: 4px 4px 0 0;\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n}\n.dossier-stamp {\n  font-family: var(--font-display);\n  font-size: 11px;\n  letter-spacing: 3px;\n  color: rgba(255,255,255,0.6);\n  text-transform: uppercase;\n}\n.dossier-classified {\n  font-family: var(--font-display);\n  font-size: 18px;\n  font-weight: 900;\n  color: #fff;\n  letter-spacing: 4px;\n  border: 2px solid rgba(255,255,255,0.5);\n  padding: 2px 10px;\n}\n.dossier-body {\n  background: var(--panel);\n  border: 1px solid var(--border2);\n  border-top: none;\n  border-radius: 0 0 4px 4px;\n  padding: 1.75rem;\n}\n.dossier-id-block {\n  margin-bottom: 1.75rem;\n  padding-bottom: 1.5rem;\n  border-bottom: 1px solid var(--border);\n}\n.dossier-hero-name {\n  font-family: var(--font-display);\n  font-size: clamp(24px, 5vw, 38px);\n  font-weight: 900;\n  color: var(--accent);\n  letter-spacing: 3px;\n  text-shadow: 0 0 30px rgba(0,229,255,0.4);\n  line-height: 1.1;\n  margin-bottom: 4px;\n}\n.dossier-alias {\n  font-family: var(--font-mono);\n  font-size: 13px;\n  color: var(--muted);\n  letter-spacing: 1px;\n}\n.dossier-alias span { color: var(--text); }\n.dossier-row {\n  display: grid;\n  grid-template-columns: 1fr 1fr;\n  gap: 1rem;\n  margin-bottom: 1rem;\n}\n.dossier-field { margin-bottom: 0; }\n.dossier-field-label {\n  font-family: var(--font-mono);\n  font-size: 10px;\n  letter-spacing: 2px;\n  text-transform: uppercase;\n  color: var(--accent);\n  margin-bottom: 4px;\n}\n.dossier-field-value {\n  font-family: var(--font-ui);\n  font-size: 14px;\n  font-weight: 600;\n  color: #fff;\n  line-height: 1.4;\n}\n.dossier-divider {\n  border: none;\n  border-top: 1px solid var(--border);\n  margin: 1.25rem 0;\n}\n.dossier-powers {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 6px;\n  margin-top: 6px;\n}\n.dossier-power-tag {\n  font-family: var(--font-mono);\n  font-size: 11px;\n  padding: 4px 12px;\n  border: 1px solid rgba(0,229,255,0.3);\n  border-radius: 2px;\n  color: var(--accent);\n  background: rgba(0,229,255,0.05);\n  letter-spacing: 0.5px;\n}\n.dossier-risk {\n  display: inline-flex;\n  align-items: center;\n  gap: 8px;\n  padding: 6px 14px;\n  border-radius: 2px;\n  font-family: var(--font-mono);\n  font-size: 12px;\n  font-weight: bold;\n  letter-spacing: 1px;\n  margin-top: 6px;\n}\n.dossier-footer {\n  margin-top: 1.5rem;\n  font-family: var(--font-mono);\n  font-size: 10px;\n  color: var(--muted);\n  letter-spacing: 1px;\n  text-align: center;\n  line-height: 1.8;\n}\n.restart-btn {\n  display: block;\n  width: 100%;\n  margin-top: 1.25rem;\n  padding: 13px;\n  background: transparent;\n  border: 1px solid var(--muted);\n  border-radius: 3px;\n  font-family: var(--font-display);\n  font-size: 12px;\n  font-weight: 700;\n  letter-spacing: 2px;\n  color: var(--muted);\n  cursor: pointer;\n  transition: all 0.2s;\n  text-transform: uppercase;\n}\n.restart-btn:hover { border-color: var(--text); color: var(--text); }\n\n\/* \u2500\u2500 Scanline flicker on reveal \u2500\u2500 *\/\n@keyframes scanline {\n  0%   { background-position: 0 0; }\n  100% { background-position: 0 100%; }\n}\n.scan-flash {\n  position: fixed; inset: 0;\n  background: repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(0,229,255,0.015) 2px, rgba(0,229,255,0.015) 4px);\n  pointer-events: none;\n  animation: scanline 8s linear infinite;\n  z-index: 0;\n}\n\n\/* \u2500\u2500 Utility \u2500\u2500 *\/\n.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }\n<\/style>\n\n<script data-wp-block-html=\"js\">\nconst STEPS = ['Identity','Alias','Origin','Abilities','Nemesis','Cover','Risk','Motive','Dossier'];\nconst TOTAL = 8;\n\nconst origins = [\n  { icon:'\ud83e\uddea', name:'Corporate Lab Whistleblower', desc:'Exposed to something you weren\\'t meant to see. Now you can\\'t unsee it.' },\n  { icon:'\ud83d\udc89', name:'Black Market Augmentation', desc:'Bought illegal mods in a back-alley clinic. The warranty was never a guarantee.' },\n  { icon:'\ud83d\udd2c', name:'Government Experiment Survivor', desc:'You escaped a classified program. They haven\\'t stopped looking.' },\n  { icon:'\ud83c\udfed', name:'Industrial Accident', desc:'Wrong place, wrong factory, wrong chemical spill. Luck cuts both ways.' },\n  { icon:'\ud83e\uddec', name:'Inherited Condition', desc:'A parent was different. So are you. The bloodline doesn\\'t ask permission.' },\n  { icon:'\ud83e\ude7a', name:'Street Medic Gone Wrong', desc:'Self-administered something experimental. It worked \u2014 mostly.' },\n  { icon:'\ud83e\udde0', name:'Neural Hack Victim', desc:'Someone broke into your mind and left something behind when they left.' },\n  { icon:'\ud83e\ude96', name:'Military Deserter', desc:'What they did to you in service wasn\\'t legal. You made sure to leave.' },\n  { icon:'\ud83c\udfda\ufe0f', name:'Refugee from a Collapsed Zone', desc:'The disaster changed everyone who survived it. Some more than others.' },\n  { icon:'\ud83d\udcbe', name:'Corporate Espionage Gone Sideways', desc:'The data you stole changed you. You didn\\'t expect that in the briefing.' },\n  { icon:'\ud83d\udd6f\ufe0f', name:'Underground Cult Initiate', desc:'You got out. But not unchanged. Some doors don\\'t close behind you.' },\n  { icon:'\u2753', name:'Unknown', desc:'You woke up different one day. You\\'re still waiting for an explanation.' },\n];\n\nconst powers = [\n  'Mnemonic Override','Subdermal Armor','Signal Ghost','Crowd Blur',\n  'Adrenaline Surge','Structural Read','Pain Redirect','Rapid Tissue Repair',\n  'Electrical Interference','Voice Modulation','Predictive Reflex','Thermal Masking',\n  'Micro-Tremor Control','Neural Static','Shadow Step','Chemical Immunity',\n  'Pressure Sense','Bioluminescent Control','Joint Lock Mastery','Memory Skim'\n];\n\nconst nemeses = [\n  { icon:'\ud83c\udfdb\ufe0f', label:'A Government Agency', sub:'They have your file. They have your face. They\\'re patient.' },\n  { icon:'\ud83c\udfe2', label:'A Megacorporation', sub:'Profit-driven. Relentless. They\\'ve quietly erased people before.' },\n  { icon:'\ud83e\uddb9', label:'A Former Ally', sub:'Someone who knows your weaknesses because you trusted them.' },\n  { icon:'\ud83e\udd16', label:'A Surveillance AI', sub:'It doesn\\'t sleep. It doesn\\'t forget. It\\'s getting closer.' },\n  { icon:'\ud83d\udc64', label:'A Shadow Operative', sub:'A ghost. No records. No name. Appears and disappears.' },\n  { icon:'\ud83d\udcf0', label:'A Crusading Journalist', sub:'Means well. Getting too close. Could expose everything.' },\n  { icon:'\ud83d\udd2b', label:'A Rogue Hero', sub:'Once fought for the same things. Now they\\'ve crossed a line you won\\'t.' },\n  { icon:'\ud83d\udd74\ufe0f', label:'A Crime Syndicate Boss', sub:'Runs half the city from the shadows. You cost them money once.' },\n];\n\nconst dayJobs = [\n  { icon:'\ud83d\ude91', label:'Paramedic', sub:'First on scene. Always a reason to be where trouble is.' },\n  { icon:'\ud83d\udce6', label:'Delivery Driver', sub:'Knows every route, every blind spot, every building.' },\n  { icon:'\ud83d\udee0\ufe0f', label:'Building Maintenance', sub:'Access everywhere. Invisible to everyone.' },\n  { icon:'\ud83c\udf5c', label:'Late Night Cook', sub:'Works while the city sleeps. Nobody questions the hours.' },\n  { icon:'\ud83d\udce1', label:'IT Field Technician', sub:'Invited inside every system and network you need.' },\n  { icon:'\ud83d\udcda', label:'Archivist', sub:'Access to records most people don\\'t know exist.' },\n  { icon:'\ud83d\ude8c', label:'Transit Worker', sub:'The arteries of the city. You know them better than anyone.' },\n  { icon:'\ud83c\udfad', label:'Freelance Artist', sub:'No fixed schedule. No one notices where you go.' },\n];\n\nconst riskLevels = [\n  { dot:'\ud83d\udfe2', color:'#22c55e', glow:'rgba(34,197,94,0.25)', badge:'UNREGISTERED', badgeBg:'rgba(34,197,94,0.1)', badgeColor:'#22c55e', label:'Unregistered', desc:'No file. No flag. You don\\'t exist in their systems yet. Keep it that way.' },\n  { dot:'\ud83d\udfe1', color:'#eab308', glow:'rgba(234,179,8,0.25)', badge:'FLAGGED', badgeBg:'rgba(234,179,8,0.1)', badgeColor:'#eab308', label:'Flagged', desc:'A file exists somewhere. Someone noticed something. You don\\'t know who.' },\n  { dot:'\ud83d\udfe0', color:'#f97316', glow:'rgba(249,115,22,0.25)', badge:'MONITORED', badgeBg:'rgba(249,115,22,0.1)', badgeColor:'#f97316', label:'Monitored', desc:'Active surveillance. They\\'re watching your patterns. One mistake matters.' },\n  { dot:'\ud83d\udd34', color:'#ef4444', glow:'rgba(239,68,68,0.25)', badge:'PRIORITY TARGET', badgeBg:'rgba(239,68,68,0.1)', badgeColor:'#ef4444', label:'Priority Target', desc:'They want you badly. Resources are committed. Every contact is a risk.' },\n  { dot:'\u26ab', color:'#94a3b8', glow:'rgba(148,163,184,0.2)', badge:'ERASED', badgeBg:'rgba(148,163,184,0.08)', badgeColor:'#94a3b8', label:'Erased', desc:'Officially you don\\'t exist. Which means they\\'ve decided to handle it privately.' },\n];\n\nconst reasons = [\n  { icon:'\ud83d\udc6a', label:'Someone was taken from me', sub:'Grief turned into fuel. You can\\'t bring them back. You can stop it happening to others.' },\n  { icon:'\ud83c\udf06', label:'I grew up in the wreckage', sub:'You know what neglect looks like from the inside. You\\'re done watching.' },\n  { icon:'\ud83e\uddfe', label:'I know what they\\'re hiding', sub:'You\\'ve seen the files. The real ones. You can\\'t pretend you haven\\'t.' },\n  { icon:'\ud83d\udee1\ufe0f', label:'Someone has to', sub:'No grand story. No tragedy. Just the simple math of what\\'s right.' },\n  { icon:'\ud83d\udc94', label:'Guilt I\\'m trying to outrun', sub:'You were part of the problem once. This doesn\\'t fix it. But it\\'s a start.' },\n  { icon:'\ud83d\udd25', label:'I\\'m angry and I\\'m not stopping', sub:'Rage isn\\'t always wrong. Sometimes it\\'s the only honest response.' },\n  { icon:'\ud83e\udde9', label:'I\\'m still figuring that out', sub:'No clean answer yet. But you keep showing up anyway. That counts.' },\n  { icon:'\ud83c\udf31', label:'For the world I want to exist', sub:'Not the world as it is. The one that could be. You\\'re building toward it.' },\n];\n\n\/\/ State\nlet currentStep = 0;\nconst state = {\n  heroName: '', realName: '',\n  origin: null, powers: [],\n  nemesis: null, dayJob: null,\n  risk: null, reason: null\n};\n\n\/\/ Build progress\nfunction buildProgress() {\n  const track = document.getElementById('progressTrack');\n  const labels = document.getElementById('progressLabels');\n  track.innerHTML = '';\n  labels.innerHTML = '';\n  const stepLabels = ['Name','Alias','Origin','Powers','Nemesis','Cover','Risk','Motive'];\n  for (let i = 0; i < TOTAL; i++) {\n    const seg = document.createElement('div');\n    seg.className = 'progress-seg' + (i < currentStep ? ' done' : i === currentStep ? ' active' : '');\n    track.appendChild(seg);\n  }\n  const first = document.createElement('span');\n  first.textContent = stepLabels[Math.max(0,currentStep-1)] || stepLabels[0];\n  first.className = '';\n  const cur = document.createElement('span');\n  cur.textContent = stepLabels[currentStep] || '';\n  cur.className = 'active-lbl';\n  const last = document.createElement('span');\n  last.textContent = `${currentStep+1} \/ ${TOTAL}`;\n  labels.appendChild(first);\n  labels.appendChild(cur);\n  labels.appendChild(last);\n}\n\nfunction showStep(n) {\n  document.querySelectorAll('.step').forEach((s,i) => {\n    s.classList.toggle('active', i === n);\n  });\n  currentStep = n;\n  buildProgress();\n}\n\nfunction nextStep() {\n  \/\/ Save text inputs\n  state.heroName = document.getElementById('heroName').value.trim();\n  state.realName = document.getElementById('realName').value.trim();\n  if (currentStep < TOTAL) showStep(currentStep + 1);\n}\nfunction prevStep() {\n  if (currentStep > 0) showStep(currentStep - 1);\n}\n\n\/\/ Build origins\nfunction buildOrigins() {\n  const grid = document.getElementById('originGrid');\n  origins.forEach((o, i) => {\n    const card = document.createElement('div');\n    card.className = 'origin-card' + (state.origin === i ? ' selected' : '');\n    card.innerHTML = `\n      <div class=\"selected-check\">\u2713<\/div>\n      <span class=\"origin-icon\">${o.icon}<\/span>\n      <div class=\"origin-name\">${o.name}<\/div>\n      <div class=\"origin-desc\">${o.desc}<\/div>\n    `;\n    card.addEventListener('click', () => {\n      state.origin = i;\n      grid.querySelectorAll('.origin-card').forEach(c => c.classList.remove('selected'));\n      card.classList.add('selected');\n    });\n    grid.appendChild(card);\n  });\n}\n\n\/\/ Build powers\nfunction buildPowers() {\n  const grid = document.getElementById('powerGrid');\n  powers.forEach((p, i) => {\n    const pill = document.createElement('div');\n    pill.className = 'power-pill' + (state.powers.includes(i) ? ' selected' : '');\n    pill.textContent = p;\n    pill.addEventListener('click', () => {\n      if (state.powers.includes(i)) {\n        state.powers = state.powers.filter(x => x !== i);\n        pill.classList.remove('selected');\n      } else if (state.powers.length < 3) {\n        state.powers.push(i);\n        pill.classList.add('selected');\n      }\n      document.getElementById('powerCount').textContent = state.powers.length;\n      \/\/ Disable unselected if at max\n      grid.querySelectorAll('.power-pill').forEach(pl => {\n        if (!pl.classList.contains('selected')) {\n          pl.classList.toggle('disabled', state.powers.length >= 3);\n        }\n      });\n    });\n    grid.appendChild(pill);\n  });\n}\n\n\/\/ Generic option list\nfunction buildOptionList(containerId, data, stateKey) {\n  const container = document.getElementById(containerId);\n  data.forEach((item, i) => {\n    const row = document.createElement('div');\n    row.className = 'option-row' + (state[stateKey] === i ? ' selected' : '');\n    row.innerHTML = `\n      <div class=\"option-icon\">${item.icon}<\/div>\n      <div class=\"option-text-wrap\">\n        <div class=\"option-label\">${item.label}<\/div>\n        <div class=\"option-sub\">${item.sub}<\/div>\n      <\/div>\n      <div class=\"option-radio\"><\/div>\n    `;\n    row.addEventListener('click', () => {\n      state[stateKey] = i;\n      container.querySelectorAll('.option-row').forEach(r => r.classList.remove('selected'));\n      row.classList.add('selected');\n    });\n    container.appendChild(row);\n  });\n}\n\n\/\/ Build risk\nfunction buildRisk() {\n  const grid = document.getElementById('riskGrid');\n  riskLevels.forEach((r, i) => {\n    const card = document.createElement('div');\n    card.className = 'risk-card' + (state.risk === i ? ' selected' : '');\n    card.style.setProperty('--risk-glow', r.glow);\n    if (state.risk === i) {\n      card.style.borderColor = r.color;\n    }\n    card.innerHTML = `\n      <div class=\"risk-indicator\" style=\"background:${r.color}; box-shadow: 0 0 10px ${r.color}\"><\/div>\n      <div class=\"risk-info\">\n        <div class=\"risk-level\" style=\"color:${r.color}\">${r.label}<\/div>\n        <div class=\"risk-desc\">${r.desc}<\/div>\n      <\/div>\n      <div class=\"risk-badge\" style=\"background:${r.badgeBg}; color:${r.badgeColor}; border: 1px solid ${r.color}33\">${r.badge}<\/div>\n    `;\n    card.addEventListener('click', () => {\n      state.risk = i;\n      grid.querySelectorAll('.risk-card').forEach(c => {\n        c.classList.remove('selected');\n        c.style.borderColor = '';\n      });\n      card.classList.add('selected');\n      card.style.borderColor = r.color;\n    });\n    grid.appendChild(card);\n  });\n}\n\nfunction buildDossier() {\n  state.heroName = document.getElementById('heroName').value.trim() || 'Unknown';\n  state.realName = document.getElementById('realName').value.trim() || 'Unknown';\n  showStep(8);\n\n  const origin = state.origin !== null ? origins[state.origin] : null;\n  const selectedPowers = state.powers.map(i => powers[i]);\n  const nemesis = state.nemesis !== null ? nemeses[state.nemesis] : null;\n  const job = state.dayJob !== null ? dayJobs[state.dayJob] : null;\n  const risk = state.risk !== null ? riskLevels[state.risk] : null;\n  const reason = state.reason !== null ? reasons[state.reason] : null;\n  const fileId = 'HF-' + Math.random().toString(36).slice(2,8).toUpperCase();\n  const now = new Date();\n  const dateStr = now.toLocaleDateString('en-US', {year:'numeric',month:'short',day:'numeric'});\n\n  const wrap = document.getElementById('dossierWrap');\n  wrap.innerHTML = `\n    <div class=\"dossier-header\">\n      <div class=\"dossier-stamp\">File #${fileId} &nbsp;\u00b7&nbsp; ${dateStr}<\/div>\n      <div class=\"dossier-classified\">CLASSIFIED<\/div>\n    <\/div>\n    <div class=\"dossier-body\">\n      <div class=\"dossier-id-block\">\n        <div class=\"dossier-hero-name\">${state.heroName || '[ REDACTED ]'}<\/div>\n        <div class=\"dossier-alias\">Civilian identity: <span>${state.realName || '[ UNKNOWN ]'}<\/span><\/div>\n      <\/div>\n\n      <div class=\"dossier-row\">\n        <div class=\"dossier-field\">\n          <div class=\"dossier-field-label\">Origin<\/div>\n          <div class=\"dossier-field-value\">${origin ? origin.icon + ' ' + origin.name : '\u2014'}<\/div>\n        <\/div>\n        <div class=\"dossier-field\">\n          <div class=\"dossier-field-label\">Cover Employment<\/div>\n          <div class=\"dossier-field-value\">${job ? job.icon + ' ' + job.label : '\u2014'}<\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"dossier-field\" style=\"margin-bottom:1rem\">\n        <div class=\"dossier-field-label\">Documented Abilities<\/div>\n        <div class=\"dossier-powers\">\n          ${selectedPowers.length ? selectedPowers.map(p=>`<span class=\"dossier-power-tag\">${p}<\/span>`).join('') : '<span style=\"color:var(--muted);font-size:13px\">None documented<\/span>'}\n        <\/div>\n      <\/div>\n\n      <hr class=\"dossier-divider\">\n\n      <div class=\"dossier-row\">\n        <div class=\"dossier-field\">\n          <div class=\"dossier-field-label\">Known Adversary<\/div>\n          <div class=\"dossier-field-value\">${nemesis ? nemesis.icon + ' ' + nemesis.label : '\u2014'}<\/div>\n        <\/div>\n        <div class=\"dossier-field\">\n          <div class=\"dossier-field-label\">Threat Classification<\/div>\n          <div>\n            ${risk ? `<div class=\"dossier-risk\" style=\"background:${risk.badgeBg};color:${risk.badgeColor};border:1px solid ${risk.color}44\">${risk.dot} ${risk.badge}<\/div>` : '\u2014'}\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <hr class=\"dossier-divider\">\n\n      <div class=\"dossier-field\">\n        <div class=\"dossier-field-label\">Motivation on File<\/div>\n        <div class=\"dossier-field-value\">${reason ? reason.icon + ' ' + reason.label : '\u2014'}<\/div>\n        ${reason ? `<div style=\"font-family:var(--font-mono);font-size:12px;color:var(--muted);margin-top:6px;line-height:1.6\">${reason.sub}<\/div>` : ''}\n      <\/div>\n\n      <div class=\"dossier-footer\">\n        THIS DOCUMENT IS ENCRYPTED AND SELF-DELETING<br>\n        DO NOT DUPLICATE \u00b7 DO NOT TRANSMIT \u00b7 DO NOT EXIST\n      <\/div>\n    <\/div>\n    <button class=\"restart-btn\" onclick=\"restart()\">\u21a9 Build Another Hero<\/button>\n  `;\n}\n\nfunction restart() {\n  state.heroName = ''; state.realName = '';\n  state.origin = null; state.powers = [];\n  state.nemesis = null; state.dayJob = null;\n  state.risk = null; state.reason = null;\n  document.getElementById('heroName').value = '';\n  document.getElementById('realName').value = '';\n  document.getElementById('originGrid').innerHTML = '';\n  document.getElementById('powerGrid').innerHTML = '';\n  document.getElementById('nemesisList').innerHTML = '';\n  document.getElementById('dayJobList').innerHTML = '';\n  document.getElementById('riskGrid').innerHTML = '';\n  document.getElementById('reasonList').innerHTML = '';\n  buildOrigins(); buildPowers();\n  buildOptionList('nemesisList', nemeses, 'nemesis');\n  buildOptionList('dayJobList', dayJobs, 'dayJob');\n  buildRisk();\n  buildOptionList('reasonList', reasons, 'reason');\n  showStep(0);\n}\n\n\/\/ Init\nbuildProgress();\nbuildOrigins();\nbuildPowers();\nbuildOptionList('nemesisList', nemeses, 'nemesis');\nbuildOptionList('dayJobList', dayJobs, 'dayJob');\nbuildRisk();\nbuildOptionList('reasonList', reasons, 'reason');\n<\/script>\n\n\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Share+Tech+Mono&amp;family=Rajdhani:wght@400;600;700&amp;family=Orbitron:wght@700;900&amp;display=swap\" rel=\"stylesheet\">\n\n\n\n<div class=\"scan-flash\" aria-hidden=\"true\"><\/div>\n\n<div class=\"app\">\n  <h2 class=\"sr-only\">Hero Forge \u2014 Superhero Character Creator<\/h2>\n\n  <div class=\"hdr\">\n    <div class=\"hdr-eyebrow\">\/\/ classified system \/\/<\/div>\n    <h1>HERO FORGE<\/h1>\n    <div class=\"hdr-sub\">underground character registry \u2014 keep this off the grid<\/div>\n  <\/div>\n\n  <div class=\"progress-wrap\">\n    <div class=\"progress-track\" id=\"progressTrack\"><\/div>\n    <div class=\"progress-labels\" id=\"progressLabels\"><\/div>\n  <\/div>\n\n  <!-- STEP 1: Hero Name -->\n  <div class=\"step active\" id=\"step-0\">\n    <div class=\"step-hdr\">\n      <div class=\"step-num\">\/\/ 01 of 08<\/div>\n      <div class=\"step-title\">Choose Your Name<\/div>\n      <div class=\"step-desc\">Your hero name. The name that will be whispered, feared, or forgotten.<br>Make it count. Make it deniable.<\/div>\n    <\/div>\n    <div class=\"panel\">\n      <div class=\"field\">\n        <label for=\"heroName\">Hero Callsign<\/label>\n        <input type=\"text\" id=\"heroName\" placeholder=\"e.g. Dusk, Threadbare, Null\u2026\" autocomplete=\"off\">\n      <\/div>\n    <\/div>\n    <div class=\"nav\">\n      <button class=\"btn btn-next\" onclick=\"nextStep()\">Proceed \u2192<\/button>\n    <\/div>\n  <\/div>\n\n  <!-- STEP 2: Secret Identity -->\n  <div class=\"step\" id=\"step-1\">\n    <div class=\"step-hdr\">\n      <div class=\"step-num\">\/\/ 02 of 08<\/div>\n      <div class=\"step-title\">Secret Identity<\/div>\n      <div class=\"step-desc\">The face you wear for the world. Your cover. Guard it with everything you have.<\/div>\n    <\/div>\n    <div class=\"panel\">\n      <div class=\"field\">\n        <label for=\"realName\">Civilian Name<\/label>\n        <input type=\"text\" id=\"realName\" placeholder=\"e.g. Mara Sol\u00eds, Dev Okonkwo\u2026\" autocomplete=\"off\">\n      <\/div>\n    <\/div>\n    <div class=\"nav\">\n      <button class=\"btn btn-back\" onclick=\"prevStep()\">\u2190 Back<\/button>\n      <button class=\"btn btn-next\" onclick=\"nextStep()\">Proceed \u2192<\/button>\n    <\/div>\n  <\/div>\n\n  <!-- STEP 3: Origin -->\n  <div class=\"step\" id=\"step-2\">\n    <div class=\"step-hdr\">\n      <div class=\"step-num\">\/\/ 03 of 08<\/div>\n      <div class=\"step-title\">Origin<\/div>\n      <div class=\"step-desc\">How did you become what you are? Every hero has a wound. What&#8217;s yours?<\/div>\n    <\/div>\n    <div class=\"panel\">\n      <div class=\"origin-grid\" id=\"originGrid\"><\/div>\n    <\/div>\n    <div class=\"nav\">\n      <button class=\"btn btn-back\" onclick=\"prevStep()\">\u2190 Back<\/button>\n      <button class=\"btn btn-next\" onclick=\"nextStep()\">Proceed \u2192<\/button>\n    <\/div>\n  <\/div>\n\n  <!-- STEP 4: Powers -->\n  <div class=\"step\" id=\"step-3\">\n    <div class=\"step-hdr\">\n      <div class=\"step-num\">\/\/ 04 of 08<\/div>\n      <div class=\"step-title\">Abilities<\/div>\n      <div class=\"step-desc\">Choose 2\u20133 abilities. Nothing flashy. You survive by staying subtle.<\/div>\n    <\/div>\n    <div class=\"panel\">\n      <div class=\"power-count\">Selected: <span id=\"powerCount\">0<\/span> \/ 3<\/div>\n      <div class=\"power-grid\" id=\"powerGrid\"><\/div>\n    <\/div>\n    <div class=\"nav\">\n      <button class=\"btn btn-back\" onclick=\"prevStep()\">\u2190 Back<\/button>\n      <button class=\"btn btn-next\" onclick=\"nextStep()\">Proceed \u2192<\/button>\n    <\/div>\n  <\/div>\n\n  <!-- STEP 5: Arch-Nemesis -->\n  <div class=\"step\" id=\"step-4\">\n    <div class=\"step-hdr\">\n      <div class=\"step-num\">\/\/ 05 of 08<\/div>\n      <div class=\"step-title\">Arch-Nemesis<\/div>\n      <div class=\"step-desc\">Who&#8217;s hunting you? Who do you refuse to stop fighting, no matter the cost?<\/div>\n    <\/div>\n    <div class=\"panel\">\n      <div class=\"option-list\" id=\"nemesisList\"><\/div>\n    <\/div>\n    <div class=\"nav\">\n      <button class=\"btn btn-back\" onclick=\"prevStep()\">\u2190 Back<\/button>\n      <button class=\"btn btn-next\" onclick=\"nextStep()\">Proceed \u2192<\/button>\n    <\/div>\n  <\/div>\n\n  <!-- STEP 6: Day Job -->\n  <div class=\"step\" id=\"step-5\">\n    <div class=\"step-hdr\">\n      <div class=\"step-num\">\/\/ 06 of 08<\/div>\n      <div class=\"step-title\">Day Job<\/div>\n      <div class=\"step-desc\">What keeps you off the grid? Your cover. Your access. Your alibi.<\/div>\n    <\/div>\n    <div class=\"panel\">\n      <div class=\"option-list\" id=\"dayJobList\"><\/div>\n    <\/div>\n    <div class=\"nav\">\n      <button class=\"btn btn-back\" onclick=\"prevStep()\">\u2190 Back<\/button>\n      <button class=\"btn btn-next\" onclick=\"nextStep()\">Proceed \u2192<\/button>\n    <\/div>\n  <\/div>\n\n  <!-- STEP 7: Risk Level -->\n  <div class=\"step\" id=\"step-6\">\n    <div class=\"step-hdr\">\n      <div class=\"step-num\">\/\/ 07 of 08<\/div>\n      <div class=\"step-title\">Threat Classification<\/div>\n      <div class=\"step-desc\">How hot is the trail behind you? This is their assessment. Not yours.<\/div>\n    <\/div>\n    <div class=\"panel\">\n      <div class=\"risk-grid\" id=\"riskGrid\"><\/div>\n    <\/div>\n    <div class=\"nav\">\n      <button class=\"btn btn-back\" onclick=\"prevStep()\">\u2190 Back<\/button>\n      <button class=\"btn btn-next\" onclick=\"nextStep()\">Proceed \u2192<\/button>\n    <\/div>\n  <\/div>\n\n  <!-- STEP 8: Reason -->\n  <div class=\"step\" id=\"step-7\">\n    <div class=\"step-hdr\">\n      <div class=\"step-num\">\/\/ 08 of 08<\/div>\n      <div class=\"step-title\">Why You Fight<\/div>\n      <div class=\"step-desc\">Power without purpose burns out fast. What keeps you going when everything says stop?<\/div>\n    <\/div>\n    <div class=\"panel\">\n      <div class=\"option-list\" id=\"reasonList\"><\/div>\n    <\/div>\n    <div class=\"nav\">\n      <button class=\"btn btn-back\" onclick=\"prevStep()\">\u2190 Back<\/button>\n      <button class=\"btn btn-create\" onclick=\"buildDossier()\">\u26a1 Generate Dossier<\/button>\n    <\/div>\n  <\/div>\n\n  <!-- DOSSIER -->\n  <div class=\"step\" id=\"step-8\">\n    <div class=\"dossier\" id=\"dossierWrap\"><\/div>\n  <\/div>\n<\/div>\n\n","protected":false},"excerpt":{"rendered":"<p>Hero Forge \u2014 Superhero Character Creator \/\/ classified system \/\/ HERO FORGE underground character registry \u2014 keep this off the grid \/\/ 01 of 08 Choose Your Name Your hero name. The name that will be whispered, feared, or forgotten.Make it count. Make it deniable. Hero Callsign Proceed \u2192 \/\/ 02 of 08 Secret Identity [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"inline_featured_image":false,"footnotes":""},"class_list":["post-4692","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/imaginariumrpg.com\/index.php?rest_route=\/wp\/v2\/pages\/4692","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/imaginariumrpg.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/imaginariumrpg.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/imaginariumrpg.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/imaginariumrpg.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4692"}],"version-history":[{"count":11,"href":"https:\/\/imaginariumrpg.com\/index.php?rest_route=\/wp\/v2\/pages\/4692\/revisions"}],"predecessor-version":[{"id":4707,"href":"https:\/\/imaginariumrpg.com\/index.php?rest_route=\/wp\/v2\/pages\/4692\/revisions\/4707"}],"wp:attachment":[{"href":"https:\/\/imaginariumrpg.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4692"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}