/* Generated by scripts/build_observer_bundle.mjs from style.css, design.css, v1/observer.css, v1/observer-v12.css, v1/orbit.css. Do not edit. */
/* ---- style.css ---- */
/* Emergentia observer — base tokens, shell and shared components. Page layouts are in design.css. */
:root{color-scheme:dark;--bg:#0c0e12;--bg2:#101318;--surface:#161a20;--surface2:#1c2027;--line:#2a2f37;--line2:#3a3f48;--text:#ebe8df;--muted:#99a1a9;--dim:#6f7780;--gold:#e7c57c;--gold-d:#9b804c;--green:#8fd19e;--text-muted:#99a1a9;--series-1:#82d8df;--series-2:#e7c57c;--surface-1:#161a20;--text-primary:#ebe8df;--rose:#e59aa8;--amber:#e8a46a;--violet:#b79de0;--blue:#7ea6e0;--cyan:#7fd3dc;--radius:12px;--serif:Georgia,'Songti SC','Noto Serif SC',serif;--sans:'Segoe UI','Microsoft YaHei','PingFang SC','Noto Sans SC',system-ui,sans-serif}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:radial-gradient(1200px 500px at 70% -10%,#1a1d24 0,transparent 70%),var(--bg);color:var(--text);font:13px/1.55 var(--sans);min-height:100vh}
button,input,select{font:inherit}button,a,select,input,summary{outline-offset:3px}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,canvas:focus-visible,summary:focus-visible,svg:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--gold);border-radius:6px}
button{cursor:pointer;color:inherit;background:#20242b;border:1px solid var(--line);border-radius:8px;padding:7px 11px;transition:background .15s,border-color .15s,color .15s}
button:hover{background:#292e36;border-color:#555b66}button:disabled{opacity:.4;cursor:default}
a{color:var(--gold);text-decoration:none}a:hover{text-decoration:underline}
h1,h2,h3,h4,p,ul,ol{margin:0}h2{font-size:14px;font-weight:600}h3{font-size:11px;font-weight:600;color:#aab0b7;letter-spacing:.04em;margin:0 0 9px}h4{font-size:11px;color:#aab0b7;font-weight:600;margin:14px 0 7px}
small{font-size:10.5px;color:var(--muted)}[hidden]{display:none!important}code{font:11px ui-monospace,Consolas,monospace;color:#cfd4d8;overflow-wrap:anywhere}
.ico{flex-shrink:0;vertical-align:middle}.eyebrow{font-size:10px;letter-spacing:.14em;color:#8d949c;font-weight:600;text-transform:uppercase}
.empty,.muted{color:#a2abb3}.micro{font-size:10.5px;color:#8f98a2;margin-top:8px;line-height:1.5}
.panel{border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(180deg,#1a1e24,#14171c);overflow:hidden;box-shadow:0 8px 28px #0005}

/* masthead */
.masthead{height:70px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #2b2c2a;padding:0 20px;gap:14px;background:linear-gradient(180deg,#14161b,#0f1115);position:sticky;top:0;z-index:20}
.brand{display:flex;gap:12px;align-items:center;color:var(--text);flex-shrink:0}.brand:hover{text-decoration:none}.brand-mark{color:var(--gold);display:grid}.brand-mark .ico{width:40px;height:40px;stroke-width:1.4}
.brand strong{font:600 27px/1.05 var(--serif);letter-spacing:-.4px;display:block;color:#f2e2bc}.brand small{font-size:10px;letter-spacing:.03em;color:#b4b6b8;display:block;margin-top:3px}
.masthead nav{display:flex;align-self:stretch;gap:2px;flex:1;justify-content:center}
.masthead nav button{border:0;border-radius:0;background:transparent;display:flex;align-items:center;gap:9px;padding:0 15px;border-bottom:2px solid transparent;color:#c6c9cc;position:relative}
.masthead nav button .ico{color:#8d939c;width:20px;height:20px}.masthead nav b{font-size:13px;font-weight:500;white-space:nowrap}.masthead nav button:hover{background:#ffffff08}
.masthead nav button.active{background:linear-gradient(180deg,transparent,#d4ae5917);border-bottom-color:var(--gold);color:var(--gold)}.masthead nav button.active .ico{color:var(--gold)}
.header-end{display:flex;gap:12px;align-items:center;flex-shrink:0}.vsep{width:1px;height:20px;background:var(--line)}
.status{font-size:11px;color:#8fe0a8;display:flex;gap:7px;align-items:center;white-space:nowrap}.status:before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor;box-shadow:0 0 9px currentColor}.status.warn{color:#efb77c}
.clock-block{display:flex;flex-direction:column;line-height:1.2;font-size:12px;white-space:nowrap}.clock-block .tick{font-size:10px;color:var(--muted)}
.daytime{display:flex;align-items:center;gap:6px;font-size:12px;color:#e6cf93;white-space:nowrap}.daytime .ico{color:#f1c96f}
.observer{display:flex;align-items:center;gap:7px;color:#9fdcb3;font-size:10px;white-space:nowrap}.observer i,.rail-bottom i,.scene-caption i{width:6px;height:6px;display:inline-block;border-radius:50%;background:#87d8aa;box-shadow:0 0 9px #72d79b50}
.lang-switch{display:inline-flex;border:1px solid var(--line2);border-radius:8px;overflow:hidden}.lang-switch button{border:0;border-radius:0;background:transparent;padding:5px 11px;font-size:11px;color:#b7bcc2}.lang-switch button[aria-pressed=true]{background:#e7c57c26;color:var(--gold)}
.admin-link{display:flex;gap:6px;align-items:center;border:1px solid #6f5d3b;border-radius:8px;padding:6px 12px;font-size:12px;color:#e8c987}.admin-link:hover{background:#e7c57c14;text-decoration:none}

/* app shell */
.app-shell{display:flex;min-height:calc(100vh - 70px)}
.rail{width:74px;flex-shrink:0;border-right:1px solid #22262c;padding:16px 8px;display:flex;flex-direction:column;gap:8px;background:#0e1014}
.rail button{padding:10px 0;border:1px solid transparent;background:transparent;display:flex;flex-direction:column;align-items:center;gap:4px;min-height:64px;border-radius:10px}
.rail button .ico{width:24px;height:24px;color:#a2a7b1}.rail button small{color:#b3b7bc;font-size:10.5px}.rail button:hover{background:#ffffff08}
.rail button.active{background:#d4ae5918;border-color:#9b804c}.rail button.active .ico,.rail button.active small{color:var(--gold)}
.rail-bottom{margin-top:auto;text-align:center;display:grid;justify-items:center;gap:8px;padding:16px 0}.rail-bottom small{font-size:8.5px;letter-spacing:.1em}
main{flex:1;min-width:0;padding:10px 18px 24px}.privacy-link{text-align:center;margin:14px 0 0}

/* shared components */
.chips{display:flex;gap:6px;flex-wrap:wrap}.chips button{padding:4px 11px;font-size:11px;border-radius:999px;background:#1b1f25;display:inline-flex;gap:5px;align-items:center}.chips button.active{background:#e7c57c20;border-color:#9b804c;color:var(--gold)}
.seg{display:inline-flex;border:1px solid var(--line2);border-radius:8px;overflow:hidden;flex-wrap:wrap}.seg button{border:0;border-radius:0;background:transparent;padding:5px 12px;font-size:11px;color:#b9bec4}.seg button.active{background:#e7c57c20;color:var(--gold)}
.check{display:flex;align-items:center;gap:8px;padding:5px 0;font-size:12px;color:#d0d4d8;cursor:pointer}.check input{accent-color:#d7bc7f;width:15px;height:15px}
.count-pill{font-size:11px;color:#c6ccd1;background:#ffffff10;border-radius:999px;padding:1px 9px}
.bar{height:6px;background:#2a2e35;border-radius:3px;overflow:hidden;flex:1}.bar>i{height:100%;background:#8ed7b0;display:block;border-radius:3px}.bar.amber>i{background:var(--amber)}.bar.cyan>i{background:var(--cyan)}.bar.violet>i{background:var(--violet)}.bar.gold>i{background:var(--gold)}.bar.green>i{background:linear-gradient(90deg,#5fb67d,#9bdcae)}
.meter{display:flex;align-items:center;gap:9px;font-size:11px;margin:9px 0}.meter>span{width:74px;color:#b3bbc2}.meter>b{font-weight:500;min-width:44px;text-align:right}
.verdict{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;padding:2px 10px;border-radius:999px;border:1px solid var(--line2);white-space:nowrap}
.verdict.ok{color:#9fe0b2;border-color:#3f7a55;background:#6fd39214}.verdict.no{color:#f0a3ae;border-color:#8a4a54;background:#e59aa812}.verdict.mixed{color:#ecc98a;border-color:#8a7442;background:#e7c57c12}.verdict.quiet{color:#aab1b8}
.delta{font-size:11px;font-weight:600;margin-left:8px}.delta.up{color:#8fe0a8}.delta.down{color:#f0a3ae}.delta.flat{color:var(--muted)}.delta+small{margin-left:5px}
.card-ic{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:#e7c57c14;color:var(--gold);flex-shrink:0}
.panel-head{display:flex;align-items:center;gap:10px;margin-bottom:12px}.panel-head>.ico,.panel-head>span:first-child{color:var(--gold)}.panel-head h2{font-size:14px}.panel-head small,.panel-head .seg,.panel-head .key{margin-left:auto}
dl{display:grid;grid-template-columns:1fr auto;gap:6px 14px;font-size:11.5px;margin:0}dt{color:#a2acb4}dd{margin:0;text-align:right;color:#d8dcde;overflow-wrap:anywhere}
.kv{grid-template-columns:auto 1fr}.kv dt{display:flex;gap:7px;align-items:center}
.timeline-list{list-style:none;padding:0;margin:0}.timeline-list li{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-bottom:1px solid #ffffff08;font-size:12px;color:#c6ccd0}.timeline-list li time{margin-left:auto;font-size:10px;color:#8e98a2;white-space:nowrap;padding-left:8px}.timeline-list li>i{width:7px;height:7px;border-radius:50%;background:var(--gold);margin-top:6px;flex-shrink:0;box-shadow:0 0 0 3px #e7c57c1a}
.timeline-list.compact li{padding:5px 0;font-size:11px}.timeline-list li.empty{color:var(--muted)}
.relative,.name-link{background:transparent;border:0;border-bottom:1px dotted #9b804c;border-radius:0;padding:0;color:var(--gold);font-size:inherit}.relative:hover,.name-link:hover{background:transparent;color:#ffe3a4}
.tag{display:inline-flex;gap:5px;align-items:center;font-size:10.5px;padding:2px 8px;border-radius:999px;background:#ffffff0d;color:#cfd4d8}.tag.gold{background:#e7c57c18;color:var(--gold)}
.tooltip{position:fixed;background:#12151a;border:1px solid #6b6755;border-radius:8px;padding:8px 12px;font-size:11.5px;pointer-events:none;z-index:50;max-width:280px;box-shadow:0 8px 28px #000a}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:6px}
.follow-button{display:flex;justify-content:center;align-items:center;gap:7px;width:100%;margin-top:10px;font-size:12px;color:var(--gold);border-color:#7a6945;background:#e7c57c10}.follow-button:hover{background:#e7c57c1f}
.gold{color:var(--gold);border-color:#7a6945;background:#d1ad5d0d}.text-button{background:transparent;border:0;color:var(--gold);font-size:11px;padding:4px 6px}
select{color:var(--text);background:#20242b;border:1px solid #3a3f48;border-radius:6px;padding:5px 8px}
dialog{background:#171a20;color:var(--text);border:1px solid #666052;border-radius:12px;width:480px;max-width:94vw;max-height:75vh}dialog::backdrop{background:#05080cc0}
.section-title{display:flex;align-items:center;gap:9px;margin-bottom:11px}.section-title>.ico,.section-title>span:first-child{color:var(--gold)}.section-title .count-pill{margin-left:auto}
#building-list{max-height:60vh;overflow-y:auto}#building-list button{display:flex;justify-content:space-between;width:100%;margin-top:5px;text-align:left;font-size:12px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px}
.chart-slot svg,.chart-card svg,.kpi svg,.stat-card svg{display:block;width:100%;height:auto;overflow:visible}
svg text{fill:#a5afb9;font-size:9.5px;font-family:var(--sans)}svg text.val{fill:#d8dcde;font-weight:600}.gridline{stroke:#2a2f37;stroke-width:1}.cross{stroke:#8a919a;stroke-width:1;stroke-dasharray:3 3}
.donut{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.donut svg{width:140px;flex-shrink:0}.donut-num{font:600 24px var(--serif);fill:#f0e4c4!important}.donut-cap{font-size:10px;fill:#98a1a9}
.legend{list-style:none;padding:0;margin:0;flex:1;min-width:130px}.legend li{display:flex;align-items:center;gap:8px;font-size:11.5px;padding:4px 0}.legend li i{width:9px;height:9px;border-radius:50%}.legend li b{margin-left:auto;font-weight:600}.legend li small{width:34px;text-align:right}
.donut path{transition:stroke-width .15s}.donut path:hover,.donut path:focus{stroke-width:25}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* ---- design.css ---- */
/* Emergentia observer — page layouts and responsive rules. */
/* ---------- Living World ---------- */
.world-layout{display:grid;grid-template-columns:286px minmax(0,1fr) 322px;grid-template-rows:auto minmax(520px,calc(100vh - 330px)) auto auto auto;gap:12px;max-width:2100px;margin:0 auto}
.world-hud{grid-column:1/-1;display:flex;align-items:center;gap:16px;min-height:36px;border-bottom:1px solid #20242a;padding-bottom:6px}
.world-picker{display:flex;align-items:center;gap:10px}.world-picker select{font-size:13px;font-weight:600;border:0;background:transparent;color:#e8e2d2;max-width:260px}
.mode{font-size:10px;padding:3px 10px;border:1px solid #5a5742;border-radius:5px;color:#dcc38a;letter-spacing:.12em}.mode[data-mode=HISTORICAL]{color:#9ec3ff;border-color:#4a6290}
.public-caption{display:none}.world-id{margin-left:auto;color:#767f89;font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.citizen-sidebar{grid-row:2;grid-column:1;display:flex;flex-direction:column;min-height:0}
.citizen-panel{padding:14px 12px 10px;display:flex;flex-direction:column;min-height:0;flex:1}
.search{display:flex;align-items:center;gap:7px;background:#0f1217;border:1px solid #2f343c;border-radius:8px;padding:5px 10px;margin-bottom:10px}.search .ico{color:#8b939b;width:16px;height:16px}.search input{width:100%;min-width:0;border:0;background:transparent;color:#e2e2df;font-size:12px;padding:3px 0}.search input:focus{outline:none}.search:focus-within{border-color:#9b804c}
.list-head{display:flex;align-items:center;justify-content:space-between;margin:12px 0 4px;font-size:12px;font-weight:600;color:#cfd3d6}.sort{display:flex;gap:5px;align-items:center;font-weight:400}.sort span{font-size:10px;color:var(--muted)}.sort select{border:0;background:transparent;padding:2px;font-size:10.5px;color:#aeb5bc}
.citizen-list{overflow-y:auto;min-height:80px;flex:1;scrollbar-width:thin;scrollbar-color:#3a3f48 transparent}
.citizen-row{display:flex;width:100%;align-items:center;text-align:left;gap:10px;border:1px solid transparent;border-bottom-color:#ffffff07;border-radius:9px;background:transparent;padding:6px 6px}
.citizen-row:hover{background:#ffffff08}.citizen-row.selected{background:linear-gradient(90deg,#e7c57c22,#e7c57c0a);border-color:#9b804c}
.avatar-svg{border-radius:8px;flex-shrink:0;border:1px solid #ffffff14;display:block}
.who{min-width:0;flex:1}.who b{font-size:12.5px;font-weight:600;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.who b small{font-size:10px;font-weight:400}.who>small{display:block;font-size:10.5px;color:#9aa3ac;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.activity-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;background:#8fd19e;box-shadow:0 0 7px #8fd19e66}.activity-dot.idle{background:#8c939a;box-shadow:none}.activity-dot.need{background:var(--amber);box-shadow:0 0 7px #e8a46a88}
.observer-tools{border-top:1px solid #2b2f36;margin-top:8px;padding-top:9px}.observer-tools h3{margin:0 0 6px;font-size:12px;color:#d0d4d6;letter-spacing:0}
.observer-tools button{display:flex;gap:10px;align-items:center;width:100%;text-align:left;padding:7px 10px;margin-top:5px;background:#1b1f25;font-size:12px}.observer-tools button .ico{color:var(--gold)}
.viewport{grid-row:2;grid-column:2;position:relative;overflow:hidden;border:1px solid #4b5148;border-radius:14px;background:#0f1d22;min-height:0;isolation:isolate;box-shadow:0 12px 40px #0008}
.viewport>canvas{width:100%;height:100%;display:block;cursor:grab;touch-action:none}.viewport>canvas:active{cursor:grabbing}
.scene-heading{display:none}.scene-heading .eyebrow{color:#cfd9c4;font-size:10px}
.scene-heading h1{font:600 31px/1.15 var(--serif);color:#f4ecd8;margin-top:5px;letter-spacing:-.3px}.scene-heading p{font-size:12px;color:#d3d9cb;margin-top:3px}
.scene-stats{display:flex;gap:6px;margin-top:12px;flex-wrap:wrap;pointer-events:auto}
.chip-stat{display:flex;gap:9px;align-items:center;background:#10161bcc;backdrop-filter:blur(6px);border:1px solid #ffffff1a;border-radius:10px;padding:6px 12px 6px 9px}.chip-stat .ico{color:var(--gold)}.chip-stat b{display:block;font-size:15px;font-weight:600;line-height:1.1}.chip-stat small{font-size:10px;color:#b9c0c6}
.scene-top{position:absolute;right:14px;top:14px;display:flex;gap:6px}.scene-top button{background:#12181fdd;backdrop-filter:blur(6px);font-size:11px;border-color:#5b635c;padding:6px 11px;display:flex;gap:6px;align-items:center}.scene-top button.on{color:var(--gold);border-color:#9b804c}
.map-bottom{position:absolute;bottom:18px;left:14px;display:flex;align-items:flex-end;gap:8px}
.minimap-wrap{padding:6px;background:#0f151bdd;backdrop-filter:blur(6px);border:1px solid #7b7a66;border-radius:10px;width:156px}.minimap-wrap canvas{width:144px;height:100px;display:block;cursor:crosshair;border-radius:6px}.minimap-wrap small{display:block;font-size:9px;text-align:center;margin-top:3px;color:#b8c0b4}
.zoom-tools{display:grid;gap:4px}.zoom-tools button{width:32px;height:32px;background:#12181fe8;border-color:#657064;font-size:19px;padding:0;line-height:1}
.scene-caption{position:absolute;bottom:9px;left:190px;right:12px;display:flex;gap:7px;justify-content:flex-end;align-items:center;font-size:10px;color:#e2e9df;text-shadow:0 1px 5px #000;pointer-events:none}
.selection-label{position:absolute;bottom:34px;right:16px;max-width:260px;border:1px solid #d4b26f;background:#12191ef0;padding:8px 13px;border-radius:8px;box-shadow:0 4px 16px #0006;font-size:12px;color:#f2dfb5;pointer-events:none}
#notice{position:absolute;top:110px;left:50%;transform:translateX(-50%);background:#171c22f2;border:1px solid #8c7853;box-shadow:0 4px 20px #0007;border-radius:8px;padding:10px 16px;color:#ecd6a9;font-size:12px;max-width:85%;z-index:3}
.viewport:fullscreen{border-radius:0}
/* inspector */
.inspector{grid-row:2;grid-column:3;padding:16px 15px;overflow-y:auto;min-height:0;scrollbar-width:thin;scrollbar-color:#3a3f48 transparent}
.empty-inspector{display:flex;min-height:100%;flex-direction:column;justify-content:center;align-items:center;text-align:center;color:#a1aab0;padding:20px;gap:10px}.empty-inspector .ico{color:#c2af80}.empty-inspector h2{font:600 21px var(--serif);color:#ddd5be}.empty-inspector p{font-size:12px;max-width:230px}
.insp-head{display:flex;gap:12px;align-items:flex-start;margin-bottom:6px;position:relative}.insp-head .avatar-svg{border-radius:12px;border:1px solid #9b804c66}
.insp-id{min-width:0;flex:1}.insp-id h2{font:600 19px var(--serif)}.insp-id>small{display:block;margin-top:2px}.tags{display:flex;gap:5px;flex-wrap:wrap;margin-top:7px}
.state-pill{display:inline-flex;align-items:center;gap:6px;font-size:11px;padding:3px 10px;border-radius:999px;border:1px solid #3f7a55;color:#9fe0b2;background:#6fd39212;white-space:nowrap}.state-pill i{width:6px;height:6px;border-radius:50%;background:currentColor}.state-pill.idle{color:#b4bbc2;border-color:#4a4f58;background:#ffffff08}.state-pill.need{color:#efb77c;border-color:#8a6a42;background:#e8a46a12}
.bld-icon{width:58px;height:58px;border-radius:12px;background:#e7c57c14;border:1px solid #9b804c55;display:grid;place-items:center;color:var(--gold);flex-shrink:0}
.card{padding:13px 0;border-bottom:1px solid #2b2f36}.card h3{margin:0 0 9px}.card p{font-size:12px;color:#c4c9cc;margin-top:6px}
.task-line{display:flex;align-items:center;gap:11px}.task-line>span{color:#e1c589}.task-line p{margin:0}.location{font-size:11px!important;color:#9fa9b2!important;margin-top:8px!important}
.fold summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;font-size:11px;font-weight:600;color:#aab0b7;letter-spacing:.04em;margin-bottom:9px}.fold summary::-webkit-details-marker{display:none}.fold summary:after{content:'⌄';color:var(--gold);font-size:14px;transition:transform .15s}.fold:not([open]) summary{margin-bottom:0}.fold[open] summary:after{transform:rotate(180deg)}
.ties{display:flex;flex-wrap:wrap;gap:7px}.ties .relative b{font-weight:500;color:#9aa3ac;margin-left:3px}
/* stat cards */
.stat-cards{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.stat-card{padding:13px 15px 10px;position:relative}.stat-card header,.chart-card header,.kpi header,.finding header{display:flex;align-items:center;gap:9px;margin-bottom:8px}.stat-card h3,.chart-card h3,.kpi h3,.finding h3{margin:0;font-size:13px;letter-spacing:0;color:#e3e0d6;font-weight:600}
.card-go{margin-left:auto;background:transparent;border:0;padding:2px;color:#a6adb4;display:grid}.card-go:hover{background:#ffffff10;color:var(--gold)}
.big{font:600 28px/1.1 var(--serif);color:#f2e4c1;display:flex;align-items:baseline;flex-wrap:wrap;gap:0}.big .unit{font:11px var(--sans);color:var(--muted);margin-left:6px}
.stat-card .chart-slot{margin-top:6px;min-height:112px}
.timeline-panel{grid-column:1/-1;padding:13px 18px}.timeline-heading{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.timeline-heading>.ico,.timeline-heading>span{color:#b8bdc0}.timeline-heading h2{font-size:13px}.timeline-heading small{font-size:10px}
.recent-events{display:flex;gap:7px;flex:1;min-width:0;overflow:hidden;justify-content:flex-end}.pill-event{display:inline-flex;gap:7px;align-items:center;font-size:11px;background:#ffffff0a;border:1px solid #2f343c;border-radius:999px;padding:3px 11px;max-width:300px;min-width:0}.pill-event .ico{color:var(--gold)}.pill-event span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pill-event time{font-size:9px;color:#8f99a3}
#timeline-marks{display:flex;justify-content:space-between;margin:6px 4px 0;font-size:10px;color:#8f99a1}
.timeline-slider{display:flex;align-items:center;gap:14px;font-size:10px;color:#aab0ad}.timeline-slider input{flex:1;accent-color:#d7bc7f;height:14px;cursor:pointer}.timeline-slider output{min-width:84px;text-align:right;color:var(--gold)}
.world-foot{grid-column:1/-1;display:flex;justify-content:space-between;font-size:10px;color:#808a94;padding:0 2px 8px;gap:12px;flex-wrap:wrap}

/* ---------- research pages ---------- */
.research-tab{max-width:1500px;margin:0 auto;padding-bottom:30px}
.page-title{margin:22px 0 18px;display:flex;gap:24px;align-items:flex-start;justify-content:space-between}.page-title>div:first-child{max-width:860px}.page-title h1{font:600 33px/1.15 var(--serif);margin:6px 0 8px;color:#f0e2c3}.page-title p{font-size:13.5px;color:#aeb6ba;line-height:1.7}
.callout{display:flex;gap:11px;align-items:flex-start;max-width:420px;border:1px solid #7a6945;background:#e7c57c0d;border-radius:12px;padding:12px 15px;color:var(--gold)}.callout p{font-size:12px!important;color:#d9c79b!important;line-height:1.6!important}.callout b{color:var(--gold)}
.research-tab .panel,.research-tab .panel-pad{padding:16px 18px}.chart-card,.kpi,.finding{padding:14px 16px}
.society-layout{display:grid;grid-template-columns:240px minmax(0,1fr) 330px;gap:14px;align-items:start}
.filters-panel h3{margin:16px 0 8px}.filters-panel h3:first-child{margin-top:0}.filters-panel .seg{width:100%}.filters-panel .seg button{flex:1 1 auto}
.society-main{display:grid;gap:14px;min-width:0}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.kpi .big{font-size:25px}.kpi .spark{height:38px;margin-top:6px}.kpi .spark svg{height:38px}
.network-panel{padding:14px 16px}.network svg{width:100%;height:auto;max-height:520px;background:radial-gradient(ellipse at center,#1a2128,#12161b);border-radius:10px;border:1px solid #232830}
.network .node{cursor:pointer}.network .node.res circle{transition:r .15s}.network .node:hover circle,.network .node:focus circle{stroke:#fff4cf}.network .org-label{font-size:9px;fill:#e9dcb4;font-weight:600}
.network svg.dim line{opacity:.12}.network svg.dim line.hot{opacity:1;stroke-width:2}
.legend-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:10px;font-size:11px;color:#b9c0c6;align-items:center}.legend-row i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px}.legend-row small{margin-left:auto}
.detail-panel{padding:16px;min-width:0}.detail-panel h3{margin:0 0 9px}.org-list{display:grid;gap:6px;max-height:230px;overflow-y:auto;margin-bottom:6px;scrollbar-width:thin}
.org-row{display:flex;align-items:center;gap:10px;text-align:left;width:100%;padding:7px 10px;background:#1a1e24}.org-row.on{border-color:#9b804c;background:#e7c57c14}.org-row b{display:block;font-size:12px}.org-row small{display:block}.org-row em{margin-left:auto;font-style:normal;font-size:11px;color:var(--gold)}
.orb{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;border:1.5px solid var(--c,#e7c57c);color:var(--c,#e7c57c);background:#14171c;flex-shrink:0}.orb.big{width:50px;height:50px}
.detail-body{border-top:1px solid #2b2f36;margin-top:14px;padding-top:14px}.detail-head{display:flex;gap:12px;align-items:center;margin-bottom:14px}.detail-head h2{font:600 18px var(--serif)}.detail-head .civ-status{margin-left:auto}
.stackbar{display:flex;height:10px;border-radius:5px;overflow:hidden;gap:2px}.stackbar i{display:block}.member-grid{display:flex;gap:6px;flex-wrap:wrap}.member{padding:0;border:0;background:none}.member .avatar-svg{border-radius:50%}.member:hover .avatar-svg{outline:2px solid var(--gold)}
.society-charts{margin-top:14px;grid-template-columns:repeat(auto-fit,minmax(310px,1fr))}.chart-card{min-height:0}.gini-badge{display:flex;gap:8px;align-items:baseline;margin-bottom:4px}.gini-badge b{font:600 22px var(--serif);color:#f2e4c1}
/* civilizations */
.lineage{padding:16px 18px;margin-bottom:14px}.lineage-track{display:flex;align-items:center;gap:0;overflow-x:auto;padding:8px 4px 4px}
.lineage-node{display:flex;flex-direction:column;align-items:center;text-align:center;gap:3px;min-width:140px;color:var(--text)}.lineage-node:hover{text-decoration:none}.lineage-node .orb{border-width:2.5px}.lineage-node b{font:600 18px var(--serif)}.lineage-node strong{font-size:12.5px;margin-top:5px}
.lineage-node.living .orb{--c:#8fd19e;box-shadow:0 0 22px #8fd19e44}.lineage-node.extinct .orb{--c:#7a828a}
.lineage-link{display:flex;flex-direction:column;align-items:center;min-width:100px;gap:3px}.lineage-link i{display:block;width:100%;height:2px;background:linear-gradient(90deg,#4a4f58,var(--gold-d));position:relative}.lineage-link i:after{content:'';position:absolute;right:-1px;top:-4px;border:5px solid transparent;border-left:7px solid var(--gold-d);border-right:0}
.findings{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px;margin-bottom:14px}.finding{display:flex;flex-direction:column;gap:9px}.finding header .verdict{margin-left:auto}.finding p{font-size:12px;color:#bcc3c8;line-height:1.65}
.mini-bar{display:flex;align-items:center;gap:9px;font-size:11px}.mini-bar span{width:150px;color:#aab2b9}.mini-bar b{font-weight:500;width:36px;text-align:right}.mini-bar .bar{height:9px}
.ticks{list-style:none;padding:0;margin:0;display:grid;gap:7px}.ticks li{display:flex;gap:9px;align-items:center;font-size:12px}.ticks .yes .ico{color:#8fe0a8}.ticks .no .ico{color:#f0a3ae}
.metric-line{display:flex;justify-content:space-between;font-size:12px;padding:4px 0;border-bottom:1px solid #ffffff08}.metric-line b{color:#f2e4c1;font-weight:600}
.civ-legend{margin-bottom:14px;padding:12px 18px!important}.civ-legend summary{cursor:pointer;font-weight:600;font-size:13px}.civ-legend p{font-size:12.5px;color:#aeb6ba;line-height:1.75;margin-top:9px}
.civ-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,460px),1fr));gap:14px}.civ-card{padding:18px!important;scroll-margin-top:90px}
.civ-title{display:flex;align-items:center;gap:10px;margin-bottom:14px}.civ-title h2{font:600 20px var(--serif)}.civ-status{font-size:11px;padding:2px 10px;border-radius:999px;border:1px solid var(--line2);color:var(--muted)}.civ-living,.civ-active{color:#9fe0b2;border-color:#3f7a55}.civ-extinct,.civ-dissolved{color:#aab1b8}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(86px,1fr));gap:8px}.tile{display:flex;flex-direction:column;gap:2px;background:#ffffff06;border:1px solid #262b32;border-radius:10px;padding:9px 11px}.tile .ico{color:var(--gold)}.tile b{font:600 20px var(--serif)}.tile small{font-size:10px}
.civ-cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:20px;margin-top:6px}.civ-card .donut svg{width:112px}
.hbar{display:flex;align-items:center;gap:9px;font-size:11px;margin:7px 0;background:transparent;border:0;padding:0;width:100%;text-align:left}.hbar>span{width:46%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#c3c9ce}.hbar b{min-width:26px;text-align:right;font-weight:500}.hbar .bar>i{background:linear-gradient(90deg,#b7955a,var(--gold))}
.civ-card .timeline-list{max-height:250px;overflow:auto;scrollbar-width:thin}.civ-card .timeline-list li{align-items:center}.civ-card .timeline-list li .ico{color:var(--gold)}
.civ-facts{margin-top:10px}.civ-open{margin-top:14px;min-height:40px;width:100%;color:var(--gold);border-color:#7a6945;background:#e7c57c0d}
/* chronicle */
.chron-top{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:14px;margin-bottom:14px}.chron-top .panel{padding:14px 16px}#ev-chips{margin-bottom:14px}
.rhythm{display:flex;gap:4px;align-items:flex-end;height:130px;border-bottom:1px solid #2f343c}.rcol{flex:1;height:100%;display:flex;align-items:flex-end;padding:0;border:0;border-radius:4px 4px 0 0;background:#ffffff05}.rcol:hover,.rcol.on{background:#e7c57c18}.rcol .stack{width:100%;display:flex;flex-direction:column-reverse;border-radius:3px 3px 0 0;overflow:hidden;min-height:2px}.rcol .stack i{display:block}
.axis{display:flex;justify-content:space-between;font-size:10px;color:#8f99a1;margin-top:5px}.hbar.kind{cursor:pointer}.hbar.kind>span{width:42%;display:flex;gap:6px;align-items:center}.hbar.kind .bar>i{background:var(--c,#e7c57c)}
.events{padding:0;list-style:none}.events li{display:flex;gap:12px;align-items:center;padding:11px 4px;border-bottom:1px solid #262b32;font-size:13px}.events li.era{font:600 15px var(--serif);color:var(--gold);padding:18px 4px 8px;border-bottom:1px solid #4a4132;position:sticky;top:70px;background:#16191f;z-index:2}.events li.empty{color:var(--muted)}
.ev-ic{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:color-mix(in srgb,var(--c) 14%,transparent);color:var(--c);flex-shrink:0}.ev-text{flex:1;line-height:1.55}.events time{width:auto!important;color:#8f99a3;font-size:11px;white-space:nowrap}
/* experiments */
.exp-tabs{display:flex;gap:10px;margin-bottom:14px;overflow-x:auto;padding-bottom:4px}.exp-tabs button{display:flex;gap:11px;align-items:center;padding:10px 16px;min-width:190px;text-align:left;border-radius:12px;background:#171b21}.exp-tabs button .ico{color:#9aa1a9}.exp-tabs button b{display:block;font-size:13px;font-weight:600}.exp-tabs button small{display:block}
.exp-tabs button.active{border-color:var(--gold);background:linear-gradient(180deg,#e7c57c1f,#e7c57c0a);box-shadow:0 0 0 1px #e7c57c40 inset}.exp-tabs button.active .ico{color:var(--gold)}
.exp-layout{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:14px;align-items:start}.exp-main{display:grid;gap:14px;min-width:0}
.glance{padding:14px 18px!important}.glance-title{display:flex;gap:11px;align-items:center;margin-bottom:12px}.glance-title .ico{color:var(--gold)}.glance-title small{display:block}
.glance-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px}.glance-grid>div{border-left:1px solid #2b2f36;padding-left:14px}.glance-grid>div:first-child{border:0;padding:0}.glance-grid small{display:block;margin-bottom:5px}.glance-grid .num{font:600 25px var(--serif);color:#f2e4c1}
.exp-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.chart-card.wide{grid-column:1/-1}.key{display:flex;align-items:center;gap:6px;font-size:11px;color:#b9c0c6}.key i{width:9px;height:9px;border-radius:50%}
.exp-side{padding:18px!important;display:grid;gap:4px;position:sticky;top:86px}.exp-title{display:flex;gap:13px;align-items:center;padding-bottom:14px;border-bottom:1px solid #2b2f36;color:var(--gold)}.exp-title div{flex:1;min-width:0}.exp-title h2{font:600 20px var(--serif);color:#f2e4c1}
.exp-side section{padding:13px 0;border-bottom:1px solid #2b2f36}.exp-side section h3{display:flex;gap:7px;align-items:center;color:var(--gold);font-size:12.5px;letter-spacing:0;margin-bottom:8px}.exp-side p{font-size:12.5px;color:#c2c8cc;line-height:1.7}
.bullets{margin:0;padding-left:17px;display:grid;gap:6px;font-size:12.5px;color:#c2c8cc;line-height:1.65}.finding-box{background:#6fd3920d;border:1px solid #3f7a5555!important;border-radius:10px;padding:13px!important;margin:10px 0}.finding-box h3{color:#9fe0b2!important}.caution h3{color:#ecb07b!important}
.btn-row{padding-top:12px}.btn-row button{margin:0}
/* evidence */
.evidence-top{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:14px;margin-bottom:14px}.evidence-top .panel{padding:16px 18px}
.ledger{display:grid;gap:2px}.ledger-row{display:grid;grid-template-columns:150px 1fr;gap:2px 14px;align-items:center;padding:9px 0;border-bottom:1px solid #ffffff08}.ledger-row .verdict{justify-self:start;grid-row:1/3}.ledger-row b{font-size:12.5px}.ledger-row small{font-size:11px;line-height:1.5}
.section-h{font:600 20px var(--serif);color:#f0e2c3;margin:22px 0 12px}.cal-grid{margin-bottom:14px}.rmse{display:flex;gap:16px;flex-wrap:wrap;align-items:center;margin-top:8px;font-size:11px;color:#a5afb9}.rmse span:not(.verdict){display:flex;flex-direction:column}.rmse b{font-size:15px;color:#e8e2d2;font-weight:600}.rmse .verdict{margin-left:auto}.prose-p{font-size:13px;color:#b4bcc1;line-height:1.8;max-width:900px}
.chart-card .micro{margin-top:6px}

/* ---------- responsive ---------- */
@media(min-width:1700px){.world-layout{grid-template-columns:310px minmax(0,1fr) 350px}.masthead nav button{padding:0 22px}}
@media(max-width:1440px){.observer span{display:none}.clock-block .tick{display:none}.masthead nav button{padding:0 11px}.society-layout{grid-template-columns:220px minmax(0,1fr) 300px}}
@media(max-width:1280px){.masthead{padding:0 14px;gap:10px}.masthead nav button .ico{display:none}.daytime{display:none}.brand strong{font-size:24px}.world-layout{grid-template-columns:240px minmax(0,1fr) 280px}.rail{width:62px}.scene-heading h1{font-size:25px}.scene-heading{right:160px}
  .society-layout{grid-template-columns:minmax(0,1fr) 300px}.filters-panel{grid-column:1/-1;display:flex;gap:26px;flex-wrap:wrap;align-items:flex-start}.filters-panel h3{margin-top:0}.exp-layout{grid-template-columns:1fr}.exp-side{position:static}.evidence-top{grid-template-columns:1fr}}
@media(max-width:1020px){.world-layout{grid-template-columns:260px minmax(0,1fr);grid-template-rows:auto 560px auto auto auto auto}.inspector{grid-row:3;grid-column:1/-1;max-height:420px}.stat-cards{grid-row:4;grid-template-columns:repeat(2,minmax(0,1fr))}.timeline-panel{grid-row:5}.world-foot{grid-row:6}
  .society-layout{grid-template-columns:1fr}.chron-top{grid-template-columns:1fr}.civ-cols{grid-template-columns:1fr}.exp-grid{grid-template-columns:1fr}.page-title{flex-direction:column}.callout{max-width:none}.header-end .vsep{display:none}}
@media(max-width:760px){
  .masthead{height:auto;flex-wrap:wrap;padding:8px 12px;gap:6px 10px}.brand-mark .ico{width:30px;height:30px}.brand strong{font-size:22px}.brand small{font-size:9px}
  .masthead nav{order:3;width:100%;justify-content:flex-start;overflow-x:auto;gap:0;height:40px;flex:none}.masthead nav button{padding:0 11px;font-size:11px;white-space:nowrap}.masthead nav b{font-size:12px}
  .header-end{margin-left:auto;gap:8px}.header-end .clock-block,.header-end .status,.header-end .daytime,.header-end .vsep,.admin-link span:last-child{display:none}.admin-link{padding:6px 8px}
  .app-shell{display:block}.rail{width:100%;flex-direction:row;border-right:0;border-bottom:1px solid #22262c;padding:3px 8px;gap:0;justify-content:space-around;position:sticky;top:0;z-index:15}.rail button{min-height:46px;padding:4px 8px;min-width:54px;border:0}.rail button .ico{width:20px;height:20px}.rail-bottom{display:none}
  main{padding:8px 10px 20px}.world-layout{display:flex;flex-direction:column;gap:10px}.world-hud{flex-wrap:wrap;gap:6px 10px}.world-id{display:none}.public-caption{display:block;margin-left:auto;font-size:10px;color:#9fdcb3}
  .viewport{order:1;height:480px;flex-shrink:0}.world-hud{order:0}.inspector{order:2;max-height:480px;min-height:150px}.citizen-sidebar{order:3}.citizen-panel{height:auto;flex:none}.citizen-list{flex:none;max-height:320px;min-height:220px}.masthead{position:static}.stat-cards{order:4;grid-template-columns:1fr}.timeline-panel{order:5}.world-foot{order:6}
  .scene-heading{top:14px;left:14px;right:14px}.scene-heading h1{font-size:24px}.scene-heading p{max-width:300px}.scene-stats{gap:4px}.chip-stat{padding:4px 8px 4px 6px}.chip-stat .ico{width:14px;height:14px}.chip-stat b{font-size:13px}.chip-stat small{font-size:9px}
  .scene-top{top:auto;bottom:112px;right:10px;flex-direction:column}.scene-top button span:last-child{display:none}.scene-top #fit span:last-child,.scene-top #labels span:last-child{display:none}.minimap-wrap{width:124px}.minimap-wrap canvas{width:112px;height:78px}.scene-caption{display:none}.selection-label{right:10px;bottom:62px;max-width:170px;font-size:11px}
  .recent-events{display:none}.page-title h1{font-size:28px}.society-charts,.grid{grid-template-columns:1fr}.kpis{grid-template-columns:repeat(2,1fr)}.filters-panel{flex-direction:column;gap:6px}.org-list{max-height:200px}.events li{flex-wrap:wrap;gap:8px}.events li.era{top:0}.ledger-row{grid-template-columns:1fr}.ledger-row .verdict{grid-row:auto}.exp-tabs button{min-width:170px}.lineage-node{min-width:116px}.lineage-link{min-width:56px}.mini-bar span{width:110px}.tiles{grid-template-columns:repeat(3,1fr)}.donut{justify-content:center}
}

.pstep{fill:#e7c57c}.pstep.b{fill:#8fd19e}.pstep.c{fill:#e8a46a}.events li.more{justify-content:center;border:0}.events li.more button{min-width:220px}
@media(max-width:1700px){.observer span,.clock-block .tick{display:none}}
@media(max-width:1020px){.masthead{height:auto;flex-wrap:wrap;padding:8px 14px;gap:6px 12px}.masthead nav{order:3;width:100%;flex:none;height:42px;justify-content:flex-start;overflow-x:auto}.header-end{margin-left:auto}.masthead{position:static}}
/* Summary expands in document flow, never over residents or buildings. */
.world-hud{flex-wrap:wrap}.world-hud .scene-heading{display:block;position:static;pointer-events:auto;flex:0 0 100%;padding:0 0 6px;text-shadow:none;min-width:0}.world-hud .scene-heading summary{cursor:pointer;display:flex;align-items:center;gap:12px;width:fit-content;max-width:100%;font-size:13px;color:#efe2c4;padding:4px 8px;border:1px solid #504a3a;border-radius:6px;background:#1a1d21}.world-hud .scene-heading summary:before{content:'›';color:var(--gold)}.world-hud .scene-heading[open] summary:before{transform:rotate(90deg)}.world-hud .summary-hint{font-size:10px;color:#aab0b7}.world-hud .scene-heading .eyebrow{display:block;margin-top:10px}.world-hud .scene-stats{margin-top:8px}.world-hud .scene-heading p{max-width:none}

/* ---- v1/observer.css ---- */
/* Visual V1 Observer. Tokens from EMERGENTIA_VISUAL_V1_HANDOFF §9.1. */
:root{--bg-panel:rgba(20,18,16,.86);--bg-panel-cog:rgba(10,14,16,.90);--border-subtle:rgba(243,235,221,.12);--tx1:#f3ebdd;--tx2:#c9bfae;--tx3:#8a8174;--acc-world:#e8a04a;--acc-cog:#8fd3c8;--acc-hist:#d8b06a;--live:#9fd18b;--conflict:#e8785a;--conflict2:#f2a08a;--serif:'Noto Serif SC','Source Han Serif SC','Songti SC','STSong',Georgia,serif;--sans2:'Noto Sans SC','Source Han Sans SC','PingFang SC','Microsoft YaHei','Segoe UI',system-ui,sans-serif;--ease:cubic-bezier(.2,.8,.2,1)}
body.observer-on{overflow:hidden;background:#141210}
.obs{position:fixed;inset:0;font-family:var(--sans2);color:var(--tx1);font-variant-numeric:tabular-nums}
.obs button{font-family:inherit}
.obs-stage{position:absolute;inset:0;background:#141210}
.obs-stage canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none}
#map-overlay{pointer-events:none}
.obs-stage #map{position:absolute}
.obs-tags{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.obs-tags .tag{position:absolute;left:0;top:0;display:flex;align-items:center;gap:7px;white-space:nowrap;margin:-34px 0 0 0;translate:-50% 0;padding:5px 11px;border-radius:999px;background:rgba(20,18,16,.84);border:1px solid var(--border-subtle);font-size:12px;box-shadow:0 4px 14px #0006;backdrop-filter:blur(6px)}
.obs-tags .tag b{font-weight:700;color:var(--tx1)}.obs-tags .tag span{color:var(--tx2)}
.obs-tags .tag.sel i{width:7px;height:7px;border-radius:50%;background:var(--acc-world);box-shadow:0 0 8px var(--acc-world)}
.obs-tags .tag.hov{padding:3px 9px;font-size:11px}
.obs-tags .tag.grp{background:rgba(20,18,16,.7);font-size:11px;padding:3px 9px}
/* top bar */
.obs-top{position:absolute;top:0;left:0;right:0;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;padding:14px 20px 26px;background:linear-gradient(180deg,rgba(14,12,10,.72),rgba(14,12,10,0));pointer-events:none;z-index:5}
.obs-top>*{pointer-events:auto}
.obs-brand{display:flex;align-items:baseline;gap:12px;min-width:0}
.obs-logo{font:700 22px/1 var(--serif);color:var(--tx1);letter-spacing:.01em;text-decoration:none!important}
.obs-world select{background:transparent;border:0;color:var(--tx2);font-size:13px;max-width:220px;padding:2px 0;cursor:pointer}
.obs-world select option{background:#1b1815;color:var(--tx1)}
.obs-sub{color:var(--tx3);font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}
.obs-capsule{justify-self:center;display:flex;align-items:center;gap:14px;padding:6px 8px 6px 16px;border-radius:999px;background:var(--bg-panel);border:1px solid var(--border-subtle);box-shadow:0 8px 24px #0005;backdrop-filter:blur(10px);font-size:13.5px;white-space:nowrap;transition:border-color .3s}
.cap-state{display:flex;align-items:center;gap:7px}.cap-state i{width:8px;height:8px;border-radius:50%;background:var(--live);box-shadow:0 0 8px var(--live)}
.cap-state b{font-weight:600;color:var(--live);font-size:12.5px}
.cap-state[data-state=warn] i{background:var(--conflict);box-shadow:none}.cap-state[data-state=warn] b{color:var(--conflict2)}
.cap-state[data-state=sealed] i{background:var(--tx3);box-shadow:none}.cap-state[data-state=sealed] b{color:var(--tx2)}
.obs-capsule.replay{border-color:rgba(232,160,74,.55)}.cap-state[data-state=replay] i{background:var(--acc-world);box-shadow:0 0 8px var(--acc-world)}.cap-state[data-state=replay] b{color:var(--acc-world)}
.cap-time{color:var(--tx1);font-weight:600}
.cap-light{display:flex;align-items:center;gap:5px;color:var(--tx2);font-size:12px}.cap-light .ico{color:var(--acc-hist)}.cap-light .muted{color:var(--tx3)}
.cap-replay{display:flex;gap:2px}.cap-replay button{border:0;background:transparent;color:var(--tx2);padding:4px 9px;border-radius:999px;font-size:12px}.cap-replay button.on{background:#ffffff1a;color:var(--tx1)}
.cap-btn{border-radius:999px!important;border:1px solid var(--border-subtle)!important;background:#ffffff0d!important;color:var(--tx1)!important;padding:6px 14px!important;font-size:12.5px}
.cap-btn.live{background:#9fd18b!important;color:#12210f!important;border-color:#9fd18b!important;font-weight:700}
.obs-right{justify-self:end;display:flex;align-items:center;gap:10px}
.obs-modes{display:flex;padding:4px;border-radius:999px;background:var(--bg-panel);border:1px solid var(--border-subtle);backdrop-filter:blur(10px)}
.obs-modes button{border:0;background:transparent;color:var(--tx2);padding:7px 18px;border-radius:999px;font-size:13px;min-height:34px}
.obs-modes button.on{background:var(--tx1);color:#1a1612;font-weight:700}
body[data-obs-mode=cognition] .obs-modes button.on{background:var(--acc-cog);color:#0b1a18}
body[data-obs-mode=history] .obs-modes button.on{background:var(--acc-hist);color:#1d1508}
.obs-icon{width:44px;height:44px;border-radius:50%!important;display:grid;place-items:center;padding:0!important;background:var(--bg-panel)!important;border:1px solid var(--border-subtle)!important;color:var(--tx1)}
/* rail */
.obs-rail{position:absolute;left:18px;top:96px;display:flex;flex-direction:column;gap:10px;z-index:4}
.rail-toggle{display:none}
.rail-body,.rail-levels{display:flex;flex-direction:column;gap:4px;padding:6px;border-radius:18px;background:var(--bg-panel);border:1px solid var(--border-subtle);backdrop-filter:blur(10px)}
.rail-body button{width:44px;height:44px;border-radius:12px!important;border:0!important;background:transparent!important;color:var(--tx1);display:grid;place-items:center;padding:0!important;font-size:20px;line-height:1}
.rail-body button[aria-pressed=true]{background:#e8a04a22!important;color:var(--acc-world)}
.rail-body button.off{color:var(--tx3)}
.rail-sep{height:1px;background:var(--border-subtle);margin:4px 6px}
.rail-levels{padding:10px 12px;gap:2px}.rail-levels small{color:var(--tx3);font-size:10.5px;margin-bottom:4px}
.rail-levels button{border:0!important;background:transparent!important;color:var(--tx2);text-align:left;padding:3px 0!important;font-size:12px;display:flex;align-items:center;gap:6px;min-height:22px}
.rail-levels button.on{color:var(--tx1);font-weight:700}.rail-levels button.on::after{content:'';width:7px;height:7px;border-radius:50%;background:var(--tx1)}
/* right panel */
.obs-panel{position:absolute;right:18px;top:84px;width:340px;max-height:calc(100% - 84px - 128px);overflow:auto;padding:20px;border-radius:18px;background:var(--bg-panel);border:1px solid var(--border-subtle);box-shadow:0 14px 40px #0007;backdrop-filter:blur(14px);z-index:4;animation:panelIn .18s var(--ease);scrollbar-width:thin;scrollbar-color:#3a352e transparent}
.obs-panel.cog{background:var(--bg-panel-cog)}
@keyframes panelIn{from{opacity:0;transform:translateX(16px)}to{opacity:1;transform:none}}
.p-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.p-head small{color:var(--tx3);font-size:11.5px}
.p-close{width:32px;height:32px;padding:0!important;border-radius:50%!important;background:transparent!important;border:0!important;color:var(--tx2);display:grid;place-items:center}
.p-id h2{font:700 30px/1.2 var(--serif);color:var(--tx1);margin:2px 0 4px}.p-id p{color:var(--tx2);font-size:12.5px;margin-bottom:14px}
.p-now{display:flex;flex-direction:column;gap:6px;padding:14px;border-radius:12px;background:#ffffff08;border:1px solid var(--border-subtle);margin-bottom:16px}
.p-now small{color:var(--tx3);font-size:11px}.p-now b{font-size:15px;font-weight:700;color:var(--tx1)}
.obs .bar{height:4px;border-radius:999px;background:#ffffff14;overflow:hidden}.obs .bar i{display:block;height:100%;border-radius:999px;background:var(--acc-world)}
.bar.gold i{background:var(--acc-world)}.bar.warm i{background:#e8b25a}.bar.cool i{background:#c9d6dc}.bar.violet i{background:#b79de0}.bar.amber i{background:var(--conflict)}
.p-needs{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px;margin-bottom:16px}
.p-needs .m{display:grid;grid-template-columns:1fr auto;gap:4px 8px;font-size:11.5px;color:var(--tx2)}.p-needs .m .bar{grid-column:1/-1;order:3}.p-needs .m b{font-weight:600;color:var(--tx1);font-size:11.5px}
.p-needs .warn-line,.p-needs .micro{grid-column:1/-1}
.warn-line{color:var(--conflict2);font-size:12px;display:flex;gap:6px;align-items:center}
.obs-panel h3{font-size:11.5px;color:var(--tx3);font-weight:500;margin:0 0 8px;letter-spacing:0}
.p-mem{margin-bottom:14px}.p-mem p{display:grid;grid-template-columns:72px 1fr;gap:10px;font-size:12.5px;color:var(--tx1);margin-bottom:6px;align-items:baseline}.p-mem time{color:var(--tx3);font-size:11.5px}
.p-mem p .chip-btn{margin:0 4px 0 0}
.p-rel{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}.p-rel h3,.p-rel .micro{width:100%}
.chip-btn{border-radius:999px!important;padding:5px 12px!important;font-size:12px!important;background:transparent!important;border:1px solid var(--border-subtle)!important;color:var(--tx1)!important;min-height:30px}
.chip-btn:hover{border-color:#f3ebdd55!important}.chip-btn.bad{border-color:#e8785a66!important;color:var(--conflict2)!important}
.p-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}
.p-actions button{border-radius:999px!important;padding:10px 6px!important;font-size:12.5px;min-height:44px;background:transparent!important;border:1px solid var(--border-subtle)!important;color:var(--tx1)}
.p-actions button:first-child{background:var(--tx1)!important;color:#1a1612!important;font-weight:700}
.p-actions button.on{background:var(--acc-world)!important;color:#1a1208!important}
.p-actions button.cog{border-color:#8fd3c866!important;color:var(--acc-cog)}.p-actions button.hist{border-color:#d8b06a66!important;color:var(--acc-hist)}
.p-more{border-top:1px solid var(--border-subtle);padding-top:10px;font-size:12px;color:var(--tx2)}.p-more summary{cursor:pointer;color:var(--tx3);font-size:11.5px}
.p-more dl{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:10px 0}.p-more dt{color:var(--tx3)}.p-more dd{margin:0;color:var(--tx1)}
.p-more ul{list-style:none;padding:0;margin:10px 0;display:grid;gap:4px}.p-more time{color:var(--tx3);margin-right:6px}
.obs-panel .micro{color:var(--tx3);font-size:11px;line-height:1.55;margin-top:8px}
.obs-panel .empty{color:var(--tx2);font-size:13px;line-height:1.6}
/* cognition */
.cog-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:6px 0 16px}
.cog-stats div{padding:10px 12px;border-radius:12px;background:#8fd3c80d;border:1px solid #8fd3c826}.cog-stats b{display:block;font:700 22px/1.2 var(--serif);color:var(--tx1)}.cog-stats small{color:var(--tx3);font-size:11px}
.cog-stats .bad{background:#e8785a12;border-color:#e8785a33}.cog-stats .bad b{color:var(--conflict2)}
.beliefs{list-style:none;padding:0;margin:0 0 12px;display:grid;gap:2px}
.beliefs li{padding:9px 0;border-bottom:1px solid var(--border-subtle);display:grid;gap:3px}.beliefs b{font-size:13px;font-weight:600;color:var(--tx1)}
.beliefs small{font-size:11.5px}.beliefs .seen{color:var(--acc-cog)}.beliefs .heard{color:var(--acc-world)}.beliefs .inferred{color:var(--tx3)}.beliefs .bad{color:var(--conflict2)}
.beliefs .truth{display:inline-block;justify-self:start;margin-top:4px;padding:4px 9px;border-radius:8px;border:1px solid #e8785a66;background:#e8785a14;color:var(--conflict2)}
.legend{display:flex;gap:14px;font-size:11.5px;color:var(--tx2);margin-bottom:12px}.legend i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px;vertical-align:-1px}
.legend i.seen{background:var(--acc-cog)}.legend i.heard{border:1.5px dashed var(--acc-world)}.legend i.inferred{background:var(--tx3)}
.obs-panel button.wide{width:100%;border-radius:12px!important;padding:12px!important;background:transparent!important;border:1px solid var(--border-subtle)!important;color:var(--tx1);min-height:44px}
.obs-banner{position:absolute;top:76px;left:50%;translate:-50% 0;max-width:min(680px,calc(100% - 420px));padding:8px 16px;border-radius:999px;background:var(--bg-panel-cog);border:1px solid #8fd3c844;color:var(--acc-cog);font-size:12.5px;text-align:center;z-index:4}
/* bottom */
.obs-bottom{position:absolute;left:18px;right:18px;bottom:16px;padding:12px 18px 10px;border-radius:18px;background:var(--bg-panel);border:1px solid var(--border-subtle);backdrop-filter:blur(12px);box-shadow:0 10px 30px #0006;z-index:3;transition:right .18s var(--ease)}
body.has-panel .obs-bottom{right:374px}
.obs-events{display:flex;align-items:baseline;gap:16px;min-width:0;margin-bottom:6px}
.ev-title{color:var(--tx3);font-size:12px;white-space:nowrap}
.ev-stream{display:flex;gap:22px;min-width:0;overflow:hidden}.ev{display:flex;align-items:center;gap:7px;font-size:13px;white-space:nowrap;animation:evIn .4s ease}.ev time{color:var(--tx3);font-size:12px}.ev .ico{color:var(--acc-hist)}
@keyframes evIn{from{opacity:0}to{opacity:1}}
.tl-head{display:none;align-items:baseline;gap:14px;margin:6px 0 4px}.tl-head b{font:700 16px var(--serif)}.tl-head small{color:var(--tx3);font-size:11.5px}
.obs-bottom.expanded .tl-head,body[data-obs-mode=cognition] .tl-head{display:flex}
.tl-legend{margin-left:auto;display:flex;align-items:center;gap:6px;font-size:11px;color:var(--tx2)}.tl-legend i{width:8px;height:8px;border-radius:50%;background:var(--c);margin-left:8px}
.tl-track{position:relative;height:30px}
.obs-bottom.expanded .tl-track{height:70px}
#tl-curve{position:absolute;left:0;right:0;top:0;width:100%;height:100%;opacity:0;pointer-events:none}.obs-bottom.expanded #tl-curve{opacity:1}
.tl-marks{position:absolute;left:0;right:0;top:50%;height:0}
.tl-track::before{content:'';position:absolute;left:0;right:0;top:50%;height:2px;margin-top:-1px;background:linear-gradient(90deg,#d8b06a55,#d8b06a);border-radius:2px}
.mk{position:absolute;top:0;width:10px;height:10px;margin:-5px 0 0 -5px;padding:0!important;border-radius:50%!important;border:2px solid #14110e!important;background:var(--c)!important;z-index:2}
.mk.life{width:14px;height:14px;margin:-7px 0 0 -7px}
.mk span.up{top:auto;bottom:14px}.mk span.l{left:-4px;translate:0 0}.mk span.r{left:auto;right:-4px;translate:0 0}
.mk span{position:absolute;top:14px;left:50%;translate:-50% 0;white-space:nowrap;font-size:11px;color:var(--tx2);pointer-events:none;max-width:160px;overflow:hidden;text-overflow:ellipsis}
.obs-bottom:not(.expanded) .mk{width:7px;height:7px;margin:-3.5px 0 0 -3.5px;border-width:1px!important}
.tl-cursor{position:absolute;top:50%;width:4px;height:22px;margin:-11px 0 0 -2px;border-radius:3px;background:var(--tx1);box-shadow:0 0 0 3px #14110e;z-index:3;pointer-events:none}
.tl-cursor:not(.live){background:var(--acc-world)}
#tl-range{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;margin:0;z-index:1}
.tl-foot{display:flex;justify-content:space-between;color:var(--tx3);font-size:11px}
.obs-note{position:absolute;right:18px;bottom:16px;width:340px;margin:0;padding:10px 14px;border-radius:14px;background:var(--bg-panel);border:1px solid var(--border-subtle);color:var(--tx3);font-size:11px;line-height:1.5;z-index:3;display:none}
body.has-panel .obs-note{display:block}
.linkish{background:none!important;border:0!important;padding:0!important;color:var(--acc-hist)!important;font-size:11px!important;text-decoration:underline;text-underline-offset:2px}
body.has-panel .obs-panel{max-height:calc(100% - 84px - 196px)}
/* popovers */
.obs-pop{position:absolute;top:70px;right:18px;width:340px;max-height:70vh;overflow:auto;padding:14px;border-radius:18px;background:rgba(20,18,16,.95);border:1px solid var(--border-subtle);box-shadow:0 14px 40px #0008;z-index:8}
.obs-pop input{width:100%;border-radius:12px;border:1px solid var(--border-subtle);background:#0e0c0a;color:var(--tx1);padding:11px 14px;font-size:14px}
.obs-pop ul{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:2px}.obs-pop li button{width:100%;display:flex;justify-content:space-between;gap:10px;background:transparent;border:0;border-radius:10px;padding:10px;color:var(--tx1);text-align:left;min-height:44px}.obs-pop li button:hover{background:#ffffff0d}.obs-pop li small{color:var(--tx3)}.obs-pop li.muted{color:var(--tx3);font-size:12px;padding:8px}
.obs-pop.menu{display:grid;gap:4px}.obs-pop.menu h4{color:var(--tx3);font-size:11px;font-weight:500;margin:10px 0 2px}.obs-pop.menu>button{display:flex;align-items:center;gap:10px;background:transparent;border:0;border-radius:10px;padding:9px 10px;color:var(--tx1);text-align:left;min-height:44px}.obs-pop.menu>button:hover{background:#ffffff0d}
.obs-pop .row{display:flex;gap:6px}.obs-pop .row button{flex:1;border-radius:999px;border:1px solid var(--border-subtle);background:transparent;color:var(--tx2);min-height:38px}.obs-pop .row button.on{background:var(--tx1);color:#1a1612;font-weight:700}
.menu-select{width:100%;border-radius:10px;border:1px solid var(--border-subtle);background:#0e0c0a;color:var(--tx1);padding:9px 10px;min-height:40px}
.menu-link{padding:8px 10px;color:var(--tx2)!important;font-size:12.5px}
dialog.about{max-width:620px;border-radius:18px;border:1px solid var(--border-subtle);background:#17140f;color:var(--tx1);padding:24px 28px;line-height:1.6;font-family:var(--sans2)}
dialog.about::backdrop{background:#000a}dialog.about h2{font:700 22px var(--serif);margin-bottom:8px}dialog.about h3{color:var(--acc-hist);font-size:13px;margin:16px 0 6px}dialog.about p,dialog.about li{color:var(--tx2);font-size:13px}dialog.about ul{padding-left:18px;margin:0}dialog.about button{margin-top:16px}
.obs #notice{position:absolute;left:50%;bottom:130px;translate:-50% 0;padding:9px 16px;border-radius:999px;background:rgba(20,18,16,.94);border:1px solid var(--border-subtle);font-size:12.5px;z-index:9}
.obs .ico{vertical-align:middle}
/* research pages keep their existing layout */
body.research-on{overflow:auto}
#research-shell .masthead{position:sticky;top:0;z-index:20}
/* tablet / mobile */
@media (max-width:1100px){.obs-top{grid-template-columns:auto 1fr auto}.obs-sub{display:none}.obs-capsule{gap:10px;font-size:12.5px}.cap-light span{display:none}}
@media (max-width:760px){
  .obs-top{grid-template-columns:1fr auto;padding:10px 10px 18px;gap:8px}
  .obs-brand{gap:8px;min-width:0}.obs-logo{font-size:18px}.obs-world{display:none}
  .obs-capsule{grid-column:1/-1;grid-row:2;justify-self:stretch;justify-content:space-between;padding:5px 6px 5px 12px;font-size:12px;gap:8px}
  .obs-capsule .cap-btn{padding:5px 10px!important;font-size:11.5px}.cap-light{display:none}
  .obs-right{grid-row:1;grid-column:2;gap:6px}.obs-modes button{padding:6px 11px;font-size:12px}.obs-icon{width:40px;height:40px}
  .obs-rail{top:118px;left:10px}.rail-toggle{display:grid;width:44px;height:44px;border-radius:50%!important;place-items:center;padding:0!important;background:var(--bg-panel)!important;border:1px solid var(--border-subtle)!important;color:var(--tx1)}
  .rail-body,.rail-levels{display:none}body.rail-open .rail-body,body.rail-open .rail-levels{display:flex}
  .obs-panel{left:0;right:0;top:auto;bottom:0;width:auto;max-height:56vh!important;border-radius:18px 18px 0 0;padding:16px 16px 24px;animation:drawerIn .18s var(--ease)}
  @keyframes drawerIn{from{transform:translateY(30px);opacity:0}to{transform:none;opacity:1}}
  .p-id h2{font-size:24px}.p-actions button{font-size:12px}
  .obs-bottom{left:8px;right:8px;bottom:8px;padding:8px 12px}
  body.has-panel .obs-bottom{display:none}
  body.has-panel .obs-note{display:none}
  .ev-stream .ev:nth-child(n+2){display:none}.ev-title{display:none}
  .obs-pop{left:8px;right:8px;width:auto;top:112px}
  .obs-banner{top:112px;max-width:calc(100% - 20px);border-radius:14px;font-size:11.5px}
  .tl-legend{display:none!important}
}
@media (prefers-reduced-motion:reduce){.obs-panel,.ev{animation:none}}

/* ---- v1/observer-v12.css ---- */
/* Visual V1.2: shared top bar, four sections, relation overlay, analysis pages, mobile tab bar. */
.obs-top{position:fixed;z-index:30;font-family:var(--sans2);color:var(--tx1);font-variant-numeric:tabular-nums}
body.research-on .obs-top{background:rgba(16,14,12,.94);backdrop-filter:blur(12px);border-bottom:1px solid var(--border-subtle);padding-bottom:14px}
.obs-top button{font-family:inherit}
.obs-nav{display:flex;padding:4px;border-radius:999px;background:var(--bg-panel);border:1px solid var(--border-subtle);backdrop-filter:blur(10px)}
.obs-nav button{display:flex;align-items:center;gap:6px;border:0!important;background:transparent!important;color:var(--tx2);padding:7px 15px!important;border-radius:999px!important;font-size:13px;min-height:34px}
.obs-nav button b{font-weight:500}.obs-nav button.on{background:var(--tx1)!important;color:#1a1612}.obs-nav button.on b{font-weight:700}
.obs-nav .ico{opacity:.8}
.cap-interp{position:relative;width:34px;height:4px;border-radius:999px;background:#ffffff14;overflow:hidden}
.cap-interp i{position:absolute;left:0;top:0;bottom:0;width:0;background:var(--live);border-radius:999px;transition:width .2s linear}
.obs-capsule.replay .cap-interp{display:none}
.follow-chip{position:absolute;left:50%;top:118px;translate:-50% 0;display:flex;align-items:center;gap:8px;padding:6px 6px 6px 14px;border-radius:999px;background:rgba(20,18,16,.9);border:1px solid #e8a04a66;color:var(--tx1);font-size:12.5px;z-index:4}
.follow-chip i{width:8px;height:8px;border-radius:50%;background:var(--acc-world);box-shadow:0 0 8px var(--acc-world)}
.follow-chip button{width:28px;height:28px;padding:0!important;border-radius:50%!important;border:0!important;background:#ffffff14!important;color:var(--tx1)}
.cog-exit{border-radius:999px!important;border:1px solid #8fd3c866!important;background:#8fd3c81a!important;color:var(--acc-cog)!important;padding:3px 12px!important;font-size:12px;margin-right:6px}
.obs-banner{pointer-events:auto}
.p-actions.four{grid-template-columns:repeat(2,1fr)}
.p-actions.four .wide2{grid-column:1/-1}
.p-actions button.rel{border-color:#b79de066!important;color:#c9b2ee}.p-actions button.rel.on{background:#b79de033!important}
.p-actions button:first-child.on{background:var(--acc-world)!important}
.tie-title{font-size:22px!important}.tie-title span{color:var(--tx3);font-family:var(--sans2);font-size:18px;margin:0 4px}
/* relation panel */
.net-panel{position:absolute;left:80px;top:96px;width:300px;max-height:calc(100% - 240px);overflow:auto;padding:14px 16px;border-radius:18px;background:var(--bg-panel);border:1px solid var(--border-subtle);backdrop-filter:blur(12px);z-index:5;font-size:12px;color:var(--tx2);display:grid;gap:10px}
.net-head{display:flex;align-items:center;justify-content:space-between}.net-head b{font:700 15px var(--serif);color:var(--tx1)}
.seg{display:flex;gap:3px;padding:3px;border-radius:999px;background:#ffffff0a;border:1px solid var(--border-subtle)}
.seg button{flex:1;border:0!important;background:transparent!important;color:var(--tx2);padding:5px 6px!important;border-radius:999px!important;font-size:11.5px;min-height:30px}
.seg button.on{background:var(--tx1)!important;color:#1a1612;font-weight:700}
.net-types,.si-tools{display:flex;flex-wrap:wrap;gap:5px}
.tchip{display:inline-flex;align-items:center;gap:5px;padding:4px 9px;border-radius:999px;border:1px solid var(--border-subtle);font-size:11.5px;color:var(--tx1);cursor:pointer;user-select:none}
.tchip input{display:none}.tchip i{width:14px;height:3px;border-radius:2px;background:var(--c)}.tchip small{color:var(--tx3)}
.tchip:has(input:not(:checked)){opacity:.42}.tchip.off{opacity:.5;cursor:help;border-style:dashed}
.net-range{display:grid;grid-template-columns:1fr auto;gap:4px 8px;align-items:center}.net-range span{grid-column:1/-1;color:var(--tx3)}
.net-range input[type=range]{width:100%;accent-color:var(--acc-world)}.net-range select{grid-column:1/-1;background:#0e0c0a;color:var(--tx1);border:1px solid var(--border-subtle);border-radius:10px;padding:6px}
.net-check{display:flex;gap:8px;align-items:flex-start;color:var(--tx2)}
.rail-body button[data-layer=network][aria-pressed=true]{background:#b79de026!important;color:#c9b2ee}
/* pages */
.pages{position:relative;padding:96px max(20px,calc((100vw - 1440px)/2)) 80px;min-height:100vh;color:var(--tx1);font-family:var(--sans2);background:radial-gradient(1400px 600px at 70% -10%,#211c17 0,transparent 70%),#12100e}
.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin:10px 0 18px}
.page-head h1{font:700 34px/1.15 var(--serif);margin:4px 0 6px}.page-head .lede{color:var(--tx2);max-width:760px;font-size:13.5px;line-height:1.6}
.page-head .eyebrow{color:var(--acc-hist)}
.evidence-key{display:flex;gap:6px;flex-wrap:wrap}
.ek{display:inline-block;padding:3px 9px;border-radius:999px;font-size:10.5px;font-weight:600;letter-spacing:.02em;border:1px solid}
.ek.rec{color:#9fd18b;border-color:#9fd18b55;background:#9fd18b10}.ek.der{color:#8fd3c8;border-color:#8fd3c855;background:#8fd3c810}.ek.exp{color:#d8b06a;border-color:#d8b06a55;background:#d8b06a10}.ek.hyp{color:#c9bfae;border-color:#c9bfae44;background:transparent;border-style:dashed}
.subnav{display:flex;gap:4px;flex-wrap:wrap;padding:5px;border-radius:16px;background:rgba(20,18,16,.7);border:1px solid var(--border-subtle);margin-bottom:18px;position:sticky;top:78px;z-index:10;backdrop-filter:blur(10px)}
.subnav button{border:0!important;background:transparent!important;color:var(--tx2);padding:8px 13px!important;border-radius:11px!important;font-size:12.5px;min-height:36px}
.subnav button.on{background:#f3ebdd!important;color:#1a1612;font-weight:700}
.si-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.si-card{border-radius:18px;background:linear-gradient(180deg,rgba(28,25,21,.95),rgba(20,18,15,.95));border:1px solid var(--border-subtle);padding:16px 18px;min-width:0;box-shadow:0 10px 30px #0004}
.si-card.span2{grid-column:span 2}.si-card.span3{grid-column:1/-1}
.si-card header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.si-card h3{font:700 15px/1.3 var(--serif);color:var(--tx1);margin:0;letter-spacing:0}
.si-note{color:var(--tx3);font-size:11px;line-height:1.55;margin-top:10px}.si-empty{color:var(--tx3);font-size:12.5px;padding:24px 4px}
.si-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px}
.si-stat{padding:10px 12px;border-radius:12px;background:#ffffff07;border:1px solid var(--border-subtle)}.si-stat b{display:block;font:700 24px/1.2 var(--serif);color:var(--tx1)}.si-stat small{color:var(--tx3);font-size:11px}
.si-list,.si-events{list-style:none;padding:0;margin:0;display:grid;gap:6px;font-size:12.5px}.si-list li{line-height:1.5;color:var(--tx2)}.si-list li div{margin-top:4px;display:flex;flex-wrap:wrap;gap:4px}
.si-events li{display:grid;grid-template-columns:86px 1fr auto;gap:10px;align-items:center;padding:5px 0;border-bottom:1px solid var(--border-subtle)}.si-events time{color:var(--tx3);font-size:11px}
.mini{border-radius:999px!important;padding:3px 10px!important;font-size:11px!important;background:transparent!important;border:1px solid var(--border-subtle)!important;color:var(--tx2)!important}
.si-table{width:100%;border-collapse:collapse;font-size:12px}.si-table th{color:var(--tx3);font-weight:500;text-align:left;padding:6px 8px;border-bottom:1px solid var(--border-subtle)}.si-table td{padding:6px 8px;border-bottom:1px solid #f3ebdd0d;color:var(--tx1)}
.si-table tr.failed td,.si-table tr.dissolved td{color:var(--tx3)}.si-scroll{overflow:auto;max-height:420px}
.si-two{display:grid;grid-template-columns:1fr 1fr;gap:16px}.si-rank{margin:0;padding-left:18px;display:grid;gap:4px}.si-rank li{display:flex;justify-content:space-between;align-items:center;gap:8px}
.si-ranks{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}.rank h4{font-size:12.5px;color:var(--tx1);margin:0}.rank small{color:var(--tx3);font-size:10.5px}.rank ol{margin:8px 0 0;padding-left:18px;display:grid;gap:4px}.rank li{display:flex;justify-content:space-between;gap:6px;align-items:center}.rank li b{font-size:12px;color:var(--tx2)}
.si-dl{display:grid;grid-template-columns:auto 1fr;gap:8px 12px;font-size:12px;margin:0}.si-dl dt{color:var(--tx1);font-weight:700}.si-dl dd{margin:0;color:var(--tx2);line-height:1.5}
.si-ladder{list-style:none;padding:0;margin:0;display:grid;gap:6px}.si-ladder li{display:grid;grid-template-columns:1fr auto;gap:2px 10px;padding:8px 10px;border-radius:10px;border:1px solid var(--border-subtle)}
.si-ladder li span{font-size:11px;font-weight:700}.si-ladder li.yes span{color:#9fd18b}.si-ladder li.no span{color:var(--tx3)}.si-ladder li small{grid-column:1/-1;color:var(--tx3);font-size:11px}
.si-loading,.si-error{color:var(--tx2);padding:40px 0;text-align:center}.si-error button,.si-card button.wide{margin-top:10px;border-radius:12px!important;padding:10px 16px!important;border:1px solid var(--border-subtle)!important;background:transparent!important;color:var(--tx1)}
.si-p{color:var(--tx2);font-size:13px;line-height:1.6}
.pages .sub-view{margin-top:6px}
/* lives */
.lives{display:grid;grid-template-columns:320px 1fr;gap:16px}.lives-list{border-radius:18px;background:rgba(24,21,18,.95);border:1px solid var(--border-subtle);padding:12px;max-height:72vh;overflow:auto}
.lives-list input{width:100%;border-radius:10px;border:1px solid var(--border-subtle);background:#0e0c0a;color:var(--tx1);padding:9px 12px;margin-bottom:8px}
.lives-list ul{list-style:none;padding:0;margin:0}.lives-list button{width:100%;text-align:left;background:transparent;border:0;border-radius:10px;padding:8px 10px;color:var(--tx1);display:grid}.lives-list button:hover{background:#ffffff0a}.lives-list button small{color:var(--tx3)}.lives-list button.dead b{color:var(--tx2)}
.lives-detail{border-radius:18px;background:rgba(24,21,18,.95);border:1px solid var(--border-subtle);padding:18px}.lives-detail h2{font:700 26px var(--serif);margin-bottom:12px}.lives-detail h2 small{font:400 13px var(--sans2);color:var(--tx3)}
.life-events{list-style:none;padding:0;margin:12px 0 0;display:grid;gap:2px}.life-events li{display:grid;grid-template-columns:90px 1fr auto;gap:12px;align-items:center;padding:7px 0;border-bottom:1px solid var(--border-subtle);font-size:12.5px}.life-events time{color:var(--tx3);font-size:11px}
/* mobile tab bar */
.tabbar{display:none}
@media (max-width:1100px){.obs-nav button b{display:none}.obs-nav button{padding:7px 11px!important}.si-ranks{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:900px){.si-grid{grid-template-columns:1fr}.si-card.span2,.si-card.span3{grid-column:auto}.lives{grid-template-columns:1fr}}
@media (max-width:760px){
  .obs-nav{display:none}
  .tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:40;background:rgba(16,14,12,.96);border-top:1px solid var(--border-subtle);padding:4px 6px calc(4px + env(safe-area-inset-bottom));backdrop-filter:blur(12px)}
  .tabbar button{flex:1;display:grid;justify-items:center;gap:2px;border:0;background:transparent;color:var(--tx3);padding:6px 0;min-height:52px;font-family:var(--sans2)}
  .tabbar button small{font-size:10.5px;color:inherit}.tabbar button.on{color:var(--tx1)}.tabbar button.on .ico{color:var(--acc-world)}
  .obs-bottom{bottom:66px!important}
  body.has-panel .obs-panel{bottom:60px!important;max-height:52vh!important}
  .obs-panel{touch-action:pan-y;overscroll-behavior:contain}
  .follow-chip{top:112px}
  .net-panel{left:8px;right:8px;width:auto;top:auto;bottom:64px;max-height:46vh}
  .obs-rail{top:112px}
  .pages{padding:130px 12px 90px}
  .page-head h1{font-size:26px}.subnav{top:110px;overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none}.subnav button{white-space:nowrap}
  .si-ranks{grid-template-columns:1fr}.si-two{grid-template-columns:1fr}
  .si-events li,.life-events li{grid-template-columns:70px 1fr}.si-events li .mini,.life-events li .mini{grid-column:2;justify-self:start}
}
.p-mem p.muted{display:block}
.si-dl dd{text-align:left}

/* V1.2.1: one Layers popover replaces the icon column */
.obs-rail{top:96px}.obs-rail .rail-body{display:flex!important}
.rail-body #layers-btn.changed{background:#e8a04a33!important;color:var(--acc-world)}
.layers-pop{position:absolute;left:80px;top:96px;width:300px;max-height:calc(100% - 220px);overflow:auto;padding:14px 16px;border-radius:18px;background:rgba(20,18,16,.95);border:1px solid var(--border-subtle);backdrop-filter:blur(12px);z-index:6;font-size:12px;color:var(--tx2);display:grid;gap:8px;font-family:var(--sans2)}
.layers-pop[hidden]{display:none}
.lp-head{display:flex;align-items:center;justify-content:space-between}.lp-head b{font:700 15px var(--serif);color:var(--tx1)}
.lp-note{color:var(--tx3);font-size:11px;line-height:1.5;margin:0}
.lp-row{display:grid;grid-template-columns:20px 1fr;gap:10px;align-items:start;padding:6px 4px;cursor:pointer;min-height:44px}
.lp-row input{margin-top:2px;width:16px;height:16px;accent-color:var(--acc-world)}.lp-row b{display:block;color:var(--tx1);font-weight:600;font-size:13px}.lp-row small{color:var(--tx3);font-size:11px;line-height:1.4}
.lp-slider{display:grid;grid-template-columns:1fr auto;gap:2px 8px;padding:0 4px 4px 34px;color:var(--tx3);font-size:11px}.lp-slider input{grid-column:1/-1;width:100%;accent-color:var(--acc-world)}.lp-slider input:disabled{opacity:.35}.lp-slider output{color:var(--tx2)}
.lp-levels small{color:var(--tx3);display:block;margin-bottom:4px}.lp-levels .seg button{padding:5px 2px!important;font-size:11px}
.layers-pop button.wide{border-radius:12px!important;padding:10px!important;border:1px solid var(--border-subtle)!important;background:transparent!important;color:var(--tx1);min-height:44px}
.layer-chip{position:absolute;left:80px;bottom:150px;display:flex;align-items:center;gap:10px;padding:6px 6px 6px 14px;border-radius:999px;background:rgba(20,18,16,.92);border:1px solid #e8a04a66;color:var(--tx1);font-size:12px;z-index:4;max-width:calc(100% - 520px)}
.layer-chip button{border-radius:999px!important;padding:4px 12px!important;border:0!important;background:var(--acc-world)!important;color:#1a1208!important;font-weight:700;font-size:12px;white-space:nowrap}
/* Chronicle: era headings scroll with the list (they used to stick under the fixed bar and cover rows) */
.events li.era{position:static!important;top:auto!important;z-index:auto!important;margin-top:6px;background:transparent!important;padding:20px 4px 8px}
.events li.era:first-child{margin-top:0}
@media (max-width:760px){.layers-pop{left:8px;right:8px;width:auto;top:auto;bottom:70px;max-height:60vh}.layer-chip{left:8px;right:8px;bottom:132px;max-width:none;justify-content:space-between}.obs-rail{top:112px}}

.lang-seg{display:flex;padding:3px;border-radius:999px;background:var(--bg-panel);border:1px solid var(--border-subtle);backdrop-filter:blur(10px)}
.lang-seg button{border:0!important;background:transparent!important;color:var(--tx2);padding:6px 11px!important;border-radius:999px!important;font-size:12.5px;min-height:34px;min-width:44px;font-family:var(--sans2)}
.lang-seg button[aria-pressed=true]{background:var(--tx1)!important;color:#1a1612;font-weight:700}
@media (max-width:760px){.lang-seg button{padding:5px 8px!important;min-width:38px;font-size:12px}.obs-right{gap:5px}}

@media (max-width:760px){
  /* relation filters sit above the resident drawer instead of covering it */
  .net-panel{max-height:30vh;bottom:70px}
  body.has-panel .net-panel{bottom:calc(60px + 52vh + 8px)}
  body.has-panel .layers-pop{max-height:40vh}
}

/* V1.2.1: tablet widths use the two-row top bar so nothing is clipped in English */
@media (min-width:761px) and (max-width:1000px){
  .obs-top{grid-template-columns:1fr auto;padding:10px 14px 18px;gap:8px}
  .obs-world select{max-width:150px}
  .obs-capsule{grid-column:1/-1;grid-row:2;justify-self:stretch;justify-content:space-between}
  .obs-right{grid-row:1;grid-column:2}
  .obs-rail,.layers-pop,.net-panel,.follow-chip{top:124px}
  .obs-panel{top:124px;max-height:calc(100% - 124px - 140px)}
  .obs-banner{top:122px;max-width:calc(100% - 420px)}
  .pages{padding-top:132px}.subnav{top:112px}
}
/* very narrow phones: the capsule keeps its button visible by dropping the decorations first */
@media (max-width:760px){
  .obs-capsule{min-width:0}.cap-time{min-width:0;overflow:hidden;text-overflow:ellipsis}.cap-btn{flex-shrink:0}
}
@media (max-width:420px){.cap-light,.cap-interp{display:none}.obs-capsule{gap:6px;font-size:11.5px}.cap-state b{font-size:11.5px}}

/* V1.2.1: top-bar labels never wrap; the right group keeps its natural width */
.obs-nav button,.obs-nav button b,.lang-seg button,.cap-btn,.cap-state b,.cap-time{white-space:nowrap}
.obs-nav button,.lang-seg,.lang-seg button,.obs-icon{flex-shrink:0}
@media (min-width:1001px){.obs-top{grid-template-columns:minmax(0,1fr) auto minmax(max-content,1fr)}}
@media (min-width:1001px) and (max-width:1320px){.obs-nav button b{display:none}.obs-nav button{padding:7px 12px!important}.obs-sub{display:none}}

/* ---- v1/orbit.css ---- */
/* Visual V1.3: orbit entry, descent, scale path and home close-up. Same tokens as observer.css. */
.orbit{position:fixed;inset:0;z-index:4;color:var(--tx1);font-family:var(--sans2);overflow:hidden;background:#05060a;outline:none}
.orbit[hidden]{display:none}
.orbit.fade{background:transparent;pointer-events:none}
#orbit-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;cursor:grab}
.orbit-fallback{position:absolute;inset:0;background:radial-gradient(circle at 62% 50%,#2a6a9a 0,#1d4e74 17%,#0d2236 27%,#05060a 28.5%),#05060a}
.orbit-fallback::after{content:'';position:absolute;left:calc(62% - 2px);top:calc(50% - 2px);width:4px;height:4px;border-radius:50%;background:#ffcf80;box-shadow:0 0 18px 8px #ffb04a88}
.orbit-link{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.orbit-link path{fill:none;stroke:#f0c27a;stroke-width:1.6;stroke-linecap:round;filter:drop-shadow(0 0 4px #f0a84acc);opacity:.85}
.orbit-target{position:absolute;left:0;top:0;width:0;height:0;padding:0!important;border:0!important;background:transparent!important;z-index:2;cursor:pointer}
.orbit-target[hidden]{display:none}
.orbit-target i{position:absolute;left:-26px;top:-26px;width:52px;height:52px;border-radius:50%;background:radial-gradient(circle,#fff6df 0 3px,#ffc56acc 4px,#ffb04a33 9px,transparent 13px)}
.orbit-target i::before{content:'';position:absolute;inset:-6px;border:1.5px solid #ffd79acc;border-radius:50%;animation:orbitPulse 2.4s var(--ease) infinite}
.orbit-target i::after{content:'';position:absolute;inset:-14px;background:linear-gradient(#f3ebdd,#f3ebdd) 0 0/10px 1.5px no-repeat,linear-gradient(#f3ebdd,#f3ebdd) 0 0/1.5px 10px no-repeat,linear-gradient(#f3ebdd,#f3ebdd) 100% 0/10px 1.5px no-repeat,linear-gradient(#f3ebdd,#f3ebdd) 100% 0/1.5px 10px no-repeat,linear-gradient(#f3ebdd,#f3ebdd) 0 100%/10px 1.5px no-repeat,linear-gradient(#f3ebdd,#f3ebdd) 0 100%/1.5px 10px no-repeat,linear-gradient(#f3ebdd,#f3ebdd) 100% 100%/10px 1.5px no-repeat,linear-gradient(#f3ebdd,#f3ebdd) 100% 100%/1.5px 10px no-repeat;opacity:.8}
.orbit-target:focus-visible i{outline:2px solid var(--acc-world);outline-offset:14px}
@keyframes orbitPulse{0%{transform:scale(.7);opacity:.95}100%{transform:scale(1.6);opacity:0}}

.orbit-body{position:absolute;inset:0;pointer-events:none}
.orbit-body>*{pointer-events:auto}
.orbit-intro{position:absolute;left:clamp(20px,3.6vw,64px);top:112px;width:min(452px,34vw);max-height:calc(100% - 230px);overflow:auto;padding:32px 34px 28px;border-radius:24px;background:rgba(14,12,10,.62);border:1px solid rgba(232,190,120,.3);backdrop-filter:blur(14px);box-shadow:0 20px 60px #0009,inset 0 0 0 1px rgba(255,240,210,.03);scrollbar-width:thin;transition:opacity .5s var(--ease),transform .5s var(--ease)}
.orbit-eyebrow{display:flex;align-items:center;gap:14px;margin:0 0 18px;color:#e8b46a;font:600 12.5px/1 var(--sans2);letter-spacing:.34em}
.orbit-eyebrow::after{content:'';width:56px;height:1px;background:#e8b46a99}
.orbit-intro h1{margin:0;font:600 clamp(27px,2.55vw,40px)/1.2 var(--serif);color:#f7efe0;letter-spacing:-.2px}
.orbit-tag{margin:10px 0 18px;font:italic 400 clamp(17px,1.4vw,21px)/1.4 var(--serif);color:#ecca92}
.orbit-desc{margin:0 0 24px;color:var(--tx2);font-size:14.5px;line-height:1.72}
.orbit-cta,.orbit-cta2{display:flex;align-items:center;justify-content:space-between;width:100%;border-radius:999px!important;font-family:var(--serif);cursor:pointer}
.orbit-cta{min-height:60px;padding:0 28px!important;border:0!important;background:linear-gradient(180deg,#fbf2df,#ead3a6)!important;color:#1a1208!important;font-size:19px;font-weight:700;box-shadow:0 0 0 1px #fff6,0 10px 34px #e8a04a40}
.orbit-cta i{font-style:normal;font-size:22px;transition:transform .2s var(--ease)}
.orbit-cta:hover i{transform:translateX(4px)}
.orbit-cta2{margin-top:12px;min-height:52px;padding:0 26px!important;gap:12px;justify-content:center;border:1px solid rgba(243,235,221,.5)!important;background:rgba(10,9,8,.3)!important;color:var(--tx1)!important;font-size:17px}
.orbit-cta2 i{font-style:normal;font-size:14px}
.orbit-cta:focus-visible,.orbit-cta2:focus-visible{outline:2px solid var(--acc-world);outline-offset:3px}
.orbit-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:24px;border:1px solid var(--border-subtle);border-radius:16px;background:rgba(255,255,255,.025)}
.orbit-stats>div{display:grid;justify-items:center;gap:5px;padding:14px 6px 12px;text-align:center;color:#e8b46a}
.orbit-stats>div+div{border-left:1px solid var(--border-subtle)}
.orbit-stats b{font:600 22px/1.15 var(--serif);color:var(--tx1)}
.orbit-stats>div:last-child b{font:700 13px/1.35 var(--sans2)}
.orbit-stats small{color:var(--tx2);font-size:11.5px}

.orbit-card{position:absolute;right:clamp(16px,3vw,48px);top:27%;width:min(384px,27vw);padding:14px 16px 16px;border-radius:20px;background:rgba(14,12,10,.7);border:1px solid rgba(232,190,120,.36);backdrop-filter:blur(14px);box-shadow:0 20px 60px #0009;transition:opacity .5s var(--ease),transform .5s var(--ease)}
.orbit-card header{display:flex;align-items:flex-start;gap:10px;margin-bottom:12px;color:#e8b46a}
.orbit-card header>div{flex:1;min-width:0}
.orbit-card header b{display:block;font:600 20px/1.2 var(--serif);color:var(--tx1)}
.orbit-card header small{display:block;color:var(--tx3);font-size:11.5px;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.orbit-card header button{width:36px;height:36px;border-radius:50%!important;border:1px solid var(--border-subtle)!important;background:rgba(255,255,255,.04)!important;color:var(--tx1);display:grid;place-items:center;padding:0!important;cursor:pointer}
#orbit-preview{display:block;width:100%;aspect-ratio:16/9;border-radius:12px;background:#1b1814;border:1px solid rgba(255,255,255,.06)}
.orbit-card-kicker{margin:12px 0 2px;color:#e8b46a;font-size:11px;letter-spacing:.14em;text-transform:uppercase}
#orbit-region-desc{margin:0;color:var(--tx2);font-size:12.5px;line-height:1.55}
.orbit-card-note{margin:8px 0 0;color:var(--tx3);font-size:12px;line-height:1.55}

.orbit-stages{position:absolute;left:50%;bottom:26px;translate:-50% 0;display:flex;align-items:center;gap:0;margin:0;padding:0;list-style:none;transition:opacity .5s var(--ease)}
.orbit-stages li{display:grid;justify-items:center;gap:8px;width:170px;color:var(--tx2);font-size:14px;position:relative}
.orbit-stages li b{font-weight:600;white-space:nowrap}
.orbit-stages li+li::before{content:'';position:absolute;top:13px;right:calc(50% + 34px);width:calc(100% - 68px);height:1px;background:linear-gradient(90deg,#f3ebdd33,#f3ebdd99)}
.orbit-stages li+li::after{content:'';position:absolute;top:10px;right:calc(50% + 32px);border:3.5px solid transparent;border-left:6px solid #f3ebdd99}
.orbit-stages li.on{color:#f0b96a}.orbit-stages li.on span{filter:drop-shadow(0 0 8px #f0a84a)}
.orbit-stages li.done{color:var(--tx1)}
.orbit-note{position:absolute;right:20px;bottom:18px;max-width:340px;margin:0;padding:10px 14px;border-radius:14px;background:rgba(14,12,10,.6);border:1px solid var(--border-subtle);backdrop-filter:blur(10px);color:var(--tx3);font-size:11.5px;line-height:1.55;transition:opacity .5s var(--ease)}
.orbit-note .linkish{color:#e8b46a}

/* during the descent only the stage path stays; while the veil thins over the map nothing remains */
.orbit.flying .orbit-intro,.orbit.flying .orbit-card,.orbit.flying .orbit-note{opacity:0;transform:translateY(10px);pointer-events:none}
.orbit.flying .orbit-target,.orbit.flying .orbit-link{display:none}
.orbit.fade .orbit-stages{opacity:0}
body.orbit-on #cap-history{display:none}
body.orbit-on .tabbar{background:rgba(8,8,10,.9)}

@media (min-width:761px) and (max-width:1000px){
  .orbit-intro{top:132px;width:min(380px,44vw);padding:24px 24px 20px}
  .orbit-card{top:auto;bottom:110px;width:min(300px,36vw)}
  .orbit-stages li{width:132px;font-size:12.5px}
  .orbit-note{display:none}
}
@media (max-width:760px){
  .orbit{overflow-y:auto;overscroll-behavior:contain}
  #orbit-canvas{position:fixed}
  .orbit-link{display:none}
  .orbit-body{position:relative;inset:auto;padding:46vh 10px 0;display:grid;gap:12px}
  .orbit-intro,.orbit-card{position:static;width:auto;max-height:none;padding:20px 18px}
  .orbit-intro h1{font-size:25px}
  .orbit-tag{font-size:16px;margin:8px 0 12px}
  .orbit-desc{font-size:13.5px;margin-bottom:16px}
  .orbit-cta{min-height:54px;font-size:17px}.orbit-cta2{min-height:48px;font-size:15px}
  .orbit-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .orbit-stats>div:nth-child(3){border-left:0}.orbit-stats>div:nth-child(n+3){border-top:1px solid var(--border-subtle)}
  .orbit-stages{position:relative;left:auto;bottom:auto;translate:none;justify-content:center;margin:16px 0 8px}
  .orbit-stages li{width:33%;font-size:11.5px}.orbit-stages li b{white-space:normal;text-align:center}
  .orbit-stages li+li::before{right:calc(50% + 22px);width:calc(100% - 44px)}.orbit-stages li+li::after{right:calc(50% + 20px)}
  .orbit-note{position:static;max-width:none;margin:0 10px calc(84px + env(safe-area-inset-bottom))}
  .orbit.flying .orbit-body,.orbit.flying .orbit-note{display:none}
  .orbit.flying .orbit-stages{position:fixed;left:0;right:0;bottom:84px}
}

/* scale path on the map: orbit › world › settlement › home */
.scale-crumb{position:absolute;left:84px;top:100px;display:flex;align-items:center;gap:2px;padding:4px;border-radius:999px;background:rgba(20,18,16,.78);border:1px solid var(--border-subtle);backdrop-filter:blur(10px);z-index:3;font-size:12px;max-width:calc(100% - 480px)}
.scale-crumb:empty{display:none}
.scale-crumb>i{color:var(--tx3);font-style:normal;padding:0 1px}
.scale-crumb button{display:flex;align-items:center;gap:5px;min-height:30px;padding:4px 10px!important;border-radius:999px!important;border:0!important;background:transparent!important;color:var(--tx2);white-space:nowrap;cursor:pointer;font-family:var(--sans2);overflow:hidden;text-overflow:ellipsis}
.scale-crumb button:hover{color:var(--tx1)}
.scale-crumb button.on{background:rgba(232,160,74,.18)!important;color:#f0b96a;font-weight:700}
body.orbit-on .scale-crumb{display:none}
@media (min-width:761px) and (max-width:1000px){.scale-crumb{top:128px;max-width:calc(100% - 120px)}}
@media (max-width:760px){.scale-crumb{left:70px;top:116px;max-width:calc(100% - 80px);overflow-x:auto;font-size:11px}.scale-crumb button{padding:3px 7px!important;min-height:28px}}

/* home close-up */
.home-banner{position:absolute;top:148px;left:84px;width:max-content;max-width:min(520px,calc(100% - 480px));padding:10px 16px 10px;border-radius:16px;background:rgba(20,18,16,.92);border:1px solid #e8a04a55;color:var(--tx1);font-size:12.5px;z-index:4;box-shadow:0 10px 30px #0007;backdrop-filter:blur(12px)}
.home-banner[hidden]{display:none}
.hb-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.hb-icon{color:var(--acc-world);display:grid}
.hb-row b{font:600 15px var(--serif)}
.hb-now{color:var(--tx2)}
.hb-row button{margin-left:auto;border-radius:999px!important;padding:5px 14px!important;border:0!important;background:var(--acc-world)!important;color:#1a1208!important;font-weight:700;font-size:12px;cursor:pointer}
.home-banner small{display:block;margin-top:6px;color:var(--tx3);font-size:11px;line-height:1.5;max-width:700px}

.obs-panel .p-actions button.home{border-color:#e8a04a66!important;color:#f0b96a}
.obs-panel .p-actions button.home.on{background:#e8a04a26!important;color:#f0b96a!important}
@media (min-width:761px) and (max-width:1000px){.home-banner{top:172px;left:84px;max-width:calc(100% - 120px)}}
@media (max-width:760px){.home-banner{top:156px;left:8px;right:8px;translate:none;width:auto;max-width:none;padding:8px 12px}body.has-panel .home-banner{left:8px}.home-banner small{display:none}}
@media (prefers-reduced-motion:reduce){.orbit-target i::before{animation:none}.orbit-intro,.orbit-card,.orbit-stages,.orbit-note{transition:none}}
