:root{
  --bg:#07100d;--panel:rgba(7,16,13,.84);--panel2:rgba(12,25,20,.88);--line:rgba(139,255,197,.18);--line2:rgba(139,255,197,.38);
  --text:#eef8f1;--muted:#8fa69a;--mint:#69f4dc;--lime:#c9ff67;--amber:#ffc766;--red:#ff7777;
  --mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace;
  --sans:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
*{box-sizing:border-box}html,body,#app{margin:0;width:100%;height:100%;overflow:hidden;background:var(--bg);color:var(--text);font-family:var(--sans)}
button,input{font:inherit}button{cursor:pointer}.hidden{display:none!important}
#world{position:absolute;inset:0;background:#0a1712}#world canvas{display:block;width:100%;height:100%}
.vignette{position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at center,transparent 48%,rgba(2,7,5,.28) 78%,rgba(2,7,5,.6) 100%)}
.crosshair{position:absolute;left:50%;top:50%;width:18px;height:18px;transform:translate(-50%,-50%);pointer-events:none;opacity:.72}.crosshair i{position:absolute;background:rgba(235,255,243,.8)}.crosshair i:first-child{width:14px;height:1px;left:2px;top:8px}.crosshair i:last-child{height:14px;width:1px;top:2px;left:8px}
.hud{position:absolute;z-index:10}.topbar{top:0;left:0;right:0;height:64px;display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,rgba(3,10,7,.92),rgba(3,10,7,.58));backdrop-filter:blur(10px)}
.brand{display:flex;align-items:center;gap:10px}.brand-fly{color:var(--lime);font-size:26px}.brand b{display:block;font-family:var(--mono);font-size:17px;letter-spacing:.14em}.brand small{display:block;color:var(--muted);font-family:var(--mono);font-size:9px;letter-spacing:.18em;margin-top:2px}
.status-strip{display:flex;gap:14px;align-items:center;flex-wrap:wrap;justify-content:flex-end;font-family:var(--mono);font-size:10px;color:var(--muted);letter-spacing:.08em}.status-strip b{color:var(--text)}.status-strip>span{display:flex;align-items:center;gap:5px}.dot{width:7px;height:7px;border-radius:50%;display:inline-block;background:#728078;box-shadow:0 0 0 3px rgba(255,255,255,.04)}.dot.live{background:var(--mint);box-shadow:0 0 12px rgba(105,244,220,.7)}.model-pill{border:1px solid var(--line2);padding:5px 8px;color:var(--mint)!important;background:rgba(105,244,220,.05)}
.panel{top:78px;bottom:58px;width:310px;background:var(--panel);border:1px solid var(--line);backdrop-filter:blur(12px);overflow:hidden}.left-panel{left:14px}.inspector{right:14px;padding:14px;overflow-y:auto}.panel-tabs{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line)}.tab{border:0;background:transparent;color:var(--muted);padding:12px;font-family:var(--mono);font-size:10px;letter-spacing:.13em}.tab.active{color:var(--lime);background:rgba(201,255,103,.06);box-shadow:inset 0 -1px var(--lime)}.tab-panel{display:none;height:calc(100% - 40px);padding:12px;overflow:hidden}.tab-panel.active{display:flex;flex-direction:column}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;font-family:var(--mono);font-size:10px;letter-spacing:.12em;margin-bottom:8px;color:var(--text)}.panel-heading small{color:var(--muted);font-size:9px}.event-list,.resident-list{overflow-y:auto;min-height:0;padding-right:4px}.event{border-top:1px solid var(--line);padding:9px 0}.event:first-child{border-top:0}.event small{display:flex;gap:7px;color:var(--muted);font-family:var(--mono);font-size:9px;margin-bottom:4px}.event p{font-size:12px;line-height:1.4;margin:0}.event.birth p{color:var(--lime)}.event.death p{color:#ffb1b1}.event.speech p{color:#d7fff6}.muted{color:var(--muted);font-size:12px}.search{display:block;margin-bottom:10px}.search span{display:block;color:var(--muted);font-family:var(--mono);font-size:9px;letter-spacing:.13em;margin-bottom:5px}.search input{width:100%;border:1px solid var(--line);outline:0;background:rgba(255,255,255,.035);color:var(--text);padding:9px 10px;font-size:13px}.search input:focus{border-color:var(--line2)}
.resident{width:100%;display:grid;grid-template-columns:12px minmax(0,1fr) auto;gap:9px;align-items:center;text-align:left;border:0;border-top:1px solid var(--line);background:transparent;color:var(--text);padding:9px 2px}.resident:first-child{border-top:0}.resident:hover,.resident.selected{background:rgba(105,244,220,.05)}.resident .swatch{width:9px;height:9px;border-radius:50%;box-shadow:0 0 8px currentColor}.resident b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px}.resident small{display:block;color:var(--muted);font-family:var(--mono);font-size:9px;margin-top:2px}.resident em{font-style:normal;color:var(--mint);font-family:var(--mono);font-size:9px}
.empty-inspector{padding:12px 2px}.specimen{font-family:var(--mono);font-size:9px;color:var(--mint);letter-spacing:.15em}.empty-inspector h2,.fly-title-row h2{margin:7px 0 4px;font-size:23px;line-height:1.05}.empty-inspector p{color:var(--muted);font-size:12px;line-height:1.5}.fly-title-row{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.fly-title-row p{margin:0;color:var(--muted);font-family:var(--mono);font-size:10px}.fly-swatch{width:30px;height:30px;border-radius:50%;border:1px solid rgba(255,255,255,.3);box-shadow:0 0 18px currentColor}.action-box,.thought{margin-top:12px;border:1px solid var(--line);background:rgba(255,255,255,.025);padding:10px}.action-box span,.thought span{display:block;color:var(--muted);font-family:var(--mono);font-size:8px;letter-spacing:.14em}.action-box b{display:block;color:var(--lime);font-family:var(--mono);font-size:13px;letter-spacing:.08em;margin:5px 0}.action-box p,.thought p{margin:0;font-size:12px;line-height:1.45}.thought small{display:block;color:var(--muted);font-family:var(--mono);font-size:8px;margin-top:6px}.needs{display:grid;gap:7px;margin-top:12px}.need-row{display:grid;grid-template-columns:64px 1fr 33px;gap:8px;align-items:center}.need-row span,.need-row b{font-family:var(--mono);font-size:8px}.need-row span{color:var(--muted)}.need-row b{text-align:right;color:var(--text)}.bar{height:5px;background:rgba(255,255,255,.07);overflow:hidden}.bar i{display:block;height:100%;background:var(--mint)}.bar.danger i{background:var(--amber)}.inspector-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:12px}.inspector-grid div{border:1px solid var(--line);padding:8px 4px;text-align:center}.inspector-grid span{display:block;color:var(--muted);font-family:var(--mono);font-size:7px}.inspector-grid b{display:block;margin-top:4px;font-family:var(--mono);font-size:10px}.subsection{margin-top:14px}.mini-list{display:grid;gap:5px}.mini-item{font-size:10px;line-height:1.35;color:#d7e6dc;border-left:2px solid var(--line2);padding:5px 7px;background:rgba(255,255,255,.02)}.mini-item small{display:block;color:var(--muted);font-family:var(--mono);font-size:8px;margin-top:2px}.inspector-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:14px}.inspector-actions button,.enter-card button{border:1px solid var(--line2);background:rgba(255,255,255,.04);color:var(--text);padding:9px;font-family:var(--mono);font-size:9px;letter-spacing:.07em}.inspector-actions .primary,.enter-card button{background:var(--lime);border-color:var(--lime);color:#10200f;font-weight:800}.inspector-actions kbd{background:transparent;border:0;padding:0;color:inherit}
.controls-card{left:50%;bottom:10px;transform:translateX(-50%);display:flex;gap:12px;align-items:center;background:rgba(4,11,8,.78);border:1px solid var(--line);backdrop-filter:blur(8px);padding:7px 10px;font-family:var(--mono);font-size:8px;color:var(--muted);white-space:nowrap}.controls-card kbd,.empty-inspector kbd{color:var(--text);font:inherit;border:1px solid var(--line2);padding:2px 4px;background:rgba(255,255,255,.04)}
.enter-card{left:50%;top:50%;transform:translate(-50%,-50%);width:min(520px,calc(100% - 32px));padding:24px;border:1px solid var(--line2);background:rgba(5,13,9,.93);backdrop-filter:blur(15px);text-align:center}.enter-card .eyebrow{color:var(--mint);font-family:var(--mono);font-size:9px;letter-spacing:.16em}.enter-card h1{font-size:35px;margin:9px 0}.enter-card p{color:#c7d7ce;line-height:1.55;font-size:13px;margin:0 auto 16px;max-width:430px}.enter-card button{padding:11px 18px}.enter-card small{display:block;color:var(--muted);font-size:9px;margin-top:10px}.follow-badge{left:50%;top:76px;transform:translateX(-50%);padding:7px 10px;background:rgba(6,15,11,.9);border:1px solid var(--line2);font-family:var(--mono);font-size:9px;color:var(--muted)}.follow-badge b{color:var(--lime)}.toast{position:absolute;left:50%;bottom:48px;z-index:20;transform:translateX(-50%) translateY(8px);opacity:0;pointer-events:none;background:rgba(5,14,10,.94);border:1px solid var(--line2);padding:8px 12px;font-family:var(--mono);font-size:9px;transition:.2s}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
::-webkit-scrollbar{width:5px}::-webkit-scrollbar-thumb{background:rgba(139,255,197,.18)}
@media(max-width:980px){.left-panel{width:250px}.inspector{width:270px}.status-strip span:nth-child(4),.status-strip span:nth-child(5){display:none}.controls-card{gap:6px}.controls-card span:nth-child(2),.controls-card span:nth-child(3){display:none}}
@media(max-width:720px){.topbar{height:58px}.brand small{display:none}.status-strip{gap:7px}.status-strip span:nth-child(3){display:none}.left-panel{display:none}.inspector{top:auto;left:10px;right:10px;bottom:48px;width:auto;max-height:44%;padding:10px}.empty-inspector{display:none}.controls-card{left:10px;right:10px;transform:none;justify-content:center}.controls-card span:nth-child(n+4){display:none}.enter-card h1{font-size:29px}}
