/* ── REACTION PICKER ── */
.reaction-picker{
  position:fixed;z-index:9999;
  background:rgba(8,7,26,0.97);
  border:1px solid rgba(var(--acc-rgb),0.2);
  border-radius:16px;padding:12px;
  display:flex;flex-wrap:wrap;gap:4px;
  max-width:340px;max-height:260px;overflow-y:auto;
  backdrop-filter:blur(24px);
  box-shadow:0 8px 40px rgba(0,0,0,0.6),0 0 24px rgba(var(--acc-rgb),0.08);
  animation:pickerIn 0.15s ease;
}
@keyframes pickerIn{
  from{opacity:0;transform:scale(0.92) translateY(4px)}
  to  {opacity:1;transform:scale(1) translateY(0)}
}
.rp-btn{
  width:34px;height:34px;border-radius:8px;
  border:none;background:transparent;
  font-size:18px;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:background 0.12s,transform 0.1s;line-height:1;
}
.rp-btn:hover{background:rgba(var(--acc-rgb),0.12);transform:scale(1.2)}

/* ── IDLE / NO CHAT STATE ── */
#idle-screen{
  position:absolute;inset:0;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:32px;padding:40px 24px;
  z-index:5;pointer-events:none;
  opacity:0;transition:opacity 0.6s ease;
}
#idle-screen.show{opacity:1;pointer-events:auto}
.idle-mark{
  font-family:var(--font-display);font-size:clamp(18px,3vw,28px);font-weight:200;
  letter-spacing:0.5em;color:rgba(var(--acc-rgb),0.25);text-transform:uppercase;
}
.idle-discover-btn{
  display:flex;align-items:center;gap:10px;
  padding:12px 28px;border-radius:12px;
  border:1px solid rgba(var(--acc-rgb),0.2);
  background:rgba(var(--acc-rgb),0.05);
  color:var(--sub);cursor:pointer;
  font-family:var(--font-mono);font-size:10px;letter-spacing:0.18em;
  text-transform:uppercase;transition:all 0.25s;
  backdrop-filter:blur(8px);
}
.idle-discover-btn:hover{
  border-color:rgba(var(--acc-rgb),0.5);
  background:rgba(var(--acc-rgb),0.12);
  color:var(--text);
  box-shadow:0 0 24px rgba(var(--acc-rgb),0.1);
}
.idle-discover-btn svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.6}
.idle-hint{
  font-family:var(--font-mono);font-size:8px;letter-spacing:0.18em;
  color:rgba(var(--acc-rgb),0.55);text-transform:uppercase;text-align:center;
  line-height:2;max-width:200px;
}

/* ── VIEWS ── */
#view-overlay{
  position:fixed;inset:0;z-index:200;
  background-color:rgba(4,3,9,0.96);
  /* painted light — the room is lit from within, never flat black */
  background-image:
    radial-gradient(ellipse 70% 45% at 50% -8%,rgba(var(--acc-rgb),0.07),transparent 60%),
    radial-gradient(ellipse 55% 40% at 88% 108%,rgba(var(--acc-rgb),0.045),transparent 60%);
  backdrop-filter:blur(24px);
  display:none;flex-direction:column;
  overflow-y:auto;
}
#view-overlay.open{display:flex;animation:viewIn 0.3s ease}
@keyframes viewIn{from{opacity:0;transform:translateX(24px)}to{opacity:1;transform:none}}
.view-header{
  padding:16px max(20px,calc((100% - 720px) / 2));
  border-bottom:1px solid var(--muted);
  display:flex;align-items:center;gap:14px;flex-shrink:0;
}
.view-back{
  background:none;border:none;color:var(--sub);cursor:pointer;
  width:32px;height:32px;display:flex;align-items:center;justify-content:center;
  border-radius:50%;transition:all 0.15s;
}
.view-back:hover{background:var(--acc-dim);color:var(--text)}
.view-back svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2}
.view-title{font-family:var(--font-display);font-size:15px;font-weight:300;letter-spacing:0.08em}
.view-body{padding:20px;max-width:720px;margin:0 auto;width:100%}

/* ── FEED VIEW ── */
.feed-post{
  background:rgba(10,9,22,0.6);
  border:1px solid var(--muted);
  border-radius:12px;padding:16px;margin-bottom:12px;
  backdrop-filter:blur(8px);transition:border-color 0.2s;
}
.feed-post:hover{border-color:var(--acc-border)}
.fp-header{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.fp-avatar{width:34px;height:34px;border-radius:50%;background:var(--bg-r);overflow:hidden;flex-shrink:0}
.fp-avatar img{width:100%;height:100%;object-fit:cover}
.fp-name{font-size:12px;font-weight:600;color:var(--text);letter-spacing:0.02em}
.fp-time{font-size:9px;color:var(--muted);margin-top:1px;font-family:var(--font-mono)}
.fp-body{font-size:12px;color:var(--sub);line-height:1.65;margin-bottom:10px}
.fp-reactions{display:flex;gap:6px;flex-wrap:wrap}
.fp-react{
  background:none;border:1px solid var(--muted);
  border-radius:8px;padding:4px 10px;
  font-size:10px;cursor:pointer;color:var(--sub);
  transition:all 0.15s;display:flex;align-items:center;gap:4px;
}
.fp-react:hover{border-color:var(--acc-border);color:var(--text);background:var(--acc-dim)}
.fp-react.reacted{border-color:rgba(var(--char-rgb),0.35);color:rgba(var(--char-rgb),0.8);background:rgba(var(--char-rgb),0.08)}

/* ── WORLDS VIEW ── */
.world-card-large{
  background:rgba(10,9,22,0.6);
  border:1px solid var(--muted);
  border-radius:12px;padding:18px;margin-bottom:12px;
  cursor:pointer;transition:all 0.2s;backdrop-filter:blur(8px);
}
.world-card-large:hover{border-color:var(--acc-border);transform:translateY(-1px);box-shadow:0 4px 24px rgba(0,0,0,0.3)}
.wcl-name{font-family:var(--font-display);font-size:16px;font-weight:300;letter-spacing:0.08em;color:var(--text);margin-bottom:4px}
.wcl-desc{font-size:11px;color:var(--sub);line-height:1.55;margin-bottom:12px}
.wcl-bottom{display:flex;align-items:center;justify-content:space-between}
.wcl-health{font-family:var(--font-mono);font-size:9px;letter-spacing:0.1em;color:var(--sub)}
.wcl-health-bar{width:80px;height:2px;background:var(--muted);border-radius:1px;overflow:hidden;margin-top:3px}
.wcl-health-fill{height:100%;border-radius:1px;transition:width 1s ease}
.wcl-events{display:flex;flex-direction:column;gap:4px;margin-top:12px}
.wcl-event{font-size:10px;color:var(--sub);padding:5px 8px;background:rgba(var(--acc-rgb),0.04);border-radius:5px;border-left:2px solid rgba(var(--acc-rgb),0.2)}

/* ── PROFILE VIEW ── */
.profile-hero{
  display:flex;gap:16px;align-items:flex-start;
  background:rgba(10,9,22,0.5);border:1px solid var(--muted);
  border-radius:12px;padding:20px;margin-bottom:16px;
}
.ph-portrait{
  width:72px;height:72px;border-radius:50%;
  background:var(--bg-r);overflow:hidden;flex-shrink:0;
  border:1px solid var(--acc-border);
}
.ph-portrait img{width:100%;height:100%;object-fit:cover}
.ph-handle{font-family:var(--font-display);font-size:20px;font-weight:200;letter-spacing:0.06em;color:var(--text);margin-bottom:3px}
.ph-tagline{font-size:11px;color:var(--sub);line-height:1.5;margin-bottom:12px}
.ph-stats{display:flex;gap:20px}
.ph-stat{display:flex;flex-direction:column;gap:2px}
.ph-stat-val{font-family:var(--font-display);font-size:18px;font-weight:200;color:var(--acc)}
.ph-stat-lbl{font-family:var(--font-mono);font-size:8px;letter-spacing:0.1em;color:var(--muted);text-transform:uppercase}
.section-label{font-family:var(--font-mono);font-size:8px;letter-spacing:0.2em;color:var(--sub);text-transform:uppercase;margin:16px 0 8px;padding-bottom:6px;border-bottom:1px solid var(--muted)}

/* ── PERSONA SWITCHER ── */
.persona-switcher{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 8px}
.persona-pick{display:flex;align-items:center;gap:10px;padding:8px 13px 8px 8px;border:1px solid var(--acc-border);border-radius:12px;background:rgba(255,255,255,0.02);cursor:pointer;transition:border-color .15s,background .15s;min-width:158px;max-width:230px}
.persona-pick:hover{border-color:var(--acc);background:var(--acc-dim)}
.persona-pick.active{border-color:var(--acc);background:rgba(var(--acc-rgb),0.14)}
.persona-pick .pp-av{width:36px;height:36px;border-radius:50%;overflow:hidden;flex:0 0 auto;background:radial-gradient(circle at 40% 35%,rgba(var(--acc-rgb),0.55),rgba(4,3,9,0.92))}
.persona-pick .pp-av img{width:100%;height:100%;object-fit:cover;display:block}
.persona-pick .pp-meta{min-width:0}
.persona-pick .pp-name{font-size:13px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.persona-pick .pp-sub{font-size:11px;color:var(--sub);max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ── SCENES / SCENARIO START ── */
.scn-lede{font-size:13px;color:var(--sub);margin:0 0 14px;line-height:1.5}
.scn-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:12px}
.scn-card{border:1px solid var(--acc-border);border-radius:14px;overflow:hidden;cursor:pointer;background:var(--bg-panel);transition:border-color .15s,transform .15s}
.scn-card:hover{border-color:var(--acc);transform:translateY(-2px)}
.scn-card-img{height:96px;background:var(--acc-dim) center/cover no-repeat}
.scn-card-body{padding:10px 12px 12px}
.scn-card-title{font-size:14px;font-weight:600;color:var(--text);margin-bottom:3px}
.scn-card-tag{font-size:11px;color:var(--sub);line-height:1.4;max-height:2.9em;overflow:hidden;margin-bottom:8px}
.scn-card-meta{display:flex;gap:6px;flex-wrap:wrap}
.scn-chip{font-family:var(--font-mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--acc);border:1px solid var(--acc-border);border-radius:999px;padding:2px 8px}
.scn-back{background:none;border:none;color:var(--sub);font-size:12px;cursor:pointer;padding:0;margin-bottom:12px}
.scn-back:hover{color:var(--acc)}
.scn-hero{height:150px;border-radius:14px;background:var(--acc-dim) center/cover no-repeat;border:1px solid var(--acc-border);margin-bottom:14px}
.scn-launch-title{font-size:18px;font-weight:700;color:var(--text);margin-bottom:6px}
.scn-launch-premise{font-size:13px;color:var(--sub);line-height:1.5;margin-bottom:4px}
.scn-cast-hint{font-size:11px;color:var(--sub);margin-bottom:8px}
.scn-sel{width:100%;padding:10px 12px;border:1px solid var(--acc-border);border-radius:10px;background:var(--bg-panel);color:var(--text);font-size:13px;margin-bottom:6px}
.scn-enter{width:100%;margin-top:16px;padding:13px;border:1px solid var(--acc);border-radius:10px;background:var(--acc-dim);color:var(--text);font-family:var(--font-mono);font-size:12px;letter-spacing:.15em;cursor:pointer;transition:background .15s}
.scn-enter:hover{background:rgba(var(--acc-rgb),0.2)}

/* ── IDENTITY EDITOR ── */
.ph-edit{
  align-self:flex-start;flex-shrink:0;
  background:none;border:1px solid rgba(var(--acc-rgb),0.2);
  border-radius:7px;padding:6px 12px;
  font-family:var(--font-mono);font-size:8px;letter-spacing:0.16em;
  color:rgba(var(--acc-rgb),0.65);cursor:pointer;text-transform:uppercase;
  transition:all 0.18s;white-space:nowrap;
}
.ph-edit:hover{border-color:rgba(var(--acc-rgb),0.5);color:var(--acc);background:rgba(var(--acc-rgb),0.07)}
.persona-editor{
  background:rgba(10,9,22,0.5);border:1px solid var(--acc-border);
  border-radius:12px;padding:16px;margin-bottom:16px;
  display:flex;flex-direction:column;gap:8px;
}
.pe-label{font-family:var(--font-mono);font-size:8px;letter-spacing:0.16em;color:var(--sub);text-transform:uppercase;margin-top:4px}
.persona-editor input,.persona-editor textarea{
  background:rgba(4,3,9,0.6);border:1px solid var(--muted);
  border-radius:8px;padding:9px 12px;color:var(--text);
  font-size:12px;font-family:var(--font-body);outline:none;
  transition:border-color 0.2s;resize:vertical;
}
.persona-editor input:focus,.persona-editor textarea:focus{border-color:rgba(var(--acc-rgb),0.4)}
.pe-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:6px}
.pe-save,.pe-cancel{
  border-radius:7px;padding:8px 16px;cursor:pointer;
  font-family:var(--font-mono);font-size:9px;letter-spacing:0.12em;text-transform:uppercase;
  transition:all 0.18s;
}
.pe-cancel{background:none;border:1px solid var(--muted);color:var(--sub)}
.pe-cancel:hover{border-color:var(--acc-border);color:var(--text)}
.pe-save{background:rgba(var(--acc-rgb),0.12);border:1px solid rgba(var(--acc-rgb),0.35);color:rgba(var(--acc-rgb),0.9)}
.pe-save:hover{background:rgba(var(--acc-rgb),0.22);color:var(--acc);box-shadow:0 0 14px rgba(var(--acc-rgb),0.15)}

/* ── ROSTER FILTER ── */
.roster-import-btn{
  width:100%;margin-bottom:10px;
  background:rgba(var(--acc-rgb),0.1);border:1px dashed rgba(var(--acc-rgb),0.4);
  border-radius:9px;padding:9px 13px;
  color:var(--acc);font-family:var(--font-mono);font-size:9px;letter-spacing:0.16em;
  cursor:pointer;transition:background 0.18s,border-color 0.18s;
}
.roster-import-btn:hover{background:rgba(var(--acc-rgb),0.18);border-color:var(--acc)}
.roster-filter{
  width:100%;
  background:rgba(10,9,22,0.55);border:1px solid var(--muted);
  border-radius:9px;padding:9px 13px;margin-bottom:14px;
  color:var(--text);font-size:12px;font-family:var(--font-body);
  outline:none;transition:border-color 0.2s,box-shadow 0.2s;
}
.roster-filter:focus{border-color:rgba(var(--acc-rgb),0.35);box-shadow:0 0 12px rgba(var(--acc-rgb),0.07)}
.roster-filter::placeholder{color:var(--sub);font-style:italic;opacity:0.7}
.roster-none{
  font-family:var(--font-mono);font-size:9px;letter-spacing:0.14em;
  color:var(--sub);text-transform:uppercase;text-align:center;padding:32px 0;
}
.bond-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px}
.bond-tile{
  background:rgba(10,9,22,0.5);border:1px solid var(--muted);
  border-radius:10px;padding:10px 8px;text-align:center;
  cursor:pointer;transition:all 0.2s;
}
.bond-tile:hover{border-color:var(--acc-border);transform:translateY(-1px)}
.bt-avatar{width:40px;height:40px;border-radius:50%;background:var(--bg-r);margin:0 auto 6px;overflow:visible;position:relative}
.bt-avatar img{width:100%;height:100%;object-fit:cover}
.bt-avatar>div:first-child{overflow:hidden;border-radius:50%}
.bt-ring{
  position:absolute;inset:-3px;border-radius:50%;
  background:conic-gradient(var(--char,var(--acc)) var(--bp,20%),transparent var(--bp,20%));
  -webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 3px),#000 calc(100% - 3px));
  mask:radial-gradient(farthest-side,transparent calc(100% - 3px),#000 calc(100% - 3px));
  opacity:0.85;
}
.bt-name{font-size:10px;font-weight:600;color:var(--text);margin-bottom:1px}
.bt-level{font-family:var(--font-mono);font-size:8px;color:var(--sub)}
.notes-list{display:flex;flex-direction:column;gap:6px}
.note-row{
  background:rgba(10,9,22,0.5);border:1px solid var(--muted);
  border-radius:8px;padding:10px 12px;display:flex;gap:10px;align-items:flex-start;
}
.note-char-tag{font-family:var(--font-mono);font-size:8px;letter-spacing:0.1em;color:rgba(var(--acc-rgb),0.7);flex-shrink:0;text-transform:uppercase;min-width:52px}
.note-text{font-size:11px;color:var(--sub);line-height:1.45;flex:1}
.note-time{font-family:var(--font-mono);font-size:8px;color:var(--muted);flex-shrink:0}
.add-note{display:flex;gap:8px;margin-top:8px}
.add-note input{
  flex:1;background:rgba(10,9,22,0.5);border:1px solid var(--muted);
  border-radius:7px;padding:8px 12px;color:var(--text);font-size:11px;
  font-family:var(--font-body);outline:none;transition:border-color 0.2s;
}
.add-note input:focus{border-color:var(--acc-border)}
.add-note input::placeholder{color:var(--muted)}
.add-note button{
  background:rgba(var(--acc-rgb),0.1);border:1px solid var(--acc-border);
  border-radius:7px;padding:8px 14px;color:rgba(var(--acc-rgb),0.8);
  font-family:var(--font-mono);font-size:9px;letter-spacing:0.1em;
  cursor:pointer;text-transform:uppercase;transition:all 0.15s;
}
.add-note button:hover{background:rgba(var(--acc-rgb),0.2);color:var(--acc)}

/* ── ROSTER VIEW ── */
.roster-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
  gap:10px;margin-bottom:4px;
}
.roster-tile{
  display:flex;align-items:center;gap:14px;
  background:rgba(10,9,22,0.55);
  border:1px solid var(--muted);
  border-radius:12px;padding:12px 14px;
  transition:border-color 0.2s,background 0.2s,transform 0.2s,box-shadow 0.2s;
  cursor:default;
}
.roster-tile:hover{
  border-color:rgba(var(--char-rgb),0.35);background:rgba(var(--char-rgb),0.04);
  transform:translateY(-1px);
  box-shadow:0 6px 24px rgba(0,0,0,0.35),0 0 16px rgba(var(--char-rgb),0.06);
}
.rt-portrait-wrap{
  position:relative;width:52px;height:52px;flex-shrink:0;
}
.rt-portrait-inner{
  width:100%;height:100%;border-radius:50%;overflow:hidden;
  background:var(--bg-r);
}
.rt-portrait-inner img,.rt-portrait-inner>div{width:100%;height:100%;object-fit:cover;border-radius:50%}
.rt-bond-ring{
  position:absolute;inset:-3px;border-radius:50%;
  -webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 3px),#000 calc(100% - 3px));
  mask:radial-gradient(farthest-side,transparent calc(100% - 3px),#000 calc(100% - 3px));
  opacity:0.85;
}
.rt-pres{
  position:absolute;bottom:1px;right:1px;
  width:10px;height:10px;border-radius:50%;
  border:2px solid rgba(4,3,9,0.9);
}
.rt-info{flex:1;min-width:0}
.rt-name{font-size:12px;font-weight:600;letter-spacing:0.04em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rt-arch{font-family:var(--font-mono);font-size:9px;color:var(--sub);letter-spacing:0.06em;margin-top:2px}
.rt-bond{font-family:var(--font-mono);font-size:8px;color:rgba(var(--char-rgb),0.55);letter-spacing:0.1em;margin-top:3px;line-height:1.5}
.rt-cta{
  flex-shrink:0;
  font-family:var(--font-mono);font-size:8px;letter-spacing:0.12em;
  color:rgba(var(--char-rgb),0.7);
  border:1px solid rgba(var(--char-rgb),0.25);
  border-radius:6px;padding:5px 9px;
  cursor:pointer;transition:all 0.15s;white-space:nowrap;
  text-transform:uppercase;
}
.rt-cta:hover{border-color:rgba(var(--char-rgb),0.6);background:rgba(var(--char-rgb),0.1);color:var(--char,var(--acc))}
/* agent roster tile — domain badge replaces bond ring */
.rt-domain-badge{
  position:absolute;bottom:-4px;right:-4px;
  width:22px;height:22px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--font-mono);font-size:6px;font-weight:700;letter-spacing:0.04em;
  color:var(--acc);border:1px solid rgba(var(--acc-rgb),0.35);
  background:rgba(4,3,9,0.9);z-index:2;
}

/* ── ENCOUNTER EMPTY STATE ── */
.discover-empty{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  min-height:60vh;gap:16px;text-align:center;
}
.de-label{
  font-family:var(--font-display);font-size:16px;font-weight:200;
  letter-spacing:0.2em;color:var(--text);text-transform:uppercase;
}
.de-sub{font-size:11px;color:var(--sub);line-height:1.7;max-width:260px}
.de-action{
  font-family:var(--font-mono);font-size:9px;letter-spacing:0.16em;
  color:var(--acc);border:1px solid var(--acc-border);
  border-radius:8px;padding:9px 20px;cursor:pointer;
  transition:all 0.2s;text-transform:uppercase;margin-top:8px;
}
.de-action:hover{background:rgba(var(--acc-rgb),0.1)}

/* ── ENCOUNTER COUNT ── */
.d-count{
  font-family:var(--font-mono);font-size:8px;letter-spacing:0.2em;
  color:rgba(var(--acc-rgb),0.4);text-transform:uppercase;
}

/* ── DISCOVER VIEW ── */
.discover-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:70vh;gap:28px}
.d-card-stack{position:relative;width:300px;height:420px}
.d-card{
  position:absolute;inset:0;border-radius:18px;overflow:hidden;
  background:rgba(10,9,22,0.9);border:1px solid var(--muted);
  cursor:grab;user-select:none;transition:box-shadow 0.2s;
}
.d-card:active{cursor:grabbing}
.d-card-portrait{width:100%;height:62%;background:var(--bg-r);position:relative;overflow:hidden}
.d-card-portrait-img{width:100%;height:100%;object-fit:cover}
.d-card-gradient{position:absolute;bottom:0;left:0;right:0;height:70%;background:linear-gradient(transparent,rgba(10,9,22,0.95))}
.d-card-body{padding:14px 16px 16px}
.d-card-name{font-family:var(--font-display);font-size:18px;font-weight:200;letter-spacing:0.06em;color:var(--text);margin-bottom:2px}
.d-card-sub{font-size:10px;color:var(--sub);letter-spacing:0.06em;margin-bottom:8px;font-family:var(--font-mono)}
.d-card-tags{display:flex;gap:5px;flex-wrap:wrap}
.d-tag{background:rgba(var(--acc-rgb),0.08);border:1px solid rgba(var(--acc-rgb),0.15);border-radius:10px;padding:3px 8px;font-size:9px;color:rgba(var(--acc-rgb),0.7);letter-spacing:0.06em}
.d-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:32px;font-weight:200;letter-spacing:0.3em;opacity:0;pointer-events:none;border-radius:18px;transition:opacity 0.1s}
.d-overlay.like{background:rgba(34,197,94,0.15);color:#22c55e;text-shadow:0 0 20px #22c55e}
.d-overlay.nope{background:rgba(239,68,68,0.15);color:#ef4444;text-shadow:0 0 20px #ef4444}
.d-overlay.super{background:rgba(var(--acc-rgb),0.15);color:var(--acc);text-shadow:0 0 20px var(--acc-glow)}
.d-actions{display:flex;gap:20px}
.d-btn{
  width:54px;height:54px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:20px;cursor:pointer;transition:all 0.2s;
  border:1.5px solid;background:rgba(4,3,9,0.8);
  backdrop-filter:blur(8px);
}
.d-btn.skip{border-color:rgba(239,68,68,0.4);color:#ef4444}
.d-btn.skip:hover{background:rgba(239,68,68,0.1);box-shadow:0 0 16px rgba(239,68,68,0.2)}
.d-btn.like{border-color:rgba(34,197,94,0.4);color:#22c55e}
.d-btn.like:hover{background:rgba(34,197,94,0.1);box-shadow:0 0 16px rgba(34,197,94,0.2)}
.d-btn.super{border-color:rgba(var(--acc-rgb),0.4);color:var(--acc)}
.d-btn.super:hover{background:rgba(var(--acc-rgb),0.1);box-shadow:0 0 16px var(--acc-glow)}

/* ── SETTINGS VIEW ── */
.settings-section{background:rgba(10,9,22,0.5);border:1px solid var(--muted);border-radius:12px;padding:16px;margin-bottom:12px}
.ss-title{font-family:var(--font-mono);font-size:8px;letter-spacing:0.16em;color:var(--acc);text-transform:uppercase;margin-bottom:12px}
.ss-row{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid rgba(var(--muted),0.5)}
.ss-row:last-child{border-bottom:none;padding-bottom:0}
.ss-label{font-size:12px;color:var(--text)}
.ss-sub{font-size:10px;color:var(--sub);margin-top:1px}
.ss-toggle{width:38px;height:20px;border-radius:10px;background:var(--muted);position:relative;cursor:pointer;border:none;transition:background 0.2s;flex-shrink:0}
.ss-toggle.on{background:var(--acc)}
.ss-toggle::after{content:'';position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform 0.2s}
.ss-toggle.on::after{transform:translateX(18px)}
.ss-select{background:rgba(4,3,9,0.7);border:1px solid var(--acc);border-radius:8px;color:var(--text);font-family:var(--font-mono);font-size:11px;padding:6px 10px;max-width:55%;cursor:pointer}
.ss-row input[type=range]{-webkit-appearance:none;appearance:none;width:120px;height:4px;border-radius:2px;background:var(--muted);outline:none}
.ss-row input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:var(--acc);cursor:pointer}
.ss-row input[type=range]::-moz-range-thumb{width:14px;height:14px;border:none;border-radius:50%;background:var(--acc);cursor:pointer}
.theme-row{display:flex;gap:14px;flex-wrap:wrap;padding:6px 2px}
/* gem discs — selection reads as a set ring, not a checkmark */
.theme-swatch{
  width:24px;height:24px;border-radius:50%;cursor:pointer;
  border:1px solid rgba(255,255,255,0.14);
  box-shadow:inset 0 -4px 8px rgba(0,0,0,0.45),inset 0 2px 4px rgba(255,255,255,0.18);
  transition:transform 0.2s,box-shadow 0.2s;position:relative;
}
.theme-swatch:hover{transform:scale(1.12)}
.theme-swatch.active{
  transform:scale(1.08);
  box-shadow:
    inset 0 -4px 8px rgba(0,0,0,0.45),inset 0 2px 4px rgba(255,255,255,0.18),
    0 0 0 3px var(--bg),0 0 0 4.5px rgba(255,255,255,0.55),
    0 0 16px rgba(255,255,255,0.12);
}

/* ── FEED HEALTH BAR ── */
.feed-health-bar{
  background:rgba(10,9,22,0.5);border:1px solid var(--muted);
  border-radius:10px;padding:10px 14px;margin-bottom:14px;
}
.fhb-meta{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}
.fhb-stage{font-family:var(--font-mono);font-size:9px;letter-spacing:0.16em;text-transform:uppercase;font-weight:600}
.fhb-val{font-family:var(--font-mono);font-size:9px;color:var(--sub);letter-spacing:0.08em}
.fhb-track{height:2px;background:var(--muted);border-radius:1px;overflow:hidden}
.fhb-fill{height:100%;border-radius:1px;transition:width 1.2s ease}

/* ── FEED — OVERLORD POST ── */
.feed-post--overlord{
  background:rgba(6,5,18,0.8);
  border:1px solid rgba(var(--acc-rgb),0.12);
  border-left:2px solid rgba(var(--acc-rgb),0.4);
}
.feed-post--overlord:hover{border-color:rgba(var(--acc-rgb),0.28);border-left-color:rgba(var(--acc-rgb),0.7)}
.fp-overlord-header{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.fp-overlord-glyph{
  font-size:20px;color:rgba(var(--acc-rgb),0.5);
  width:34px;height:34px;display:flex;align-items:center;justify-content:center;
  border:1px solid rgba(var(--acc-rgb),0.15);border-radius:50%;flex-shrink:0;
}
.fp-overlord-name{font-family:var(--font-mono);font-size:9px;letter-spacing:0.2em;color:rgba(var(--acc-rgb),0.7);text-transform:uppercase}
.fp-overlord-type{font-family:var(--font-mono);font-size:8px;letter-spacing:0.1em;color:var(--muted);text-transform:uppercase;margin-top:2px}
.fp-body--overlord{
  font-family:var(--font-mono);font-size:11px;
  color:rgba(var(--acc-rgb),0.65);line-height:1.7;
  letter-spacing:0.01em;
}
/* feed fp-avatar border */
.fp-avatar{border:1px solid var(--muted);border-radius:50%}

/* feed emoji reactions */
.fp-react-emoji{font-size:14px;line-height:1}
.fp-react-count{font-size:10px;color:var(--sub)}
.fp-react-add{
  color:var(--muted);font-size:14px;
  border-color:rgba(var(--acc-rgb),0.08);
  letter-spacing:0;padding:4px 8px;
}
.fp-react-add:hover{color:var(--acc)}

/* ── WORLD CHANNEL VIEW ── */
.wc-loc-bar{
  display:flex;gap:6px;flex-wrap:wrap;
  padding-bottom:14px;margin-bottom:4px;
  border-bottom:1px solid var(--muted);
}
.wc-loc-btn{
  background:none;border:1px solid var(--muted);
  border-radius:8px;padding:5px 11px;
  font-family:var(--font-mono);font-size:8px;letter-spacing:0.12em;
  color:var(--sub);cursor:pointer;text-transform:uppercase;
  transition:all 0.15s;white-space:nowrap;
}
.wc-loc-btn:hover{border-color:rgba(var(--acc-rgb),0.35);color:var(--text)}
.wc-loc-btn.active{
  border-color:rgba(var(--acc-rgb),0.45);
  background:rgba(var(--acc-rgb),0.08);
  color:var(--acc);
}
.wc-location-header{
  padding:14px 0 16px;border-bottom:1px solid var(--muted);margin-bottom:16px;
}
.wc-loc-name{font-family:var(--font-display);font-size:18px;font-weight:200;letter-spacing:0.06em;color:var(--text);margin-bottom:2px}
.wc-loc-layer{font-family:var(--font-mono);font-size:8px;letter-spacing:0.16em;color:rgba(var(--acc-rgb),0.5);text-transform:uppercase;margin-bottom:6px}
.wc-loc-desc{font-size:11px;color:var(--sub);line-height:1.6;max-width:480px}

.wc-log{display:flex;flex-direction:column;gap:2px;margin-bottom:16px}

.wc-entry{
  display:flex;align-items:flex-start;gap:10px;
  padding:10px 12px;border-radius:10px;
  transition:background 0.15s;
}
.wc-entry:hover{background:rgba(var(--acc-rgb),0.03)}

.wc-entry--overlord{
  background:rgba(6,5,18,0.6);
  border:1px solid rgba(var(--acc-rgb),0.1);
  border-left:2px solid rgba(var(--acc-rgb),0.35);
  margin:6px 0;padding:12px 14px;
  flex-direction:column;gap:6px;
}
.wc-overlord-row{display:flex;align-items:center;gap:8px}
.wc-overlord-glyph{font-size:14px;color:rgba(var(--acc-rgb),0.4)}
.wc-overlord-label{font-family:var(--font-mono);font-size:8px;letter-spacing:0.16em;color:rgba(var(--acc-rgb),0.5);text-transform:uppercase;flex:1}
.wc-entry-time{font-family:var(--font-mono);font-size:8px;color:var(--muted);flex-shrink:0}

.wc-avatar{width:30px;height:30px;border-radius:50%;overflow:hidden;flex-shrink:0;margin-top:2px}
.wc-content{flex:1;min-width:0}
.wc-entry-meta{display:flex;align-items:baseline;gap:8px;margin-bottom:3px}
.wc-entry-name{font-size:11px;font-weight:600;letter-spacing:0.02em}
.wc-entry-text{font-size:12px;color:var(--sub);line-height:1.55}
.wc-entry-text--overlord{
  font-family:var(--font-mono);font-size:11px;
  color:rgba(var(--acc-rgb),0.6);line-height:1.7;letter-spacing:0.01em;
}

.wc-reactions{display:flex;gap:4px;flex-wrap:wrap;margin-top:6px;padding-left:40px}
.wc-entry--overlord .wc-reactions{padding-left:0}
.wc-react-chip{
  background:rgba(var(--acc-rgb),0.06);
  border:1px solid rgba(var(--acc-rgb),0.12);
  border-radius:6px;padding:2px 7px;
  font-size:11px;cursor:pointer;
  transition:background 0.12s;color:var(--sub);
}
.wc-react-chip:hover{background:rgba(var(--acc-rgb),0.14);color:var(--text)}
.wc-react-add{
  background:none;border:1px solid rgba(var(--acc-rgb),0.1);
  border-radius:6px;padding:2px 7px;
  font-size:12px;cursor:pointer;color:var(--muted);
  transition:all 0.12s;
}
.wc-react-add:hover{border-color:rgba(var(--acc-rgb),0.3);color:var(--acc)}

.wc-empty{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  min-height:40vh;gap:12px;text-align:center;
}
.wc-empty-glyph{font-size:32px;color:rgba(var(--acc-rgb),0.15)}
.wc-empty-text{font-family:var(--font-mono);font-size:9px;letter-spacing:0.16em;color:var(--muted);text-transform:uppercase}

.wc-input-row{
  display:flex;gap:8px;align-items:flex-end;
  position:sticky;bottom:0;
  background:rgba(4,3,9,0.94);padding:12px 0 4px;
  border-top:1px solid var(--muted);
  backdrop-filter:blur(12px);
}
.wc-input{
  flex:1;background:rgba(10,9,22,0.7);
  border:1px solid var(--muted);border-radius:10px;
  padding:10px 14px;color:var(--text);
  font-size:12px;font-family:var(--font-body);
  outline:none;resize:none;
  transition:border-color 0.2s;
}
.wc-input:focus{border-color:rgba(var(--acc-rgb),0.3)}
.wc-input::placeholder{color:var(--muted)}
.wc-send{
  width:36px;height:36px;border-radius:9px;flex-shrink:0;
  background:rgba(var(--acc-rgb),0.12);
  border:1px solid rgba(var(--acc-rgb),0.25);
  color:rgba(var(--acc-rgb),0.8);cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:all 0.15s;
}
.wc-send:hover{background:rgba(var(--acc-rgb),0.22);color:var(--acc)}
.wc-send svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2}
