/* CORE World — Living Earth (V7). Floating, contextual interfaces over a full-bleed Earth. */
body.earth { overflow: hidden; }
body.earth #map { inset: 0; }
body.earth .bar { background: linear-gradient(180deg, rgba(4, 9, 18, .78), rgba(4, 9, 18, 0)); border-bottom: 0; backdrop-filter: none; -webkit-backdrop-filter: none; }
.maplibregl-ctrl-attrib { background: rgba(4, 9, 18, .55) !important; color: var(--le-text-3); font: 11px var(--le-font); border-radius: 10px !important; }
.maplibregl-ctrl-attrib a { color: var(--le-text-2); }
.maplibregl-ctrl-group { background: var(--le-glass-strong) !important; border-radius: 14px !important; border: 1px solid var(--le-hairline); box-shadow: var(--le-shadow) !important; overflow: hidden; }
.maplibregl-ctrl-group button { background: transparent; border-radius: 0; min-height: 36px; width: 36px; height: 36px; }
.maplibregl-ctrl-group button .maplibregl-ctrl-icon { filter: invert(1) brightness(1.4); }
.maplibregl-ctrl-group button + button { border-top: 1px solid var(--le-hairline) !important; }
.maplibregl-ctrl-bottom-right { bottom: 84px; right: 6px; }

/* ---------- Hero (first 60 seconds) ---------- */
.ea-hero { position: fixed; z-index: 14; left: clamp(20px, 6vw, 96px); top: 50%; transform: translateY(-46%); max-width: 640px; display: grid; gap: 22px; transition: opacity var(--le-slow) var(--le-ease), transform var(--le-slow) var(--le-ease); }
.ea-vignette { position: fixed; z-index: 1; inset: 0; background: radial-gradient(1200px 1000px at 0% 50%, rgba(4, 9, 18, .78), rgba(4, 9, 18, .3) 55%, transparent 75%); pointer-events: none; transition: opacity var(--le-slow) var(--le-ease); }
.ea-vignette.out { opacity: 0; }
/* Planet scale: a quiet starfield behind the globe (CSS only). */
body.earth { background: radial-gradient(1px 1px at 12% 18%, #ffffffaa, transparent), radial-gradient(1px 1px at 72% 12%, #ffffff88, transparent), radial-gradient(1.5px 1.5px at 86% 64%, #ffffffaa, transparent), radial-gradient(1px 1px at 33% 82%, #ffffff77, transparent), radial-gradient(1px 1px at 55% 40%, #ffffff55, transparent), radial-gradient(1px 1px at 92% 30%, #ffffff66, transparent), radial-gradient(1px 1px at 6% 66%, #ffffff66, transparent), radial-gradient(1.5px 1.5px at 44% 8%, #ffffff88, transparent), radial-gradient(900px 700px at 70% 50%, #0b2342 0%, transparent 70%), var(--le-ink-950); }
.ea-hero .le-display span { color: var(--le-cyan); }
.ea-hero .le-row { gap: 12px; }
.ea-hero .primary { padding: 14px 26px; font-size: 15.5px; }
.ea-hero.out { opacity: 0; transform: translateY(-40%); pointer-events: none; }
.ea-howto { max-width: 520px; background: var(--le-glass); border: 1px solid var(--le-hairline); border-radius: var(--le-r); padding: 16px; backdrop-filter: var(--le-blur); }
.ea-hero-note { margin: 0; }

/* ---------- Scale stepper ---------- */
.ea-scales { position: fixed; z-index: 11; left: 16px; top: 50%; transform: translateY(-50%); display: grid; gap: 2px; padding: 6px; border-radius: 20px; }
.ea-scales button { flex-direction: column; gap: 3px; width: 70px; min-height: 58px; padding: 6px 4px; font-size: 11.5px; border-radius: 14px; border: 0; background: transparent; color: var(--le-text-3); }
.ea-scales button:hover { color: var(--le-text); background: rgba(255, 255, 255, .06); }
.ea-scales button[aria-pressed="true"] { color: #0b1426; background: var(--le-sand-50); }
.ea-cities { position: fixed; z-index: 17; left: 104px; top: calc(var(--navh) + 152px); width: 260px; max-height: min(65dvh, 610px); overflow: auto; padding: 10px; border-radius: 18px; }
.ea-cities summary { cursor: pointer; color: var(--le-cyan); font-size: 13px; font-weight: 650; letter-spacing: .08em; text-transform: uppercase; padding: 5px 7px; }
.ea-cities[open] summary { margin-bottom: 8px; }
#ea-city-list { display: grid; gap: 4px; }
#ea-city-list button { width: 100%; padding: 8px 10px; border: 1px solid transparent; border-radius: 12px; background: transparent; color: var(--le-text); text-align: left; display: flex; align-items: center; justify-content: space-between; gap: 8px; }
#ea-city-list button:hover, #ea-city-list button[aria-current="location"] { background: rgba(95, 212, 255, .1); border-color: rgba(95, 212, 255, .35); }
#ea-city-list b, #ea-city-list small { display: block; } #ea-city-list b { font-size: 13px; } #ea-city-list small { color: var(--le-text-3); font-size: 11px; }
#ea-city-list em { color: var(--le-text-3); font: 10px var(--le-font); text-align: right; } #ea-city-list em[data-ready="operational"] { color: var(--le-cyan); } #ea-city-list em[data-ready="exploratory"] { color: var(--le-sand-50); }
#ea-city-list .ea-city-return { color: var(--le-cyan); justify-content: flex-start; font-size: 12px; }
.ea-evidence { margin-top: 8px; border-top: 1px solid var(--le-hairline); padding-top: 6px; }
.ea-evidence summary { font-size: 11px; color: var(--le-text-2); }
#ea-evidence-list { display: grid; gap: 8px; padding: 4px 6px 8px; }
.ea-evidence-row { display: grid; gap: 2px; font-size: 11px; line-height: 1.35; color: var(--le-text-3); }
.ea-evidence-row label { display: flex; align-items: center; gap: 7px; color: var(--le-text); font-size: 12px; font-weight: 600; }
.ea-evidence-row input { width: 15px; height: 15px; margin: 0; flex: none; }
.ea-evidence-row[data-available="false"] { opacity: .65; }
#ea-evidence-reset { width: 100%; justify-content: center; margin-top: 6px; }
.ea-city-pin { display: flex; align-items: center; gap: 7px; padding: 5px 8px; border: 1px solid rgba(95, 212, 255, .4); border-radius: 30px; background: rgba(4, 18, 34, .88); color: #d5f5ff; box-shadow: 0 0 22px rgba(58, 191, 249, .18); cursor: pointer; }
.ea-city-pin[hidden] { display: none; }
.ea-city-pin span { width: 7px; height: 7px; border-radius: 50%; background: #6bdfff; box-shadow: 0 0 10px #6bdfff; } .ea-city-pin[data-ready="unavailable"] { opacity: .75; } .ea-city-pin[data-ready="unavailable"] span { background: #7494a4; box-shadow: none; }
.ea-city-pin b { font: 11px var(--le-font); white-space: nowrap; } .ea-city-pin:hover, .ea-city-pin:focus-visible { border-color: #9cecff; background: #08243a; }

/* ---------- Search and list ---------- */
.ea-tools { position: fixed; z-index: 11; top: calc(var(--navh) + 6px); left: 50%; transform: translateX(-50%); display: flex; gap: 8px; width: min(560px, calc(100vw - 32px)); }
.ea-search { flex: 1; border-radius: var(--le-r-pill); padding: 4px; }
.ea-search input { width: 100%; border: 0; background: transparent; border-radius: var(--le-r-pill); padding: 9px 16px; }
.ea-search input:focus { box-shadow: none; background: rgba(255, 255, 255, .05); }
.ea-ic { border-radius: var(--le-r-pill); padding: 0 18px; }
.ea-list { position: fixed; z-index: 13; left: 104px; top: calc(var(--navh) + 64px); bottom: 24px; width: min(400px, calc(100vw - 32px)); padding: 16px; display: flex; flex-direction: column; gap: 8px; }
.ea-list header { display: flex; justify-content: space-between; align-items: center; } .ea-list h2 { margin: 0; font-size: 17px; }
.ea-list ul { list-style: none; margin: 0; padding: 0; overflow: auto; display: grid; gap: 6px; }
.ea-list li button { width: 100%; justify-content: flex-start; text-align: left; border-radius: 14px; padding: 10px 12px; gap: 12px; align-items: flex-start; }
.ea-list li button b { font-weight: 550; font-size: 13.5px; }

/* ---------- Problem panel ---------- */
.ea-panel { position: fixed; z-index: 13; right: 16px; top: calc(var(--navh) + 8px); bottom: 16px; width: min(460px, calc(100vw - 32px)); padding: 26px 26px 20px; overflow-y: auto; display: grid; gap: 18px; align-content: start; }
.ea-close { position: absolute; right: 12px; top: 12px; }
.pp-head { display: grid; gap: 10px; } .pp-head h2 { margin: 0; font: 600 25px/1.18 var(--le-font); letter-spacing: -.025em; padding-right: 24px; }
.pp-place { margin: 0; color: var(--le-text-2); font-size: 14px; display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.pp-lede { margin: 0; color: var(--le-text-2); font-size: 15px; }
.pp-unc { border-left: 2px solid var(--le-risk); padding: 2px 0 2px 14px; } .pp-unc b { display: inline-flex; gap: 6px; align-items: center; font-weight: 600; } .pp-unc p { margin: 6px 0 0; color: var(--le-text-2); font-size: 14px; }
.pp-sec h3 { margin: 0 0 10px; font: 600 12px var(--le-font); letter-spacing: .14em; text-transform: uppercase; color: var(--le-text-3); }
.pp-sec p { margin: 0; font-size: 14px; }
.pp-actions { display: grid; grid-template-columns: 1fr 1.2fr 1fr; gap: 8px; position: sticky; bottom: -20px; padding: 12px 0 4px; background: linear-gradient(180deg, transparent, var(--le-ink-900) 30%); }
.pp-actions .btn { padding: 10px 8px; font-size: 13.5px; }
.pp-adv summary { cursor: pointer; color: var(--le-text-3); font-size: 13px; } .pp-adv .kv { margin-top: 10px; font-size: 12.5px; }
.pp-others { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; } .pp-others button { justify-content: flex-start; text-align: left; width: 100%; font-size: 13px; }
.ea-human { display: flex; gap: 12px; align-items: center; justify-content: space-between; border-top: 1px solid var(--le-hairline); padding-top: 14px; }
.ea-human button { background: var(--le-cyan); color: #04121c; border: 0; font-weight: 600; }

/* ---------- Human-scale HUD ---------- */
.ea-hud-l { position: fixed; z-index: 11; left: 104px; bottom: 20px; display: flex; gap: 14px; align-items: center; padding: 8px 16px 8px 8px; border-radius: var(--le-r-pill); max-width: calc(100vw - 140px); }
.ea-hud-c { position: fixed; z-index: 11; left: 50%; transform: translateX(-50%); bottom: 20px; display: flex; gap: 6px; align-items: center; padding: 6px; border-radius: var(--le-r-pill); }
.ea-hud-c label { display: flex; gap: 6px; align-items: center; padding: 0 8px; } .ea-hud-c select { padding: 4px 8px; border-radius: 10px; }
.ea-joy { display: none; position: fixed; z-index: 12; left: 24px; bottom: 96px; width: 110px; height: 110px; border-radius: 50%; background: rgba(255, 255, 255, .08); border: 1px solid var(--le-hairline-2); touch-action: none; }
.ea-joy i { position: absolute; left: 35px; top: 35px; width: 40px; height: 40px; border-radius: 50%; background: var(--le-sand-50); }
@media (pointer: coarse) { .ea-joy { display: block; } }

/* ---------- Legend and "what you see" ---------- */
.ea-legend { position: fixed; z-index: 10; left: 104px; bottom: 20px; display: flex; gap: 14px; align-items: center; padding: 6px 8px 6px 16px; border-radius: var(--le-r-pill); font-size: 12.5px; color: var(--le-text-2); }
.ea-legend span { display: inline-flex; align-items: center; gap: 6px; } .ea-legend i { width: 9px; height: 9px; border-radius: 50%; background: var(--c); box-shadow: 0 0 10px var(--c); }
.ea-hud:not([hidden]) ~ .ea-legend { display: none; }
.ea-about { position: fixed; z-index: 13; left: 104px; bottom: 72px; width: min(440px, calc(100vw - 32px)); padding: 18px 20px; font-size: 13.5px; }
.ea-about h2 { margin: 0 0 8px; font-size: 16px; } .ea-about ul { margin: 0; padding-left: 18px; display: grid; gap: 6px; color: var(--le-text-2); }
.fatal { position: fixed; z-index: 30; left: 50%; top: 40%; transform: translateX(-50%); }

@media (max-width: 860px) {
  .ea-hero { left: 16px; right: 16px; top: auto; bottom: 96px; transform: none; gap: 14px; }
  .ea-hero .le-lede { font-size: 15px; } .ea-hero .le-display { font-size: 32px; }
  .ea-scales { left: 8px; top: auto; bottom: 86px; transform: none; display: flex; padding: 4px; } .ea-scales button { width: 56px; min-height: 48px; font-size: 10.5px; }
  .ea-tools { top: calc(var(--navh) + 4px); }
  .ea-cities { left: 8px; top: calc(var(--navh) + 176px); width: min(260px, calc(100vw - 16px)); max-height: 46dvh; }
  .ea-panel { left: 8px; right: 8px; width: auto; top: auto; bottom: 80px; max-height: 64dvh; padding: 22px 18px 16px; border-radius: 22px; }
  .ea-legend { display: none; } .ea-list { left: 8px; right: 8px; width: auto; bottom: 80px; }
  .ea-hud-l { left: 8px; bottom: 150px; } .ea-hud-c { bottom: 82px; flex-wrap: wrap; justify-content: center; width: calc(100vw - 16px); border-radius: 20px; }
  .maplibregl-ctrl-bottom-right { display: none; }
}
.ea-agent-tag { display: grid; gap: 2px; justify-items: center; padding: 6px 12px; border-radius: 12px; background: var(--le-glass-strong); border: 1px solid var(--le-cyan-line); font-size: 11.5px; color: var(--le-text-2); white-space: nowrap; pointer-events: none; }

/* ---------- V7.2: layers, civilisation panels ---------- */
.ea-layers { position: fixed; z-index: 11; left: 16px; top: calc(var(--navh) + 8px); display: flex; gap: 2px; padding: 4px; border-radius: var(--le-r-pill); }
.ea-layers button { border: 0; min-height: 30px; padding: 4px 14px; font-size: 13px; background: transparent; color: var(--le-text-2); }
.ea-layers [aria-checked="true"] { background: var(--le-sand-50); color: #0b1426; }
body[data-layer="parallel"] .ea-layers [data-layer="parallel"][aria-checked="true"] { background: var(--le-cyan); }
.ea-leg-agents { display: none !important; } body[data-layer="parallel"] .ea-leg-agents { display: inline-flex !important; }
.cv-feed { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; font-size: 13px; }
.cv-ev { padding: 8px 10px; border-radius: 12px; background: rgba(255, 255, 255, .03); border: 1px solid var(--le-hairline); cursor: pointer; }
.cv-ev:hover { border-color: var(--le-hairline-2); } .cv-ev.sys { background: transparent; border-style: dashed; }
.cv-ev .cv-txt { color: var(--le-text-2); }
.cv-type { font: 600 10.5px var(--le-mono); letter-spacing: .04em; padding: 1px 8px; border-radius: var(--le-r-pill); border: 1px solid currentColor; color: var(--le-ocean-300); }
.cv-type.t-challenge, .cv-type.t-escalate { color: var(--le-risk); } .cv-type.t-alternative { color: var(--le-hypothesis); } .cv-type.t-evidence, .cv-type.t-analysis { color: var(--le-observed); }
.cv-type.t-dossier-update, .cv-type.t-review { color: var(--le-ok); } .cv-type.t-human-input { color: var(--le-sand-200); }
.cv-stages { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.cv-stages li { font-size: 12px; padding: 3px 10px; border-radius: var(--le-r-pill); border: 1px solid var(--le-hairline); color: var(--le-text-3); }
.cv-stages li.done { color: #06231a; background: var(--le-ok); border-color: transparent; } .cv-stages li.now { color: var(--le-cyan); border-color: var(--le-cyan); }
.cv-findings { margin: 0; padding-left: 0; list-style: none; display: grid; gap: 10px; font-size: 14px; }
.cv-hyp { padding: 10px 12px; border-radius: 12px; border: 1px solid #b9a2ff44; background: #b9a2ff0d; margin-bottom: 8px; } .cv-hyp p { margin: 4px 0 0; font-size: 13.5px; }
.cv-missions { margin: 0; padding-left: 18px; display: grid; gap: 4px; font-size: 13.5px; }
.cv-ctl { margin-top: 6px; } .cv-ctl [aria-pressed="true"] { background: rgba(255, 255, 255, .12); }
button.ea-agent-tag { cursor: pointer; pointer-events: auto; font: inherit; min-height: 0; }
@media (max-width: 860px) { .ea-layers { left: 8px; top: calc(var(--navh) + 52px); } }
#ea-panel-body { display: grid; gap: 18px; align-content: start; }
.ea-layers .ea-sep { width: 1px; margin: 4px 4px; background: var(--le-hairline-2); }
.ea-layers #ea-activity-btn { border: 0; min-height: 30px; padding: 4px 14px; font-size: 13px; background: transparent; color: var(--le-cyan); }
button.ea-agent-tag { grid-auto-flow: column; display: inline-grid; gap: 8px; align-items: center; padding: 3px 10px; border-radius: var(--le-r-pill); font-size: 11px; }
button.ea-agent-tag .le-agent-id::before { width: 12px; height: 12px; }
.cv-tree { margin: 0; padding-left: 18px; display: grid; gap: 10px; font-size: 14px; } .cv-tree ul { margin: 6px 0 0; padding-left: 18px; display: grid; gap: 4px; font-size: 13px; }
.cv-teams { max-height: 320px; overflow: auto; }
/* V8 — scenario panel */
.scn-tabs { display: flex; gap: 6px; flex-wrap: wrap; margin: 12px 0; }
.scn-tabs button { min-width: 44px; } .scn-tabs button[aria-selected="true"] { border-color: var(--le-cyan); color: var(--le-cyan); }
.scn-table { overflow-x: auto; } .scn-table table { border-collapse: collapse; font-size: 13px; width: 100%; }
.scn-table th, .scn-table td { padding: 6px 6px; text-align: right; border-bottom: 1px solid rgba(147,165,189,.18); vertical-align: top; white-space: nowrap; }
.scn-table th:first-child { text-align: left; white-space: normal; } .scn-table .cur { background: rgba(98,216,242,.08); }
.scn-table .better { color: var(--le-cyan); } .scn-table .worse { color: #f0b45c; }
.ea-panel, #ea-panel-body { grid-template-columns: minmax(0, 1fr); }
#ea-panel-body .le-badge { white-space: normal; max-width: 100%; }
/* V8 — guided demo */
.demo { position: fixed; z-index: 40; left: 120px; bottom: 76px; width: min(620px, calc(100vw - 32px)); padding: 18px 22px; border-radius: 20px; }
.demo h2 { margin: 2px 0 6px; font-size: 21px; } .demo p { margin: 0 0 12px; color: var(--le-text-2); line-height: 1.5; } .demo .demo-last { font-size: 20px; color: var(--le-text); font-weight: 600; }
.demo-bar { height: 3px; background: rgba(255, 255, 255, .08); border-radius: 3px; margin: 0 0 12px; } .demo-bar i { display: block; height: 100%; background: var(--le-cyan); border-radius: 3px; transition: width .4s; }
@media (min-width: 861px) { .demo { width: min(560px, calc(100vw - 640px)); min-width: 340px; } }
@media (max-width: 860px) { .demo { left: 50%; transform: translateX(-50%); bottom: 84px; padding: 14px 16px; } .demo h2 { font-size: 18px; } }
/* ===== V9 — product completion ===== */
.ea-hero { max-width: 720px; }
.ea-hero .le-display { font-size: clamp(30px, 3.5vw, 50px); line-height: 1.06; }
.ea-ctas { flex-wrap: wrap; align-items: center; }
.ea-cta-demo { font-size: 16.5px !important; padding: 15px 30px !important; box-shadow: 0 0 0 1px rgba(98, 216, 242, .5), 0 10px 40px rgba(98, 216, 242, .25); }
.ea-vision { color: var(--le-cyan); text-decoration: none; font-size: 14.5px; padding: 8px 4px; } .ea-vision:hover { text-decoration: underline; }
.ea-flow { list-style: none; padding: 0; margin: 4px 0 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; counter-reset: f; }
.ea-flow li { counter-increment: f; position: relative; padding: 10px 10px 10px 12px; border-radius: 14px; background: rgba(8, 16, 30, .62); border: 1px solid var(--le-hairline); font-size: 12px; line-height: 1.35; color: var(--le-text-2); }
.ea-flow li b { display: block; color: var(--le-text); font-size: 12.5px; margin-bottom: 4px; } .ea-flow li b::before { content: counter(f) " · "; color: var(--le-cyan); font-family: var(--le-mono); }
.ea-flow li:nth-child(2) { border-color: rgba(98, 216, 242, .45); } .ea-flow li:nth-child(2) b { color: var(--le-cyan); }
@media (max-width: 1100px) { .ea-flow { grid-template-columns: repeat(2, minmax(0, 1fr)); } .ea-flow li:last-child { grid-column: 1 / -1; } }
@media (max-width: 860px) { .ea-hero { left: 16px; right: 16px; top: calc(var(--navh) + 16px); transform: none; max-width: none; gap: 14px; overflow-y: auto; max-height: calc(100dvh - var(--navh) - 110px); }
  .ea-hero .le-display { font-size: 30px; } .ea-flow li { font-size: 11.5px; padding: 8px; } .ea-ctas > * { flex: 1 1 auto; } }
/* layers */
.ea-layers .sm { display: none; } @media (max-width: 1100px) { .ea-layers .lg { display: none; } .ea-layers .sm { display: inline; } }
.ea-layer-help { min-width: 30px; border-radius: 50% !important; padding: 0 !important; color: var(--le-cyan) !important; }
.ea-layer-intro { position: fixed; z-index: 12; left: 16px; top: calc(var(--navh) + 56px); width: min(360px, calc(100vw - 32px)); padding: 14px 16px; border-radius: 16px; font-size: 13.5px; }
.ea-layer-intro p { margin: 6px 0 10px; color: var(--le-text-2); line-height: 1.5; }
@media (max-width: 860px) { .ea-layer-intro { top: calc(var(--navh) + 98px); left: 8px; } }
/* demo choice */
.ea-demo-choice { position: fixed; z-index: 45; left: 50%; top: 50%; transform: translate(-50%, -50%); width: min(720px, calc(100vw - 32px)); max-height: calc(100dvh - 40px); overflow-y: auto; padding: 26px; border-radius: 24px; display: grid; gap: 14px; }
.ea-demo-choice h2 { margin: 0; font-size: 24px; } .ea-dc-opts { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.ea-dc-opt { display: grid; gap: 8px; text-align: start; padding: 18px; border-radius: 18px; border: 1px solid var(--le-hairline-2); background: rgba(255, 255, 255, .03); color: var(--le-text-2); line-height: 1.45; font-size: 13.5px; cursor: pointer; }
.ea-dc-opt b { color: var(--le-text); font-size: 17px; } .ea-dc-opt:hover, .ea-dc-opt:focus-visible { border-color: var(--le-cyan); background: rgba(98, 216, 242, .07); }
@media (max-width: 700px) { .ea-dc-opts { grid-template-columns: 1fr; } }
/* panel: sizing and internal scrolling */
.ea-panel { width: min(480px, calc(100vw - 32px)); scrollbar-gutter: stable; }
/* R10 Gate D: keep the geographic context visible on desktop (panel ≤ ~28% of the width). */
@media (min-width: 861px) { .ea-panel { width: clamp(340px, 28vw, 420px); padding: 22px 20px 18px; gap: 14px; } }
.ea-panel .pp-actions { flex-wrap: wrap; gap: 8px; } .ea-panel .pp-actions > * { flex: 1 1 auto; text-align: center; }
/* mission workspace */
.cv-overview { display: grid; gap: 8px; } .cv-overview p { margin: 0; line-height: 1.5; } .cv-overview b { display: block; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--le-text-3); margin-bottom: 2px; }
.cv-q { font-size: 16px; color: var(--le-text); }
.cv-glance { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; }
.cv-glance li { display: grid; gap: 2px; padding: 8px; border-radius: 12px; border: 1px solid var(--le-hairline); font-size: 11.5px; color: var(--le-text-3); line-height: 1.25; } .cv-glance b { font-size: 18px; color: var(--le-text); font-weight: 600; }
@media (max-width: 520px) { .cv-glance { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.cv-now { list-style: none; padding: 0; display: grid; gap: 8px; font-size: 13.5px; } .cv-now li { padding-left: 10px; border-left: 2px solid var(--le-cyan); }
.cv-cat[data-cat="active"] { color: #04121c; background: var(--le-cyan); } .cv-cat[data-cat="exploratory"] { color: var(--le-hypothesis); border-color: currentColor; } .cv-cat[data-cat="demo"] { color: var(--le-simulated); border-color: currentColor; } .cv-cat[data-cat="planned"] { color: var(--le-text-3); border-color: currentColor; border-style: dashed; }
.cv-mlist { list-style: none; padding: 0; display: grid; gap: 8px; }
.cv-mbtn { display: grid; gap: 4px; width: 100%; text-align: start; padding: 12px 14px; border-radius: 14px; border: 1px solid var(--le-hairline-2); background: rgba(255, 255, 255, .02); color: var(--le-text); cursor: pointer; }
.cv-mbtn:hover, .cv-mbtn:focus-visible { border-color: var(--le-cyan); } .cv-mbtn .le-badge { justify-self: start; }
.cv-tasks { padding-left: 18px; display: grid; gap: 8px; font-size: 13px; } .cv-task[data-state="queued"] { opacity: .7; }
.cv-agent-work dd { margin-bottom: 8px; }
/* scenarios */
.scn-label { color: var(--le-risk) !important; }
.scn-cards { display: grid; gap: 8px; }
.scn-card { display: grid; gap: 4px; text-align: start; padding: 10px 12px; border-radius: 14px; border: 1px solid var(--le-hairline-2); background: rgba(255, 255, 255, .02); color: var(--le-text); cursor: pointer; }
.scn-card[aria-pressed="true"] { border-color: var(--le-cyan); background: rgba(98, 216, 242, .07); } .scn-card-h { display: flex; justify-content: space-between; gap: 8px; align-items: center; flex-wrap: wrap; }
.scn-card-t { font-size: 13.5px; color: var(--le-text-2); }
.scn-conclusion { font-size: 15px; color: var(--le-text); line-height: 1.55; padding: 10px 12px; border-radius: 12px; background: rgba(98, 216, 242, .06); border-left: 3px solid var(--le-cyan); }
.scn-charts { display: grid; gap: 10px; } .scn-chart { margin: 0; } .scn-chart figcaption { font-size: 12px; color: var(--le-text-3); margin-bottom: 4px; }
.scn-chart svg { width: 100%; height: auto; } .scn-chart rect { fill: rgba(98, 216, 242, .45); } .scn-chart .cur rect { fill: var(--le-cyan); } .scn-chart .wh { stroke: var(--le-text-2); stroke-width: 1.5; }
.scn-chart .ax { fill: var(--le-text-3); font: 11px var(--le-mono); } .scn-chart .val { fill: var(--le-text-2); font: 11px var(--le-font); }
/* investigation */
.inv-steps { list-style: none; padding: 0; display: grid; gap: 10px; }
.inv-step { padding: 10px 12px; border-radius: 12px; border: 1px solid var(--le-hairline); font-size: 13px; } .inv-step[data-status="rejected"], .inv-step[data-status="flagged"] { border-color: rgba(240, 180, 92, .6); } .inv-step[data-status="unavailable"] { opacity: .75; }
.inv-h { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; } .inv-b { margin-top: 6px; color: var(--le-text-2); line-height: 1.5; }
.inv-answer p:first-of-type { color: var(--le-text); line-height: 1.55; }
/* contribution */
.nt-confirm { padding: 12px 14px; border-radius: 14px; border: 1px solid rgba(240, 180, 92, .55); background: rgba(240, 180, 92, .06); display: grid; gap: 8px; font-size: 13.5px; }
.nt-ok { padding: 10px 12px; border-radius: 12px; border-left: 3px solid var(--le-cyan); background: rgba(98, 216, 242, .06); }
/* demo panel */
.demo { left: 120px; bottom: 76px; width: min(460px, calc(100vw - 32px)); max-height: calc(100dvh - var(--navh) - 110px); overflow-y: auto; padding: 16px 18px; }
@media (min-width: 861px) { .demo { width: min(460px, calc(100vw - 640px)); min-width: 330px; } }
.demo-top { display: flex; justify-content: space-between; align-items: center; } .demo-top .le-eyebrow { margin: 0; }
.demo h2 { font-size: 19px; } .demo-say { font-size: 14.5px; color: var(--le-text) !important; }
.demo-info { margin: 0 0 10px; font-size: 12.5px; } .demo-info summary { cursor: pointer; color: var(--le-cyan); } .demo-info dl { display: grid; grid-template-columns: max-content 1fr; gap: 4px 10px; margin: 8px 0 0; } .demo-info dt { color: var(--le-text-3); } .demo-info dd { margin: 0; color: var(--le-text-2); }
.demo-ctl { flex-wrap: wrap; gap: 6px; align-items: center; }
@media (max-width: 860px) { .demo { left: 8px; right: 8px; width: auto; transform: none; bottom: 84px; max-height: 46dvh; } .demo-info dl { grid-template-columns: 1fr; }
  .demo-ctl { position: sticky; bottom: -16px; margin: 0 -18px -16px; padding: 10px 18px 12px; background: rgba(6, 16, 30, .96); border-top: 1px solid rgba(140, 200, 255, .16); z-index: 1; } }
.scn-card { justify-items: stretch; } .scn-card > * { text-align: start; } .scn-card-h { width: 100%; }
.scn-card, .cv-mbtn { grid-template-columns: minmax(0, 1fr); justify-content: stretch; }
/* V9.2 hero statement and supporting line */
.ea-hero .ea-statement { font-size: clamp(17px, 2.1vw, 22px); font-weight: 600; color: var(--le-cyan); margin: 4px 0 12px; letter-spacing: .01em; }
.ea-hero .ea-support { font-size: 15px; color: var(--le-text-2); margin: 0 0 18px; max-width: 62ch; line-height: 1.55; }
/* V9.3 concise hero: below the nav and layer selector, compact responsive type, left column beside the globe */
.ea-hero { top: calc(var(--navh) + 84px); transform: none; max-width: min(540px, 42vw); gap: 14px; max-height: calc(100dvh - var(--navh) - 120px); }
.ea-hero.out { transform: translateY(12px); }
.ea-hero .ea-eyebrow { margin: 0; letter-spacing: .16em; }
.ea-hero .le-display { font-size: clamp(32px, 3.4vw, 50px); line-height: 1.06; margin: 0; letter-spacing: -.01em; }
.ea-hero .ea-statement { font-size: clamp(16px, 1.5vw, 20px); margin: 0; }
.ea-hero .le-lede { font-size: clamp(15px, 1.15vw, 17px); line-height: 1.55; margin: 0; max-width: 46ch; color: var(--le-text-2); }
.ea-hero .ea-ctas { margin-top: 6px; }
.ea-hero .ea-hero-note { font-size: 12.5px; color: var(--le-text-2); opacity: .85; max-width: 52ch; line-height: 1.45; border-left: 2px solid var(--le-hairline-2); padding-left: 10px; }
@media (max-width: 860px) { .ea-hero { left: 16px; right: 16px; top: calc(var(--navh) + 100px); max-width: none; max-height: calc(100dvh - var(--navh) - 190px); overflow-y: auto; gap: 12px; }
  .ea-hero .le-display { font-size: clamp(28px, 8vw, 36px); } }
/* V9.3 demo narration: progressive reveal, live indicator, per-stage progress */
.demo .demo-r0, .demo .demo-r1, .demo .demo-r2 { animation: demoIn .5s var(--le-ease, ease) both; }
.demo .demo-r1 { animation-delay: .5s; } .demo .demo-r2 { animation-delay: 2s; }
@keyframes demoIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.demo .demo-say { font-size: 16px; line-height: 1.5; margin: 0 0 8px; color: var(--le-text) !important; }
.demo .demo-more { font-size: 14px; line-height: 1.55; margin: 0 0 12px; color: var(--le-text-2); }
.demo-live { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--le-cyan); margin-right: 8px; vertical-align: 1px; animation: demoPulse 1.4s ease-in-out infinite; }
@keyframes demoPulse { 50% { opacity: .3; } }
.demo-stagebar { height: 2px; margin: -8px 0 12px; background: rgba(255, 255, 255, .06); border-radius: 2px; overflow: hidden; }
.demo-stagebar i { display: block; height: 100%; width: 0; background: rgba(98, 216, 242, .75); transition: width .25s linear; }
.demo-auto { color: var(--le-cyan); }
@media (prefers-reduced-motion: reduce) { .demo .demo-r0, .demo .demo-r1, .demo .demo-r2, .demo-live { animation: none; } }

/* R35: the mission director owns both progress bars and the geographic avatar overlay. */
.mission-demo { max-height: min(66dvh, 660px); overflow: auto; border: 1px solid rgba(98, 216, 242, .44); box-shadow: 0 12px 48px rgba(0, 9, 29, .72), 0 0 45px rgba(17, 136, 194, .16); }
.mission-demo .demo-stagebar { height: 5px; margin: 3px 0 8px; background: rgba(98, 216, 242, .13); }
.mission-demo .demo-stagebar i, .mission-demo .demo-bar i { transition: none; background: linear-gradient(90deg, #277bdb, #62d8f2); box-shadow: 0 0 12px rgba(98, 216, 242, .85); }
.mission-demo .demo-bar { height: 3px; margin: 2px 0 14px; }
.mission-demo .demo-step-label, .mission-demo .demo-total-label, .mission-demo .demo-subject { font: 600 11px/1.4 var(--le-mono); letter-spacing: .06em; color: var(--le-cyan); margin: 7px 0 3px; }
.mission-demo .demo-total-label { color: var(--le-text-3); }
.mission-demo .demo-say { font-size: 15px; line-height: 1.5; }
.mission-demo .demo-unavailable { color: #ffc488; }
.demo-avatar { display: grid; justify-items: center; gap: 2px; min-width: 90px; border: 0; padding: 0; background: none; cursor: pointer; color: #dffbff; font: 700 10px var(--le-mono); text-shadow: 0 0 8px #00bcea; filter: drop-shadow(0 0 10px #39bbf7); }
.demo-avatar[hidden] { display: none; }
.demo-avatar i { display: block; width: 23px; height: 35px; background: linear-gradient(#b9f6ff, #2b9cdb); clip-path: polygon(36% 0,64% 0,78% 20%,68% 35%,89% 42%,100% 65%,78% 70%,70% 53%,68% 100%,53% 100%,50% 72%,47% 100%,32% 100%,30% 53%,22% 70%,0 65%,11% 42%,32% 35%,22% 20%); }
.demo-avatar b { padding: 3px 6px; border: 1px solid rgba(98, 216, 242, .7); border-radius: 6px; background: rgba(0, 22, 47, .9); white-space: nowrap; }
.demo-exchange { display: flex; gap: 10px; align-items: center; margin: 12px 0; }
.demo-exchange div { flex: 1; min-width: 0; display: grid; gap: 4px; padding: 10px; border: 1px solid rgba(98, 216, 242, .35); border-radius: 10px; background: rgba(32, 116, 177, .11); font-size: 12px; }
.demo-exchange small { color: var(--le-text-3); }
.demo-exchange > span { color: var(--le-cyan); }
.demo-results { display: grid; gap: 4px; margin: 10px 0; }
.demo-results div { display: flex; justify-content: space-between; gap: 8px; padding: 5px 8px; background: rgba(102, 191, 225, .08); border-radius: 6px; font-size: 12px; }
.demo-results .best { border: 1px solid rgba(98, 216, 242, .6); }
@media (max-width: 860px) { .mission-demo { bottom: 70px; max-height: 40dvh; } .demo-exchange { gap: 4px; } .demo-exchange div { padding: 6px; font-size: 10px; } .mission-demo .demo-ctl { gap: 3px; } .mission-demo .demo-ctl button { min-height: 44px; padding: 6px 10px; font-size: 12px; } }

/* ---------- V9.1 landing: one primary action, progressive disclosure, readable fine print ---------- */
.ea-hero .ea-secondary { display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.ea-hero button.ea-quiet { background: none; border: 0; box-shadow: none; color: var(--le-text); font-size: 14.5px; min-height: 44px; padding: 8px 8px; text-decoration: underline; text-decoration-color: var(--le-hairline-2); text-underline-offset: 4px; }
.ea-hero button.ea-quiet:hover { background: none; text-decoration-color: currentColor; }
.ea-hero .ea-vision { display: inline-flex; align-items: center; min-height: 44px; }
.ea-hero .ea-hero-note { color: var(--le-text-2); opacity: 1; }
/* While the hero is on screen, the layer switcher, the map buttons stay
   hidden; they appear as soon as the visitor explores or starts the tour (browsers without :has() keep showing them). */
body.earth:has(#ea-hero:not([hidden]):not(.out)) :is(#ea-layers, #ea-layer-intro, #ea-view-legend, .maplibregl-ctrl-bottom-right) { display: none; }
.maplibregl-ctrl-attrib, .maplibregl-ctrl-attrib .maplibregl-ctrl-attrib-inner { background: rgba(4, 9, 18, .82) !important; color: var(--le-text-2) !important; }
.maplibregl-ctrl-attrib a { color: var(--le-text) !important; text-decoration: underline; }
.maplibregl-ctrl-attrib .maplibregl-ctrl-attrib-button { filter: invert(1); }
@media (max-width: 860px) {
  body.earth:has(#ea-hero:not([hidden]):not(.out)) .ea-hero { top: calc(var(--navh) + 20px); max-height: calc(100dvh - var(--navh) - 110px); }
  .ea-hero .ea-ctas > .ea-secondary { flex: 1 1 100%; justify-content: center; }
}
@media (max-width: 860px) {
  /* Phone landing: content-sized rows (top and bottom are both set above) and a backdrop so globe labels never cross the text. */
  .ea-hero { align-content: start; }
  body.earth:has(#ea-hero:not([hidden]):not(.out)) .ea-hero { bottom: auto; padding: 14px; margin: -14px; border-radius: 18px; background: rgba(2, 5, 11, .78); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
  .maplibregl-ctrl-bottom-left { bottom: calc(76px + env(safe-area-inset-bottom, 0px)); }
}

/* ---------- V9.2 Earth-first: Explore the Earth is the primary action; status panel for first-time visitors ---------- */
.ea-cta-explore { font-size: 16.5px !important; padding: 15px 30px !important; box-shadow: 0 0 0 1px rgba(98, 216, 242, .5), 0 10px 40px rgba(98, 216, 242, .25); }
.ea-hero .ea-hero-note a { color: var(--le-cyan); }
.ea-paths { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.ea-paths a { display: grid; gap: 3px; padding: 9px 11px; border: 1px solid var(--le-hairline-2); border-radius: 10px; background: rgba(8, 27, 42, .8); color: var(--le-text); text-decoration: none; }
.ea-paths a:hover, .ea-paths a:focus-visible { border-color: var(--le-cyan); }
.ea-paths b { font-size: 13px; }.ea-paths span { font-size: 11px; color: var(--le-text-2); }
.ea-status { position: fixed; z-index: 30; left: 50%; bottom: auto; top: calc(var(--navh) + 24px); transform: translateX(-50%); width: min(560px, calc(100vw - 32px)); max-height: calc(100dvh - var(--navh) - 48px); overflow-y: auto; padding: 18px 22px; border-radius: 18px; }
.ea-status header { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.ea-status h2 { margin: 0; font-size: 18px; } .ea-status h3 { margin: 14px 0 6px; font-size: 13px; letter-spacing: .06em; text-transform: uppercase; color: var(--le-cyan); }
.ea-status ul { margin: 0; padding-left: 18px; display: grid; gap: 6px; font-size: 14px; line-height: 1.45; color: var(--le-text-2); }

/* Product clarity: the professional path stays secondary to Earth exploration. */
.ea-hero .ea-secondary a { color: var(--le-cyan); padding: 10px 8px; text-underline-offset: 4px; }
.ea-hero { max-width: 660px; }
.ea-hero .le-display { max-width: 19ch; }
@media (max-width: 860px) {
  .ea-hero .ea-statement { display: none; }
  .ea-hero .le-lede { font-size: 14px; line-height: 1.5; }
}

/* Founding horizon stays optional so exploration remains the primary action. */
.ea-horizon { font-size: 13px; color: var(--le-text-2); }
.ea-horizon summary { cursor: pointer; color: var(--le-cyan); padding: 6px 0; }
.ea-horizon p { margin: 10px 0; max-width: 60ch; line-height: 1.5; }
.ea-horizon a { color: var(--le-cyan); }

/* Living City: one bounded-work entry over the existing Earth and contextual drawer. */
#urban-status { position: fixed; z-index: 12; top: calc(var(--navh) + 106px); left: 16px; padding: 10px 16px; border-radius: 20px; color: var(--le-cyan); font-size: 13px; }
.urban-inputs { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
#urban-form, #urban-idea-form { display: grid; gap: 14px; }
#urban-form fieldset { border: 1px solid var(--le-hairline-2); border-radius: 12px; padding: 12px; }
#urban-form label, #urban-idea-form label { display: grid; gap: 5px; font-size: 12px; color: var(--le-text-2); }
#urban-form input, #urban-form select { width: 100%; min-width: 0; }
#urban-idea-form textarea { width: 100%; min-height: 120px; resize: vertical; }
#urban-form .product-notice { border-left: 2px solid var(--le-warn); padding-left: 12px; font-size: 13px; }
.urban-table { max-width: 100%; overflow: auto; border: 1px solid var(--le-hairline-2); border-radius: 12px; }
.urban-table table { border-collapse: collapse; min-width: 600px; font-size: 12px; }
.urban-table th,.urban-table td { padding: 10px; border-bottom: 1px solid var(--le-hairline); text-align: left; }
.urban-tasks { padding-left: 20px; display: grid; gap: 14px; }
.urban-tasks pre, .ea-panel pre { white-space: pre-wrap; overflow-wrap: anywhere; font-size: 11px; max-height: 180px; overflow: auto; }
.urban-tour { position: sticky; bottom: -16px; padding: 12px 0; background: var(--le-ink-900); display: flex; align-items: center; gap: 8px; flex-wrap: wrap; border-top: 1px solid var(--le-hairline); }
.urban-tour span { flex: 1; font-size: 12px; }
@media (max-width: 860px) { #urban-status { top: calc(var(--navh) + 136px); left: 8px; max-width: calc(100vw - 16px); font-size: 11px; padding: 8px 12px; } } /* R2: below, not over, the Parallel/Real switch */
#urban-form > button.primary { position: sticky; top: 0; z-index: 2; }

.ea-cta-demo { min-height: 50px; border: 1px solid var(--le-cyan) !important; color: var(--le-cyan) !important; background: rgba(98,216,242,.08) !important; font-weight: 600; }
.ea-manifesto { color: var(--le-cyan); font-size: 13px; text-underline-offset: 4px; }
.urban-team { display: grid; gap: 10px; padding-left: 22px; }
.urban-team li { padding: 4px 0; }
.urban-team span { display: block; font-size: 12px; color: var(--le-text-2); }
.urban-facts { display: grid; grid-template-columns: auto minmax(0,1fr); gap: 8px 14px; font-size: 13px; }
.urban-facts dt { color: var(--le-cyan); } .urban-facts dd { margin: 0; overflow-wrap: anywhere; }
.urban-tour { z-index: 3; top: -16px; bottom: auto; } .urban-tour a { color: var(--le-cyan); }
@media (max-width: 520px) {
  .ea-panel:has(.urban-tour) { max-height: 72dvh; }
  .urban-tour span { flex: 0 0 100%; }
}

/* Shared loading feedback remains visible when the hero has already closed. */
.ea-demo-pending { position: fixed; z-index: 40; top: calc(var(--navh) + 12px); left: 50%; transform: translateX(-50%); max-width: calc(100vw - 32px); width: max-content; padding: 12px 18px; border-radius: 14px; color: var(--le-cyan); }
/* R2: the floating language selector never covers an open panel or list, nor the map attribution.
   Phones: it moves beside the Parallel/Real switch. Desktop: the panel stops above it. */
@media (max-width: 860px) {
  body.earth:not(.twin-open):has(#ea-panel:not([hidden]), #ea-list:not([hidden])) .le-lang-floating { top: calc(var(--navh) + 54px); bottom: auto; right: max(8px, env(safe-area-inset-right)); }
  /* Explore mode adds the command bar: #ea-main redefines --navh, which the floating label (outside it) does not inherit. */
  body.earth.ea-explore:not(.twin-open):has(#ea-panel:not([hidden]), #ea-list:not([hidden])) .le-lang-floating { top: calc(var(--ci-shell) + var(--ci-h) + 54px); }
}
@media (min-width: 861px) {
  body.earth:not(.twin-open) #ea-panel:not([hidden]) { bottom: 64px; }
}
/* R2: agent records and status sources */
.ar .kv ul, .ar-sources, .ar-near { margin: 0; padding-left: 18px; display: grid; gap: 6px; }
.ar h4 { margin: 10px 0 4px; font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: var(--le-text-3); }
.ar-missing { color: var(--le-text-3); font-style: italic; }
.ar-near { list-style: none; padding: 0; } .ar-near li { padding: 8px 0; border-bottom: 1px solid var(--le-hairline); }
.ar-failed { margin: 0 0 8px; padding: 8px 10px; border-radius: 10px; border: 1px solid #7a2e3a; background: rgba(122, 46, 58, .18); font-size: 13px; }
.ar[data-mission-run] .kv dd { min-width: 0; overflow-wrap: anywhere; }
@media (max-width: 600px) { .ar[data-mission-run] .kv { grid-template-columns: 1fr; } }
/* Gate B: agent mission card. Gold = recorded work (same as the map ring); slate = browser replay; grey = inactive. */
.ao-card { border: 1px solid #2a4d66; border-radius: 12px; padding: 10px 12px; background: rgba(6, 24, 40, .72); }
.ao-exec-row { display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: center; margin: 0 0 4px; }
.ao-exec { font-size: 12px; font-weight: 600; letter-spacing: .02em; padding: 3px 9px; border-radius: 999px; border: 1px solid currentColor; }
.ao-exec[data-exec=recorded] { color: #f2d36b; } .ao-exec[data-exec=replay] { color: #9fc3dc; } .ao-exec[data-exec=inactive] { color: #8a9aab; } .ao-exec[data-exec=live] { color: #7fdcaa; }
.ao-replay { font-size: 12px; color: #9fb4c6; }
.ao-why { margin: 0 0 6px; }
.ao-kv dd { overflow-wrap: anywhere; }
/* R27 mission intelligence: responsibility, provenance kinds, task state; compact, no animation. */
.mi-brief { margin-top: 10px; }
.mi-lane { display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: center; margin: 0 0 6px; }
.mi-st { font-size: 11.5px; font-weight: 600; padding: 2px 8px; border-radius: 999px; border: 1px solid currentColor; white-space: nowrap; }
.mi-st[data-st=recorded] { color: #f2d36b; } .mi-st[data-st=blocked] { color: #e79a6b; } .mi-st[data-st=awaiting-human] { color: #9fd0f2; } .mi-st[data-st=open], .mi-st[data-st=computed] { color: #b9c4cf; }
.mi-k { display: inline-block; font: 600 11px/1.6 ui-monospace, SFMono-Regular, Menlo, monospace; padding: 0 6px; border-radius: 4px; background: rgba(159, 195, 220, .12); color: #cfe3f2; }
.mi-k[data-k=source] { background: rgba(127, 220, 170, .14); color: #a6e9c6; } .mi-k[data-k=computed] { background: rgba(242, 211, 107, .14); color: #f2d36b; }
.mi-k[data-k=hypothesis] { background: rgba(185, 196, 207, .12); color: #c9d2db; } .mi-k[data-k=missing] { background: rgba(231, 154, 107, .14); color: #f0b48f; } .mi-k[data-k=user] { background: rgba(150, 170, 255, .16); color: #c4cfff; }
.mi-cs { font-size: 12px; color: #9fb4c6; } .mi-cs[data-cs=contradicted] { color: #f08f7a; } .mi-cs[data-cs=unverified] { color: #e7b86b; }
.mi-agents { display: flex; flex-wrap: wrap; gap: 4px; margin: 4px 0; }
.mi-agents button { min-height: 32px; }
.mi-primary { width: 100%; min-height: 44px; margin-top: 10px; }
.mi-nav { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 10px; }
.mi-lanes, .mi-stages { list-style: none; margin: 0; padding: 0; }
.mi-lanes > li { padding: 8px 0; border-top: 1px solid var(--le-hairline-2); } .mi-lanes p { margin: 0; }
.mi-stage { border-top: 1px solid var(--le-hairline-2); padding: 8px 0; }
.mi-stage > summary { cursor: pointer; display: flex; flex-wrap: wrap; gap: 6px 8px; align-items: center; min-height: 36px; font-weight: 600; }
.mi-n { display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; border: 1px solid #2a4d66; font-size: 12px; }
.mi-stage h4 { margin: 10px 0 4px; font-size: 13px; }
.mi-list { margin: 6px 0; padding-left: 18px; } .mi-list > li { margin: 6px 0; overflow-wrap: anywhere; }
.mi-respond { margin-left: 6px; min-height: 30px; }
.mi-stage .le-row .primary, .mi-stage .le-row .btn { min-height: 44px; }
.mi-link { border-left: 3px solid #9fd0f2; padding: 6px 10px; margin: 0 0 10px; background: rgba(159, 208, 242, .06); overflow-wrap: anywhere; }
.mi-memory ol { padding-left: 18px; } .mi-memory li { margin: 4px 0; overflow-wrap: anywhere; }
/* Gate D: legend of what each view shows (real, recorded, replay, proposed). */
.ea-view-legend { pointer-events: none; position: fixed; z-index: 10; left: 16px; top: calc(var(--navh) + 52px); max-width: min(360px, calc(100vw - 32px)); margin: 0; padding: 6px 10px; border-radius: 12px; display: flex; flex-wrap: wrap; gap: 3px 12px; font-size: 11.5px; line-height: 1.35; color: var(--le-text-2); }
.ea-view-legend span { display: inline-flex; align-items: center; gap: 5px; }
.lg-dot { width: 9px; height: 9px; border-radius: 50%; display: inline-block; flex: none; }
.lg-dot.real { background: var(--le-sand-50, #e8dcc4); } .lg-dot.replay { background: #62d8f2; } .lg-dot.rec { border: 2px solid #f2d36b; width: 7px; height: 7px; } .lg-dot.idea { background: #b9a2ff; box-shadow: 0 0 0 1.5px #f4f0ff; }
body:has(#ea-layer-intro:not([hidden])) .ea-view-legend { display: none; }
@media (max-width: 860px) { .ea-view-legend { left: 8px; top: calc(var(--navh) + 94px); max-width: calc(100vw - 16px); font-size: 10.5px; padding: 3px 8px; gap: 2px 8px; } .ea-view-legend span:nth-child(n+4) { display: none; } body:has(#ea-panel:not([hidden])) .ea-view-legend { display: none; } }

/* R12: the map carries the holographic color; the interface frames it in graphite and mineral. */
.ea-vignette { background: linear-gradient(90deg, rgba(7, 12, 16, .88), rgba(7, 12, 16, .55) 34%, transparent 68%); }
.ea-hero { max-width: min(620px, 46vw); gap: 14px; }
.ea-hero .le-display { max-width: 17ch; font-size: clamp(44px, 3.9vw, 59px); line-height: 1.025; letter-spacing: -.052em; }
.ea-hero .ea-eyebrow { color: #d9ab86; }
.ea-hero .ea-statement { color: var(--le-sand-50); font-weight: 540; }
.ea-hero .le-lede { max-width: 49ch; color: #ccd5d2; line-height: 1.55; }
.ea-hero .ea-hero-note { border-left-color: var(--le-copper); color: #abb8b7; }
.ea-cta-demo { border-color: rgba(245, 242, 235, .65) !important; color: var(--le-sand-50) !important; background: rgba(15, 24, 29, .75) !important; box-shadow: none !important; }
.ea-paths { gap: 0 22px; }
.ea-paths a { padding: 13px 0; border: 0; border-top: 1px solid var(--le-hairline-2); border-radius: 0; background: transparent; }
.ea-paths a:hover, .ea-paths a:focus-visible { border-color: var(--le-copper); background: transparent; }
.ea-panel { background: rgba(22, 30, 34, .96); border-color: rgba(232, 237, 231, .18); border-radius: 12px; box-shadow: -18px 12px 54px rgba(0, 0, 0, .34); }
.ea-panel .pp-head h2 { font-weight: 560; letter-spacing: -.04em; }
.ea-panel .pp-sec h3 { color: #c5a184; }
.ea-layers { background: rgba(19, 27, 31, .9); }
.urban-tour { background: #1b262a; border-top-color: var(--le-hairline-2); }
@media (max-width: 860px) {
  .ea-vignette { background: linear-gradient(180deg, rgba(7, 12, 16, .75), rgba(7, 12, 16, .18) 64%, transparent); }
  .ea-hero { max-width: none; max-height: 60dvh; }
  .ea-hero .le-display { font-size: clamp(33px, 8vw, 43px); }
  .ea-panel { max-height: 60dvh; }
  .ea-panel:has(.urban-tour) { max-height: 64dvh; }
}

/* R15 homepage: a short hero in the free band between the navigation and the map credits. It is sized by its content,
   never clipped (it scrolls as a whole only when a screen is shorter than its content); disclosures live in #ea-status. */
body.earth { --ea-foot: 64px; }
.ea-hero, body.earth:has(#ea-hero:not([hidden]):not(.out)) .ea-hero { left: clamp(24px, 7vw, 112px); right: auto; top: calc((100dvh + var(--navh) - var(--ea-foot)) / 2); bottom: auto; transform: translateY(-50%); width: min(600px, 44vw); max-width: none; max-height: calc(100dvh - var(--navh) - var(--ea-foot) - env(safe-area-inset-bottom, 0px)); overflow-y: auto; margin: 0; padding: 16px 0; display: block; background: none; -webkit-backdrop-filter: none; backdrop-filter: none; border-radius: 0; scrollbar-width: none; }
.ea-hero.out { transform: translateY(calc(-50% + 12px)); }
.ea-hero-main { display: grid; gap: 20px; }
.ea-hero .ea-eyebrow { margin: 0; }
.ea-hero .le-display { margin: 0; max-width: 13ch; font-size: clamp(40px, 4.3vw, 66px); line-height: 1.02; letter-spacing: -.045em; }
.ea-hero .le-lede { margin: 0; max-width: 32ch; font-size: clamp(16px, 1.35vw, 19px); line-height: 1.5; color: #ccd5d2; }
.ea-hero .ea-ctas { margin-top: 10px; gap: 12px; flex-wrap: wrap; }
.ea-hero .ea-ctas > * { min-height: 48px; }
.ea-disclose { margin: 28px 0 0; padding-top: 14px; border-top: 1px solid var(--le-hairline-2); max-width: 32ch; }
.ea-hero .ea-disclose button.ea-quiet { padding: 8px 0; font-size: 14px; color: var(--le-text-2); }
.ea-hero .ea-disclose button.ea-quiet::after { content: " →"; }
.ea-status-note { margin: 10px 0 4px; padding-left: 10px; border-left: 2px solid var(--le-copper); font-size: 13px; line-height: 1.45; color: #c3cecd; }
.ea-status .ea-horizon { margin-top: 14px; }
.ea-status .ea-paths { margin-top: 12px; }
.ea-status .ea-manifesto { display: inline-block; margin-top: 12px; padding: 10px 0; }
@media (max-width: 860px) {
  /* Phones and tablets: Earth on top, the hero anchored above the credits and the tab bar; the language pill moves up. */
  body.earth { --ea-foot: 116px; }
  .ea-hero, body.earth:has(#ea-hero:not([hidden]):not(.out)) .ea-hero { left: 20px; right: 20px; width: auto; top: auto; bottom: calc(var(--ea-foot) + env(safe-area-inset-bottom, 0px)); transform: none; max-height: calc(100dvh - var(--navh) - var(--ea-foot) - 16px - env(safe-area-inset-bottom, 0px)); padding: 0; }
  .ea-hero.out { transform: translateY(12px); }
  .ea-hero-main { gap: 14px; }
  .ea-hero .le-display { max-width: 14ch; font-size: clamp(32px, 8.6vw, 46px); }
  .ea-hero .le-lede { font-size: 16px; max-width: 36ch; }
  .ea-hero .ea-ctas { margin-top: 4px; }
  .ea-hero .ea-ctas > * { flex: 1 1 auto; }
  .ea-disclose { margin-top: 14px; padding-top: 8px; max-width: none; }
  .ea-vignette { background: linear-gradient(0deg, rgba(7, 12, 16, .94), rgba(7, 12, 16, .72) 42%, transparent 72%); }
  body.earth:has(#ea-hero:not([hidden]):not(.out)) .le-lang-floating { top: calc(var(--navh) + 10px); bottom: auto; }
  .ea-status { max-height: calc(100dvh - var(--navh) - 120px - env(safe-area-inset-bottom, 0px)); }
}
@media (max-width: 860px) and (min-width: 600px) { .ea-hero, body.earth:has(#ea-hero:not([hidden]):not(.out)) .ea-hero { left: 48px; right: 48px; } .ea-hero .ea-ctas > * { flex: 0 0 auto; } }
@media (max-height: 700px) and (max-width: 860px) { .ea-hero .ea-eyebrow { display: none; } .ea-hero .le-display { font-size: clamp(30px, 8vw, 38px); } }
@media (max-width: 380px) { body.earth { --ea-foot: 134px; } }
body.earth .le-lang-floating select { max-width: none; }

/* R16 first-steps guide (after Enter CORE): small, dismissible, the next action carries the accent. */
.ea-guide { position: fixed; z-index: 12; right: 16px; top: calc(var(--navh) + 72px); width: min(300px, calc(100vw - 32px)); padding: 14px; border-radius: 16px; background: rgba(19, 27, 31, .92); }
.ea-guide-h { margin: 0 0 8px; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: #d9ab86; }
.ea-guide ol { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.ea-guide ol button { width: 100%; display: flex; gap: 10px; align-items: center; text-align: left; min-height: 48px; padding: 8px 10px; border: 1px solid var(--le-hairline-2); border-radius: 12px; background: transparent; box-shadow: none; color: var(--le-text); }
.ea-guide ol button b { display: block; font-size: 14px; font-weight: 560; } .ea-guide ol button small { display: block; font-size: 12px; color: var(--le-text-2); }
.ea-guide-n { flex: none; display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; border: 1px solid var(--le-hairline-2); font-size: 12px; }
.ea-guide ol button.next { border-color: var(--le-sand-50); background: rgba(245, 242, 235, .08); }
.ea-guide ol button.next .ea-guide-n { background: var(--le-sand-50); color: #0d1317; border-color: transparent; }
.ea-guide ol button.done { opacity: .6; } .ea-guide ol button.done .ea-guide-n { color: transparent; } .ea-guide ol button.done .ea-guide-n::before { content: "✓"; color: var(--le-text); position: absolute; }
.ea-guide-ctl { display: flex; justify-content: space-between; margin: 8px 0 0; } .ea-guide-ctl button.ea-quiet { min-height: 44px; padding: 8px 4px; font-size: 13px; color: var(--le-text-2); background: none; border: 0; box-shadow: none; text-decoration: underline; }
body:has(#ea-panel:not([hidden]), #ea-list:not([hidden]), #ea-demo-choice:not([hidden]), .urban-tour) .ea-guide { display: none; }
@media (max-width: 860px) { .ea-guide { top: auto; right: 8px; left: 8px; width: auto; bottom: calc(146px + env(safe-area-inset-bottom, 0px)); padding: 10px; } .ea-guide ol button small { display: none; } }
.ea-guide-n { position: relative; }
body.earth.ea-explore .ea-guide { top: calc(var(--ci-shell, var(--navh)) + var(--ci-h, 0px) + 16px); }
@media (max-width: 860px) { body.earth.ea-explore .ea-guide { top: auto; } }
/* R17 mission summary: where, purpose, evidence status, one next action. */
.pp-summary { margin: 4px 0 14px; padding: 12px 14px; border: 1px solid var(--le-hairline-2); border-radius: 12px; background: rgba(245, 242, 235, .04); }
.pp-summary dl { margin: 0 0 12px; display: grid; grid-template-columns: max-content 1fr; gap: 6px 12px; font-size: 13.5px; line-height: 1.45; }
.pp-summary dt { color: #c5a184; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; padding-top: 1px; }
.pp-summary dd { margin: 0; color: var(--le-text); }
.pp-summary .primary { width: 100%; min-height: 44px; }
/* R18 San Francisco decision journey. */
.urban-journey { list-style: none; counter-reset: j; display: flex; gap: 4px; margin: 0 0 14px; padding: 0; font-size: 11.5px; color: var(--le-text-2); }
.urban-journey li { counter-increment: j; flex: 1; padding: 6px 0 0; border-top: 2px solid var(--le-hairline-2); }
.urban-journey li::before { content: counter(j) " · "; }
.urban-journey li.done { border-top-color: rgba(245, 242, 235, .45); } .urban-journey li[aria-current] { border-top-color: var(--le-sand-50); color: var(--le-text); font-weight: 560; }
.urban-problem { margin-bottom: 14px; } .urban-problem h3 { margin-top: 0; }
.urban-review { margin-top: 16px; padding: 12px 14px; border: 1px solid var(--le-copper); border-radius: 12px; }
.urban-review h3 { margin: 0 0 6px; } .urban-review .primary { width: 100%; min-height: 44px; margin-top: 10px; }
/* R19 decision workspace. */
.urban-table td.urban-changed { color: var(--le-sand-50); font-weight: 600; }
.urban-review [data-contribute] { width: 100%; min-height: 44px; margin-top: 8px; }
.urban-evidence { border: 1px solid var(--le-hairline-2); border-radius: 12px; padding: 12px; }
.urban-evidence .kv { grid-template-columns: 1fr; gap: 2px; margin: 0; }
.urban-evidence .kv dt { margin-top: 6px; } .urban-evidence .kv dd { overflow-wrap: anywhere; }
.urban-readiness { border: 1px solid var(--le-hairline-2); border-radius: 12px; padding: 12px; }
.urban-readiness ol { margin: 8px 0; padding-left: 20px; display: grid; gap: 6px; font-size: 12px; }
.urban-readiness li small { display: block; color: var(--le-text-2); overflow-wrap: anywhere; }
/* R20 saved analyses (browser-local). */
.urban-saved { margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--le-hairline-2); }
.urban-saved ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.urban-saved li { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 10px; align-items: center; }
.urban-saved li small { display: block; color: var(--le-text-2); font-size: 12px; }
.urban-saved label { display: grid; gap: 4px; margin-bottom: 8px; } .urban-saved button.small { min-height: 36px; }
/* R28 supervised execution */
.ex-mode { display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: center; margin: 6px 0 0; }
.ex-st[data-st=done], .ex-st[data-st=completed] { color: #7fdcaa; } .ex-st[data-st=running] { color: #9fd0f2; } .ex-st[data-st=paused], .ex-st[data-st=queued], .ex-st[data-st=planned] { color: #b9c4cf; }
.ex-st[data-st=failed], .ex-st[data-st=blocked], .ex-st[data-st=denied], .ex-st[data-st=limit-exceeded], .ex-st[data-st=completed-with-failures] { color: #e79a6b; } .ex-st[data-st=unavailable], .ex-st[data-st=cancelled] { color: #9aa7b3; }
.ex-tasks { margin: 6px 0; padding-left: 22px; display: grid; gap: 8px; } .ex-tasks > li { overflow-wrap: anywhere; } .ex-tasks > li[data-status=running] { color: #e6f4ff; }
.ex-tasks .ghost.small { min-height: 32px; }
.ex-assume { border: 1px solid var(--le-hairline); border-radius: 12px; padding: 8px 12px; display: grid; gap: 6px; } .ex-assume input { max-width: 9em; }
.ex-controls { position: sticky; top: 0; z-index: 1; background: inherit; } .ex-controls button { min-height: 44px; }
.ex-result h4 { margin: 10px 0 4px; font-size: 13px; } .ex-log code { overflow-wrap: anywhere; }
.ex-actions button, .ex-actions .btn { min-height: 44px; }
/* R31 city intelligence */
.ci-list > li { padding: 8px 0; border-top: 1px solid var(--le-hairline-2); overflow-wrap: anywhere; }
.ci-actions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; } .ci-actions button { min-height: 44px; }

/* ---------- R36: agent conversation and seven-stage demo ---------- */
.demo-avatar:focus-visible b { outline: 2px solid var(--le-cyan); outline-offset: 2px; }
.agent-chat { display: grid; gap: 8px; border: 1px solid rgba(98, 216, 242, .35); border-radius: 14px; padding: 12px; background: rgba(20, 70, 110, .12); }
.agent-chat h3 { margin: 4px 0 0; font-size: 13px; color: var(--le-cyan); letter-spacing: .04em; }
.ac-badges { display: flex; flex-wrap: wrap; gap: 6px; }
.ac-badge { font: 600 11px/1.4 var(--le-mono); padding: 2px 8px; border-radius: 999px; border: 1px solid rgba(140, 200, 255, .35); color: var(--le-text-2); }
.ac-badge[data-k="task"] { color: #9ff0b8; border-color: rgba(120, 230, 160, .55); }
.ac-badge[data-k="recorded"] { color: #f5d38a; border-color: rgba(245, 211, 138, .5); }
.ac-badge[data-k="demo"] { color: #62d8f2; border-color: rgba(98, 216, 242, .6); }
.ac-badge[data-k="chat"] { color: #c9e7ff; }
.ac-kv { margin: 0; font-size: 12px; } .ac-kv dd { overflow-wrap: anywhere; }
.ac-log { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; max-height: 380px; overflow-y: auto; overscroll-behavior: contain; }
.ac-log li { padding: 7px 10px; border-radius: 10px; font-size: 13px; line-height: 1.45; }
.ac-log li p { margin: 2px 0 0; color: var(--le-text) !important; }
.ac-log b { font-size: 11px; letter-spacing: .04em; color: var(--le-text-3); }
.ac-log small { display: block; margin-top: 3px; color: var(--le-text-3); font-size: 11px; }
.ac-you { background: rgba(98, 216, 242, .14); margin-left: 18%; }
.ac-agent { background: rgba(255, 255, 255, .05); margin-right: 8%; border: 1px solid rgba(140, 200, 255, .16); }
.ac-agent.declined { border-color: rgba(255, 196, 136, .45); }
.ac-thinking p { animation: acDots 1s steps(3) infinite; }
@keyframes acDots { 50% { opacity: .35; } }
.ac-empty { color: var(--le-text-3); font-size: 12px; }
.ac-form { display: flex; gap: 6px; } .ac-form input { flex: 1; min-width: 0; min-height: 40px; }
.ac-suggest { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; }
.mission-demo .agent-chat { margin: 8px 0; } .mission-demo .ac-log { max-height: 150px; }
@media (max-width: 860px) {
  /* Fixed height: the camera padding stays constant, so the agent never jumps when the caption content changes. */
  .mission-demo { height: 42dvh; max-height: 42dvh; }
  .mission-demo .agent-chat .ac-kv, .mission-demo .agent-chat > .fine, .mission-demo .agent-chat .ac-badges { display: none; }
  /* Talk stage on phones: the conversation replaces the long caption text so both answers stay in view. */
  .mission-demo[data-stage="talk"] .demo-say { display: none; }
  .mission-demo .agent-chat { padding: 8px; gap: 6px; } .mission-demo .ac-log { max-height: none; }
  /* While an agent conversation sheet is open, the city chooser and status badge step aside so they cannot cover it. */
  body:has(#ea-panel:not([hidden]) .agent-chat) :is(#ea-cities, #urban-status) { display: none; }
  /* R38: the same for the mission workspace and every other panel sheet, including the floating language picker. */
  body:has(#ea-panel:not([hidden])) :is(#ea-cities, #urban-status, .le-lang-floating) { display: none; }
  .ac-form input, .ac-form button { min-height: 44px; }
}
@media (prefers-reduced-motion: reduce) { .ac-thinking p { animation: none; } }

/* R38 — home: what works today, continue your work */
.ea-today { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; color: var(--le-text-2); font-size: 15px; }
.ea-today li { position: relative; padding-left: 22px; line-height: 1.45; }
.ea-today li::before { content: ''; position: absolute; left: 4px; top: .55em; width: 8px; height: 8px; border-radius: 50%; background: var(--le-cyan); box-shadow: 0 0 10px rgba(98, 216, 242, .7); }
.ea-hero .ea-cta-explore { padding: 14px 22px; }
.ea-resume { border: 1px solid var(--le-hairline-2); border-radius: 14px; padding: 12px 14px; background: rgba(6, 18, 34, .55); backdrop-filter: blur(8px); }
.ea-resume .le-eyebrow { margin: 0 0 6px; }
.ws-resume { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.ws-resume li { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.ws-resume li > span { display: grid; gap: 2px; min-width: 0; }
.ws-resume b { overflow-wrap: anywhere; }
.ea-hero-note { max-width: 560px; color: var(--le-text-3); }
@media (max-width: 860px) { .ea-today { font-size: 13.5px; gap: 5px; } .ea-hero .le-display { font-size: 27px; } .ea-hero-note { display: none; } .ea-hero .le-row.ea-ctas { flex-wrap: wrap; } .ea-hero .le-row.ea-ctas > button { flex: 1 1 auto; } }
@media (max-height: 760px) and (min-width: 861px) { .ea-today { display: none; } }

/* R38 — mission workspace */
.ws-head .ws-saved { margin: 6px 0 0; }
.linkish { background: none; border: 0; padding: 0; color: var(--le-cyan); text-decoration: underline; cursor: pointer; font: inherit; min-height: 0; }
/* Sticks at the panel's padding edge (26 px, 22 px on phones) so scrolled text never shows above it. */
.ws-steps { position: sticky; top: -26px; z-index: 2; margin: -14px -4px 6px; padding: 26px 4px 6px; background: rgb(6, 16, 31); box-shadow: 0 8px 12px -8px rgba(0, 0, 0, .6); }
.ws-steps ol { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 4px; }
.ws-steps button { width: 100%; display: grid; justify-items: center; gap: 3px; padding: 6px 2px; min-height: 48px; font-size: 11px; line-height: 1.15; border-radius: 10px; background: transparent; border: 1px solid var(--le-hairline); color: var(--le-text-2); }
.ws-steps button span { font: 700 12px/1 var(--le-mono); width: 20px; height: 20px; display: grid; place-items: center; border-radius: 50%; border: 1px solid currentColor; }
.ws-steps button.on { color: #041321; background: var(--le-cyan); border-color: var(--le-cyan); }
.ws-steps button:disabled { opacity: .4; cursor: not-allowed; }
.ws-steps button:focus-visible, .ws-team button:focus-visible { outline: 2px solid var(--le-cyan); outline-offset: 2px; }
.ws-lede { font-size: 16px; line-height: 1.5; color: var(--le-text); }
.ws-nav { display: flex; justify-content: space-between; gap: 10px; padding: 12px 0 4px; border-top: 1px solid var(--le-hairline); margin-top: 8px; }
.ws-ev, .ws-gaps, .ws-team, .ws-run { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.ws-ev li { display: grid; gap: 3px; padding: 8px 10px; border: 1px solid var(--le-hairline); border-radius: 10px; }
.ws-gaps li { padding-left: 14px; position: relative; color: var(--le-text-2); } .ws-gaps li::before { content: '–'; position: absolute; left: 0; color: var(--le-text-3); }
.ws-kind { font: 600 10.5px/1.4 var(--le-mono); padding: 1px 7px; border-radius: 999px; border: 1px solid rgba(140, 200, 255, .35); color: var(--le-text-2); white-space: nowrap; }
.ws-kind[data-k="computed-output"] { color: #9ff0b8; border-color: rgba(120, 230, 160, .55); }
.ws-kind[data-k="simulated"], .ws-kind[data-k="model-hypothesis"] { color: #c7b6ff; border-color: rgba(190, 170, 255, .5); }
.ws-kind[data-k="observed"], .ws-kind[data-k="source-evidence"], .ws-kind[data-k="recorded-observation"] { color: #f5d38a; border-color: rgba(245, 211, 138, .5); }
.ws-team li { display: flex; gap: 10px; justify-content: space-between; align-items: flex-start; padding: 8px 10px; border: 1px solid var(--le-hairline); border-radius: 10px; }
.ws-team li.on { border-color: var(--le-cyan); box-shadow: 0 0 0 1px rgba(98, 216, 242, .35) inset; }
.ws-task { display: inline-block; font-size: 12.5px; margin-top: 3px; color: var(--le-text-2); }
.ws-inputs { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 10px; }
.ws-run li { display: flex; gap: 8px; align-items: baseline; font-size: 13px; } .ws-run .ws-st { margin-left: auto; }
.ws-st { font: 600 11px/1.4 var(--le-mono); text-transform: uppercase; letter-spacing: .04em; color: var(--le-text-3); }
.ws-run li[data-s="done"] .ws-st { color: #9ff0b8; } .ws-run li[data-s="running"] .ws-st { color: var(--le-cyan); } .ws-run li[data-s="unavailable"] .ws-st, .ws-run li[data-s="failed"] .ws-st { color: #f5b38a; }
.ws-done { padding: 10px 12px; border: 1px solid rgba(120, 230, 160, .45); border-radius: 10px; }
.ws-table, .ac-findings { width: 100%; border-collapse: collapse; font-size: 13px; margin: 6px 0; }
.ws-table caption, .ac-findings caption { text-align: left; font-weight: 600; padding-bottom: 6px; color: var(--le-text); }
.ws-table th, .ws-table td, .ac-findings th, .ac-findings td { text-align: left; padding: 6px 6px; border-bottom: 1px solid var(--le-hairline); vertical-align: top; }
.ws-table tr.best td { color: #9ff0b8; }
.ws-chart { width: 100%; max-width: 420px; height: auto; display: block; margin: 6px 0; }
.ws-chart .axis { stroke: var(--le-hairline-2); } .ws-chart rect.neg { fill: #62d8f2; } .ws-chart rect.pos { fill: #f5b38a; } .ws-chart text { fill: var(--le-text-3); font: 9px var(--le-mono); }
.ws-brief { border: 1px solid var(--le-hairline-2); border-radius: 14px; padding: 14px 16px; background: rgba(8, 22, 40, .6); }
.ws-brief h3 { margin: 14px 0 4px; font-size: 13px; text-transform: uppercase; letter-spacing: .06em; color: var(--le-text-3); }
.ws-brief ul { margin: 0; padding-left: 18px; display: grid; gap: 4px; }
.ws-stamp { margin: 0; font: 600 11px/1.4 var(--le-mono); color: #f5d38a; text-transform: uppercase; letter-spacing: .06em; }
.ws-notes { display: grid; gap: 6px; margin-top: 12px; }
.ws-actions .le-row { flex-wrap: wrap; }
@media (max-width: 860px) { .ws-steps { top: -22px; padding-top: 22px; } .ws-steps ol { grid-template-columns: repeat(3, minmax(0, 1fr)); } .ws-team li { flex-direction: column; } .ws-table { font-size: 12px; } }

/* R38 — agent replies by provenance */
.ac-part { margin: 4px 0; }
.ac-mode { font: 600 10px/1.4 var(--le-mono); padding: 1px 6px; border-radius: 999px; border: 1px solid rgba(140, 200, 255, .35); color: var(--le-text-2); margin-right: 4px; white-space: nowrap; }
.ac-mode[data-mode="computed"] { color: #9ff0b8; border-color: rgba(120, 230, 160, .55); }
.ac-mode[data-mode="recorded"] { color: #f5d38a; border-color: rgba(245, 211, 138, .5); }
.ac-mode[data-mode="scripted"], .ac-mode[data-mode="simulation"] { color: #62d8f2; border-color: rgba(98, 216, 242, .6); }
.ac-mode[data-mode="exploratory"] { color: #c7b6ff; border-color: rgba(190, 170, 255, .5); }
.ac-mode[data-mode="declined"] { color: #f5b38a; border-color: rgba(245, 179, 138, .5); }
.ac-suggest { display: flex; flex-wrap: wrap; gap: 6px; }
.ws-body h3 { margin: 16px 0 6px; }
.ws-body .pp-sec > h3:first-child { margin-top: 4px; }

/* Final review: short laptop screens (e.g. 1280×720 recordings) keep the whole landing, including the limits note, in view. */
@media (min-width: 861px) and (max-height: 820px) {
  .ea-hero { top: calc(var(--navh) + 20px); max-width: min(620px, 48vw); max-height: calc(100dvh - var(--navh) - 64px); }
  .ea-hero .le-display { font-size: clamp(30px, 3vw, 40px); max-width: 24ch; }
  .ea-hero .le-lede { font-size: 15px; max-width: 54ch; }
  .ea-today { display: grid; font-size: 13.5px; gap: 4px; }
  .ea-hero .ea-hero-note { font-size: 12px; max-width: 64ch; }
}
/* Phones: the landing header stays opaque so globe labels never run under the navigation buttons. */
@media (max-width: 860px) {
  body.earth:has(#ea-hero:not([hidden]):not(.out)) #core-nav { background: rgba(2, 5, 11, .94); }
}
@media (max-width: 860px) {
  body.earth:has(#ea-hero:not([hidden]):not(.out)) .ea-city-pin { display: none; }
}
