/* Firm primary palette — Orbit cool-mist (marketing + panels).
   Marketing CSS uses --firm-* (and --proto-* aliases). Panel tokens in
   mcp_service/panels_assets/panel.css keep the same ink/ground values. */
:root{
  --firm-ink:#0B1220;
  --firm-ink-soft:rgba(11,18,32,0.62);
  --firm-ink-mute:rgba(11,18,32,0.48);
  --firm-line:rgba(11,18,32,0.08);
  --firm-line-strong:rgba(11,18,32,0.14);
  --firm-ground:#F3F5F8;
  --firm-ground-2:#EEF2F6;
  --firm-on-ink:#F3F6FA;
  --firm-mist:rgba(186,198,214,0.55);
  --firm-mist-2:rgba(210,220,232,0.4);
  --firm-glass:rgba(255,255,255,0.62);
  --firm-glass-strong:rgba(255,255,255,0.82);
  --firm-ease:cubic-bezier(.16,1,.3,1);
  --firm-font-sans:Archivo,Helvetica,sans-serif;
  --firm-font-mono:'IBM Plex Mono',monospace;
  /* Orbit page aliases — same values, existing selectors keep working */
  --proto-ink:var(--firm-ink);
  --proto-ink-soft:var(--firm-ink-soft);
  --proto-ink-mute:var(--firm-ink-mute);
  --proto-line:var(--firm-line);
  --proto-line-strong:var(--firm-line-strong);
  --proto-ground:var(--firm-ground);
  --proto-ground-2:var(--firm-ground-2);
  --proto-on-ink:var(--firm-on-ink);
  --proto-mist:var(--firm-mist);
  --proto-mist-2:var(--firm-mist-2);
  --proto-glass:var(--firm-glass);
  --proto-glass-strong:var(--firm-glass-strong);
  --proto-ease:var(--firm-ease);
}
/* —— Interactive orbit hero (prototype) ——
   Light ground + mist atmosphere; full-viewport hero layout */
.orbit-hero{
  position:relative;box-sizing:border-box;color:var(--proto-ink);
  background:
    radial-gradient(circle at 1px 1px, rgba(11,18,32,0.04) 1px, transparent 0) 0 0 / 22px 22px,
    var(--proto-ground);
  padding:clamp(28px,4vw,48px) clamp(20px,4vw,56px) clamp(28px,4vw,48px);
  overflow:hidden;
}
.orbit-hero strong,.orbit-hero b{font-weight:400}
.orbit-hero--full{
  flex:1 1 auto;
  display:flex;
  flex-direction:column;
  min-height:0;
  padding-top:clamp(18px,2.4vw,28px);
  padding-bottom:clamp(12px,2vw,22px);
}
.orbit-hero::before,
.orbit-hero::after{
  content:"";position:absolute;pointer-events:none;z-index:0;border-radius:50%;
  filter:blur(10px);
}
.orbit-hero::before{
  width:min(980px,130vw);height:min(980px,130vw);
  left:42%;top:0;transform:translate(-50%,-12%);
  background:radial-gradient(circle at 45% 40%,
    rgba(220,226,234,0.7) 0%,
    rgba(236,240,245,0.4) 36%,
    rgba(243,245,248,0) 70%);
}
.orbit-hero::after{
  width:min(820px,100vw);height:min(820px,100vw);
  right:-12%;top:6%;
  background:radial-gradient(circle at 40% 45%,
    rgba(170,186,208,0.42) 0%,
    rgba(210,220,232,0.22) 40%,
    rgba(243,245,248,0) 72%);
}
.orbit-hero-grid{display:none}
.orbit-hero-inner{
  position:relative;z-index:1;
  width:100%;max-width:1480px;margin:0 auto;
  display:grid;
  grid-template-columns:minmax(300px,0.92fr) minmax(0,1.2fr);
  gap:clamp(28px,4vw,56px);
  align-items:center;
  flex:1 1 auto;
  min-height:0;
}

/* —— Left copy column (modern hero stack) —— */
.orbit-copy{
  padding-top:0;
  display:flex;
  flex-direction:column;
  gap:clamp(14px,1.6vw,18px);
  width:100%;
  max-width:560px;
  min-width:0;
  container-type:inline-size;
}
.orbit-eyebrow{
  font-family:'IBM Plex Mono',monospace;
  font-size:11px;letter-spacing:0.14em;
  color:rgba(11,18,32,0.48);
}
.orbit-copy h1{
  margin:0;
  font-size:clamp(32px,10cqw,56px);
  font-weight:400;
  line-height:1.15;
  letter-spacing:-0.035em;
  text-wrap:balance;
  color:var(--proto-ink);
}
.orbit-copy .lead{
  margin:0;
  max-width:34em;
  font-size:clamp(16px,1.35vw,18px);
  line-height:1.45;
  letter-spacing:-0.01em;
  color:rgba(11,18,32,0.62);
  font-weight:400;
}
.orbit-copy .body{
  margin:0;
  max-width:36em;
  font-size:15.5px;
  line-height:1.55;
  color:rgba(11,18,32,0.58);
}

/* Feature cards */
.orbit-features{
  margin:4px 0 0;padding:0;list-style:none;
  display:flex;flex-direction:column;gap:10px;
  max-width:520px;
}
.orbit-features li{
  display:flex;align-items:flex-start;gap:12px;
  padding:12px 14px;
  background:rgba(255,255,255,0.72);
  border:1px solid rgba(11,18,32,0.08);
  border-radius:14px;
  box-shadow:0 1px 0 rgba(255,255,255,0.8) inset;
}
.orbit-feature-icon{
  flex:none;
  width:36px;height:36px;
  display:inline-flex;align-items:center;justify-content:center;
  border-radius:999px;
  background:var(--proto-ground-2);
  color:var(--proto-ink);
}
.orbit-features strong{
  display:block;
  font-size:14.5px;font-weight:400;line-height:1.25;
  color:var(--proto-ink);margin-bottom:2px;
}
.orbit-features span:not(.orbit-feature-icon){
  display:block;
  font-size:13.5px;line-height:1.4;
  color:rgba(11,18,32,0.58);
}

/* Legacy list (landing embed) */
.orbit-copy ul:not(.orbit-features){margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px;max-width:560px}
.orbit-copy ul:not(.orbit-features) li{font-size:15.5px;line-height:1.5;color:rgba(11,18,32,0.82);padding-left:14px;border-left:3px solid var(--proto-ink)}
.orbit-copy ul:not(.orbit-features) li strong{font-weight:400;color:var(--proto-ink)}

.orbit-ctas{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:6px}
.orbit-cta-primary,
.orbit-cta-secondary{
  display:inline-flex;align-items:center;gap:8px;
  padding:14px 22px;border-radius:999px;
  font-weight:400;font-size:14.5px;line-height:1.2;
  white-space:nowrap;text-decoration:none;
  transition:transform .15s ease, background .15s ease, border-color .15s ease;
}
.orbit-cta-primary{background:var(--proto-ink);color:var(--proto-on-ink);border:1px solid var(--proto-ink)}
.orbit-cta-primary:hover{background:#1c2430}
.orbit-cta-secondary{
  background:rgba(255,255,255,0.85);
  color:var(--proto-ink);
  border:1px solid rgba(11,18,32,0.16);
}
.orbit-cta-secondary:hover{border-color:rgba(11,18,32,0.32);background:#fff}

.orbit-metrics{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px 18px;
  margin-top:10px;
  padding-top:18px;
  border-top:1px solid rgba(11,18,32,0.1);
  max-width:520px;
}
.orbit-metric-value,.orbit-metric-label{
  font-size:12px;
  font-weight:400;
  line-height:1.35;
  color:rgba(11,18,32,0.5);
}
.orbit-metric-label{margin-top:4px}

.orbit-trust{display:flex;flex-wrap:wrap;gap:12px 24px;border-top:1px solid rgba(11,18,32,0.12);border-bottom:1px solid rgba(11,18,32,0.12);padding:14px 0;margin-top:4px}
.orbit-trust span{font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:0.14em;color:var(--proto-ink);white-space:nowrap}
.orbit-trust span:nth-child(even){color:#6B7C8F}

/* —— Right orbit visual (full hero scale) —— */
.orbit-visual{
  min-width:0;min-height:0;
  height:100%;
  display:flex;align-items:center;justify-content:center;
}
.orbit-visual-frame{
  width:100%;
  max-width:min(100%,780px);
  aspect-ratio:1/1;
  box-sizing:border-box;
  padding:clamp(10px,1.4vw,18px);
  background:rgba(255,255,255,0.55);
  border:1px solid rgba(11,18,32,0.08);
  border-radius:28px;
  box-shadow:
    0 1px 0 rgba(255,255,255,0.9) inset,
    0 28px 70px rgba(11,18,32,0.1);
  backdrop-filter:blur(8px);
}
#orbit-stage{
  position:relative;
  width:100%;height:100%;
  max-width:none;margin:0;
}
.orbit-stage{
  position:relative;
  width:100%;height:100%;
  max-width:none;
  aspect-ratio:auto;
  touch-action:manipulation;
}
.orbit-diagram-frame{
  position:relative;width:100%;max-width:780px;margin:0 0 0 auto;aspect-ratio:1/1;
}
.orbit-diagram-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;background:transparent}
.orbit-frame{position:absolute;inset:0;overflow:hidden}
.orbit-drift{position:absolute;left:0;top:0;width:760px;height:760px;transform-origin:top left}
.orbit-rings,.orbit-paths{position:absolute;left:0;top:0;width:760px;height:760px;overflow:visible;pointer-events:none}
.orbit-nodes{position:absolute;left:0;top:0;width:760px;height:760px;pointer-events:none}
.orbit-tool,.orbit-model{pointer-events:auto}
.orbit-tool,.orbit-model{position:absolute;appearance:none;border:0;cursor:pointer;padding:0;font:inherit;color:inherit;z-index:2;transition:opacity .28s ease,filter .28s ease}
.orbit-tool{display:flex;flex-direction:column;align-items:center;gap:6px;width:76px;margin:0;background:transparent;transform:translate(-50%,-50%)}
.orbit-tool-label{font-size:10px;line-height:1.2;color:rgba(11,18,32,0.72);text-align:center;max-width:76px}
.orbit-tool-rec{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:rgba(255,255,255,0.88);border:1px solid rgba(11,18,32,0.1);border-radius:8px;box-sizing:border-box}
.orbit-model{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:6px 12px 6px 8px;background:rgba(255,255,255,0.9);border:1px solid rgba(11,18,32,0.1);border-radius:999px;font-size:12.5px;line-height:1.2;white-space:nowrap;box-sizing:border-box;transform:translate(-50%,-50%);z-index:3}
.orbit-model img{display:block;width:18px;height:18px;flex:none}
.orbit-agent{
  position:absolute;z-index:6;pointer-events:none;
  left:50%;top:50%;
  transform:translate(-50%,-50%) scale(0.92);
  display:flex;flex-direction:column;align-items:center;gap:2px;
  padding:8px 14px;
  background:rgba(255,255,255,0.96);
  border:1px solid rgba(11,18,32,0.16);
  border-radius:999px;
  box-shadow:0 8px 24px rgba(11,18,32,0.1);
  text-align:center;box-sizing:border-box;
  opacity:0;
  visibility:hidden;
  transition:
    left .45s cubic-bezier(.22,1,.36,1),
    top .45s cubic-bezier(.22,1,.36,1),
    opacity .25s ease,
    transform .28s ease,
    border-color .28s ease,
    box-shadow .28s ease,
    visibility 0s linear .25s;
}
.orbit-agent.is-active{
  opacity:1;
  visibility:visible;
  transform:translate(-50%,-50%) scale(1);
  border-color:var(--proto-ink);
  box-shadow:0 0 0 2px rgba(11,18,32,.12), 0 10px 28px rgba(11,18,32,0.1);
  transition:
    left .45s cubic-bezier(.22,1,.36,1),
    top .45s cubic-bezier(.22,1,.36,1),
    opacity .2s ease,
    transform .28s ease,
    border-color .28s ease,
    box-shadow .28s ease,
    visibility 0s;
}
.orbit-agent-label{font-size:12.5px;line-height:1.2;letter-spacing:-0.01em;color:var(--proto-ink)}
.orbit-agent-sub{font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:0.06em;color:rgba(11,18,32,0.5)}
.orbit-stage.has-agent-badge .orbit-agent-ring-label{opacity:0.18}
.orbit-agent-ring-label{transition:opacity .3s ease}
.orbit-hub{position:absolute;left:50%;top:50%;width:156px;height:156px;margin:-78px 0 0 -78px;border-radius:50%;background:var(--proto-ink);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;padding:14px;box-sizing:border-box;z-index:5;pointer-events:none}
.orbit-hub-kicker{font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:0.12em;color:#9BB0C6}
.orbit-hub-copy{font-size:12.5px;line-height:1.3;color:var(--proto-on-ink)}
.orbit-hub-glow{animation:hubGlow 4.5s ease-in-out infinite}
@keyframes hubGlow{0%,100%{opacity:.55}50%{opacity:1}}
.orbit-trace{transition:opacity .2s ease,stroke-dashoffset .7s cubic-bezier(.22,1,.36,1)}
.orbit-pulse{offset-distance:0%;offset-rotate:0deg}
.orbit-pulse.is-running{animation:orbitPulse 1.1s linear infinite}
@keyframes orbitPulse{from{offset-distance:0%}to{offset-distance:100%}}
.orbit-stage.is-tracing .orbit-tool.is-active{z-index:6;transform:translate(-50%,-50%) scale(1.08)}
.orbit-stage.is-tracing .orbit-model.is-active{border-color:var(--proto-ink);box-shadow:0 0 0 2px rgba(11,18,32,.16);z-index:6}
.orbit-caption{position:absolute;left:50%;bottom:72px;transform:translateX(-50%);width:min(340px,86%);padding:12px 14px;background:rgba(11,18,32,.94);color:var(--proto-on-ink);border-radius:12px;z-index:8;pointer-events:none;opacity:.92;transition:opacity .25s ease,transform .25s ease}
.orbit-caption.is-active{opacity:1;transform:translateX(-50%) translateY(-2px)}
.orbit-caption-kicker{font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.1em;color:#9BB0C6;margin-bottom:6px}
.orbit-caption-body{font-size:13px;line-height:1.45}
.orbit-legend{position:absolute;left:18px;bottom:18px;width:196px;display:flex;flex-direction:column;gap:5px;padding:9px 12px;background:rgba(255,255,255,0.92);border:1px solid rgba(11,18,32,.1);border-radius:14px;box-sizing:border-box;z-index:7;font-size:11px;line-height:1.2;color:rgba(11,18,32,.7)}
.orbit-legend-title{font-size:12px;color:var(--proto-ink)}
.orbit-legend-row{display:flex;align-items:center;gap:7px}
.orbit-legend-dot{
  width:7px;height:7px;border-radius:50%;flex:none;
  background:var(--proto-ink);opacity:0.45;
}
.orbit-hint{position:absolute;right:18px;top:12px;display:inline-flex;align-items:center;gap:8px;padding:6px 10px;background:rgba(255,255,255,.88);border:1px solid rgba(11,18,32,.1);border-radius:999px;font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.06em;color:rgba(11,18,32,.7);z-index:7}
.orbit-hint-dot{width:7px;height:7px;border-radius:50%;background:var(--proto-ink);box-shadow:0 0 0 3px rgba(11,18,32,.12);flex:none}

@media (max-width:1100px){
  .orbit-hero-inner{grid-template-columns:minmax(280px,0.95fr) minmax(0,1.05fr);gap:28px}
  .orbit-visual-frame{max-width:min(100%,640px)}
}
@media (max-width:980px){
  .orbit-hero--full{flex:none;min-height:auto}
  .orbit-hero-inner{grid-template-columns:1fr;align-items:start}
  .orbit-copy{max-width:640px;margin:0 auto}
  .orbit-visual{width:100%}
  .orbit-visual-frame,.orbit-diagram-frame,#orbit-stage{max-width:560px;margin:0 auto}
  .orbit-hint{display:none}
  .orbit-legend{left:8px;bottom:8px;transform:scale(.92);transform-origin:left bottom}
  .orbit-caption{bottom:56px}
  .orbit-metrics{grid-template-columns:1fr 1fr 1fr}
}
@media (max-width:640px){
  .orbit-cta-primary,.orbit-cta-secondary{width:100%;justify-content:center;white-space:normal;text-align:center}
  .orbit-metrics{display:none}
  .orbit-visual-frame{max-width:100%;border-radius:20px}
  .orbit-model{font-size:11px;padding:5px 8px 5px 6px}
  .orbit-tool-label{font-size:9px}
  .orbit-hub{width:120px;height:120px;margin:-60px 0 0 -60px;padding:10px}
  .orbit-hub-copy{font-size:11px}
  .orbit-caption{width:min(300px,90%);font-size:12px}
  .orbit-legend{display:none}
}
@media (prefers-reduced-motion:reduce){
  .orbit-hub-glow,.orbit-pulse.is-running{animation:none !important}
}

/* iframe diagram surface */
html.orbit-frame-page, body.orbit-frame-page{margin:0;background:transparent}
body.orbit-frame-page #orbit-stage{width:100vw;height:100vh;max-width:none}
body.orbit-frame-page .orbit-stage{max-width:none;width:100%;height:100%}
