/* ============ The Boreon MCP section · mcp.css ============
   Loaded on /mcp and its twelve pages, and on home for the showcase. Tokens only, so every
   one of the twelve themes inks it. Color comes from the theme's own accent (aurora panels,
   glow sections, the accent band); the three platform inks (Tableau #4E79A7, Databricks
   #FF3621, Snowflake #29B5E8) mark diagrams and routes only, and only on color themes, going
   mono on Mono and Daylight exactly as the photographs do (owner, 2026-09-26).
   Motion only under html[data-motion=on]; reduced motion gets every finished state at once
   (the global block in site.css zeroes every duration). No glass, no gradient text, no
   monospace: the one Helvetica stack throughout. Corners stay on the 3 / 4 / 6px ladder. */

/* ── Scope: platform inks, status inks, and Daylight's navy panels ── */
.mcp-page,.mcp-show,.mcp-inks{--ink-tab:var(--fg-muted);--ink-dbx:var(--fg-muted);--ink-snow:var(--fg-muted);
  --ink-acc:var(--accent-text);--ink-mute:var(--line-edge);--ok:#7ED9A2;--bad:#F9B4B4}
html.theme-color .mcp-page,html.theme-color .mcp-show,html.theme-color .mcp-inks{--ink-tab:#4E79A7;--ink-dbx:#FF3621;--ink-snow:#29B5E8}
[data-theme="light"] .mcp-page{--ok:#085942;--bad:#8F1F2B}
/* Daylight keeps panels as the navy instrument; MCP components on them take its ink. The
   home showcase is always a dark stage, so it takes the same ink on Daylight. */
[data-theme="light"] .mcp-page .v2-section--panel,[data-theme="light"] .mcp-show{--fg:#F2F5FA;--fg-body:#C9D0E0;--fg-muted:#A6B0CC;
  --fg-subtle:#9FA7BF;--bg-tint:#111829;--card-flat:#101524;--bg-elev:#141A2C;--accent-soft:rgba(156,195,255,.12);
  --accent-text:#9CC3FF;--line:rgba(255,255,255,.14);--line-strong:rgba(255,255,255,.26);--line-edge:rgba(255,255,255,.38);
  --card:linear-gradient(180deg,#141A2C 0%,#101524 100%);--ok:#7ED9A2;--bad:#F9B4B4;color:#A6B0CC}

/* ── Colored sections ── */
/* The aurora panel: the deep instrument ground with two slow accent lights drifting in it. */
.mcp-aurora{overflow:hidden}
.mcp-aurora::after{content:'';position:absolute;inset:-25% -15%;z-index:-1;pointer-events:none;
  background:radial-gradient(38% 46% at 16% 18%,color-mix(in srgb,var(--accent) 24%,transparent),transparent 70%),
    radial-gradient(34% 44% at 86% 74%,color-mix(in srgb,var(--accent-strong) 20%,transparent),transparent 70%);opacity:.6}
html[data-motion='on'] .mcp-aurora::after{animation:mcp-drift 28s ease-in-out infinite alternate}
@keyframes mcp-drift{to{transform:translate3d(5%,-4%,0) scale(1.08)}}
/* The glow section: the tint ground lit from one corner by the accent. */
.mcp-glow{position:relative;isolation:isolate;background:var(--bg-tint)}
.mcp-glow::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(55% 75% at 100% 0%,color-mix(in srgb,var(--accent) 17%,transparent),transparent 62%),
    radial-gradient(45% 65% at 0% 100%,color-mix(in srgb,var(--accent) 9%,transparent),transparent 62%)}

/* The real portal, framed as a window (Tableau page); a click opens it in the lightbox. */
.mcp-shotwin{margin:0;border:var(--rule-strong);border-radius:var(--card-r);overflow:hidden;background:#0B1F8C;
  box-shadow:0 28px 60px -34px color-mix(in srgb,var(--accent) 60%,transparent)}
.mcp-shotwin img{display:block;inline-size:100%;block-size:auto;border:0;border-radius:0;cursor:zoom-in}
html[data-motion='on'] .v2-reveal .mcp-shotwin img{transform:scale(1.04);transition:transform 1.8s var(--ease-out) .1s}
html[data-motion='on'] .v2-reveal.is-in .mcp-shotwin img{transform:none}

/* The overview's portal section: centred head, the real UI large beneath it. */
.mcp-uisec__head{text-align:center;margin-inline:auto;max-inline-size:44rem}
.mcp-uisec__head .v2-lede{margin-inline:auto}
.mcp-shotwin--wide{max-inline-size:68rem;margin-inline:auto}
.mcp-shotwin .mcp-win__title{min-inline-size:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mcp-uisec__cta{justify-content:center;margin-block-start:clamp(1.5rem,3vw,2.25rem)}

/* ── Hero ── */
.mcp-eyebrow{display:flex;align-items:center;flex-wrap:wrap;gap:.65rem;margin:0 0 clamp(1rem,2vw,1.5rem);
  font-size:var(--fs-eyebrow);font-weight:700;letter-spacing:var(--track-eyebrow);text-transform:uppercase;color:var(--fg-subtle)}
.mcp-eyebrow__mark{flex:0 0 auto;inline-size:1.95em;block-size:auto;color:var(--accent-text)}
.mcp-hero__note{margin-block-start:clamp(1.1rem,2.2vw,1.6rem)}
.mcp-heroart{position:relative;margin:0;border:var(--rule);border-radius:var(--card-r);overflow:hidden;background:#040509}
.mcp-heroart img{display:block;inline-size:100%;block-size:auto}
html[data-motion='on'] .v2-reveal .mcp-heroart img{transform:scale(1.06);transition:transform 2.2s var(--ease-out) .15s}
html[data-motion='on'] .v2-reveal.is-in .mcp-heroart img{transform:none}
.mcp-kicker{display:flex;align-items:center;gap:.5rem;margin:0 0 .9rem;font-size:var(--fs-eyebrow);font-weight:700;
  letter-spacing:var(--track-eyebrow);text-transform:uppercase;color:var(--accent-text)}
.mcp-sechead{margin-block-end:clamp(1.6rem,3vw,2.5rem)}

/* ── Icons ── */
.mcp-ico{flex:0 0 auto;inline-size:1.5rem;block-size:1.5rem}
.mcp-ico--sm{inline-size:1.05rem;block-size:1.05rem}
.mcp-ico .i-dots{stroke-width:2.4}
/* A little life on hover: each icon does the thing it stands for. */
@media (hover:hover) and (pointer:fine){
  html[data-motion='on'] :is(.mcp-tile,.mcp-numbered__i,.mcp-tnode,.mcp-explore__g):hover .mcp-ico--chat .i-dots{animation:mcp-dots .9s var(--ease-out)}
  html[data-motion='on'] :is(.mcp-tile,.mcp-numbered__i,.mcp-tnode,.mcp-explore__g):hover .mcp-ico--gauge .i-needle{transform-origin:12px 16px;animation:mcp-needle .9s var(--ease-snap)}
  html[data-motion='on'] :is(.mcp-tile,.mcp-numbered__i,.mcp-tnode,.mcp-explore__g):hover :is(.mcp-ico--check,.mcp-ico--shield) .i-tick{stroke-dasharray:14;animation:mcp-draw .6s var(--ease-out)}
  html[data-motion='on'] :is(.mcp-tile,.mcp-numbered__i,.mcp-tnode,.mcp-explore__g):hover .mcp-ico--layers .i-l2{animation:mcp-lift .7s var(--ease-snap)}
  html[data-motion='on'] :is(.mcp-tile,.mcp-numbered__i,.mcp-tnode,.mcp-explore__g):hover .mcp-ico--layers .i-l3{animation:mcp-lift .7s var(--ease-snap) .08s}
  html[data-motion='on'] :is(.mcp-tile,.mcp-numbered__i,.mcp-tnode,.mcp-explore__g):hover .mcp-ico--move .i-head{animation:mcp-nudge .6s var(--ease-snap)}
  html[data-motion='on'] :is(.mcp-tile,.mcp-numbered__i,.mcp-tnode,.mcp-explore__g):hover .mcp-ico--pulse .i-trace{stroke-dasharray:40;animation:mcp-trace 1s linear}
  html[data-motion='on'] :is(.mcp-tile,.mcp-numbered__i,.mcp-tnode,.mcp-explore__g):hover .mcp-ico--publish .i-rise{animation:mcp-rise .6s var(--ease-snap)}
  html[data-motion='on'] :is(.mcp-tile,.mcp-numbered__i,.mcp-tnode,.mcp-explore__g):hover .mcp-ico--clock .i-hand{transform-origin:12px 12px;animation:mcp-spin 1s var(--ease-out)}
  html[data-motion='on'] :is(.mcp-tile,.mcp-numbered__i,.mcp-tnode,.mcp-explore__g):hover .mcp-ico--spark{animation:mcp-twirl .8s var(--ease-snap)}
  html[data-motion='on'] :is(.mcp-tile,.mcp-numbered__i,.mcp-tnode,.mcp-explore__g):hover .mcp-ico--lock .i-shackle{animation:mcp-shackle .7s var(--ease-snap)}
  html[data-motion='on'] :is(.mcp-tile,.mcp-numbered__i,.mcp-tnode,.mcp-explore__g):hover .mcp-ico--view .i-pupil{animation:mcp-look 1s var(--ease-snap)}
  html[data-motion='on'] :is(.mcp-tile,.mcp-numbered__i,.mcp-tnode,.mcp-explore__g):hover .mcp-ico--logs .i-blip{animation:mcp-blip .8s var(--ease-out)}
  html[data-motion='on'] :is(.mcp-tile,.mcp-numbered__i,.mcp-tnode,.mcp-explore__g):hover .mcp-ico--target .i-bull{animation:mcp-blip .8s var(--ease-out)}
}
@keyframes mcp-dots{30%{transform:translateY(-1.5px)}60%{transform:translateY(1px)}}
@keyframes mcp-needle{0%{transform:rotate(0)}40%{transform:rotate(-70deg)}70%{transform:rotate(12deg)}100%{transform:rotate(0)}}
@keyframes mcp-draw{from{stroke-dashoffset:14}to{stroke-dashoffset:0}}
@keyframes mcp-lift{40%{transform:translateY(-1.5px)}}
@keyframes mcp-nudge{40%{transform:translateX(2.5px)}}
@keyframes mcp-trace{from{stroke-dashoffset:40}to{stroke-dashoffset:0}}
@keyframes mcp-rise{40%{transform:translateY(-2.5px)}}
@keyframes mcp-spin{to{transform:rotate(360deg)}}
@keyframes mcp-twirl{50%{transform:rotate(45deg) scale(1.15)}}
@keyframes mcp-shackle{35%{transform:translateY(-2px)}}
@keyframes mcp-look{30%{transform:translateX(-1.5px)}65%{transform:translateX(1.5px)}}
@keyframes mcp-blip{40%{transform:scale(1.5);transform-origin:center;transform-box:fill-box}}

/* ── Platform dots ── */
.mcp-dot{display:inline-block;flex:0 0 auto;inline-size:.58rem;block-size:.58rem;margin-inline-end:.45rem;border-radius:2px;
  background:var(--ink-acc);vertical-align:.06em}
.mcp-dot--tab{background:var(--ink-tab)}.mcp-dot--dbx{background:var(--ink-dbx)}.mcp-dot--snow{background:var(--ink-snow)}

/* ── The two routes (migrations hero) ── */
.mcp-routes{list-style:none;margin:0;padding:0;display:grid;gap:clamp(1.25rem,2.4vw,2rem)}
.mcp-routes__a{display:grid;gap:.45rem;padding-block-start:1rem;border-top:var(--rule-strong);text-decoration:none;color:inherit}
.mcp-routes__k{font-size:var(--fs-eyebrow);font-weight:700;letter-spacing:var(--track-eyebrow);text-transform:uppercase;color:var(--fg-subtle)}
.mcp-routes__v{display:flex;flex-wrap:wrap;align-items:center;gap:0 .35em;font-size:clamp(1.5rem,1.05rem + 1.35vw,2.35rem);
  font-weight:600;line-height:1.08;letter-spacing:-.03em;color:var(--fg);transition:color var(--micro) var(--ease-out)}
.mcp-routes__pl{white-space:nowrap}
.mcp-routes__a--lift .mcp-routes__v{font-size:clamp(1.3rem,.95rem + 1.05vw,1.95rem)}
.mcp-routes__v .mcp-dot{inline-size:.42em;block-size:.42em;margin-inline-end:.18em}
.mcp-routes__arrow{position:relative;display:inline-block;inline-size:1.5em;block-size:.1em;min-block-size:1.5px;margin-inline:.12em .2em;background:currentColor;color:var(--accent-text);transition:transform var(--micro) var(--ease-out)}
.mcp-routes__arrow::after{content:'';position:absolute;inset-inline-end:0;inset-block-start:50%;inline-size:.3em;block-size:.3em;border-block-start:max(.1em,1.5px) solid;border-inline-end:max(.1em,1.5px) solid;transform:translateY(-50%) rotate(45deg)}
/* a dot in the destination's ink runs the track three times after the hero arrives, then fades at the tip */
.mcp-routes__arrow i{position:absolute;inset:0;transform:translateX(100%);opacity:0}
.mcp-routes__arrow i::before{content:'';position:absolute;inset-inline-start:-.13em;inset-block-start:50%;inline-size:.26em;block-size:.26em;margin-block-start:-.13em;border-radius:50%;background:var(--ink-dbx)}
.mcp-routes__a--snow .mcp-routes__arrow i::before{background:var(--ink-snow)}
html[data-motion='on'] .v2-reveal.is-in .mcp-routes__arrow i{animation:mcp-run 1.5s linear .7s 3 both}
html[data-motion='on'] .v2-reveal.is-in .mcp-routes li + li .mcp-routes__arrow:not(.mcp-routes__arrow--both) i{animation-delay:1s}
@keyframes mcp-run{0%{transform:none;opacity:0}10%{opacity:1}86%{opacity:1}100%{transform:translateX(100%);opacity:0}}
.mcp-routes__d{font-size:.95rem;font-weight:600;color:var(--fg-body)}
.mcp-routes__a:hover .mcp-routes__v{color:var(--accent-text)}
@media (hover:hover) and (pointer:fine){.mcp-routes__a:hover .mcp-routes__arrow{transform:translateX(5px)}}
.mcp-routes__a:focus-visible{outline:3px solid var(--accent);outline-offset:4px;border-radius:var(--r-sm)}

/* ── The delivery band: the accent owns it ── */
.mcp-deliver{position:relative;isolation:isolate;overflow:hidden;background:var(--band-grad);color:#fff;
  --accent-text:#fff;--line-strong:rgba(255,255,255,.35);--fg:#fff;--fg-muted:rgba(255,255,255,.86);--bg:transparent}
.mcp-deliver::after{content:'';position:absolute;inset:auto -10% -60% 40%;block-size:140%;z-index:-1;pointer-events:none;
  background:radial-gradient(closest-side,rgba(255,255,255,.12),transparent)}
.mcp-deliver .v2-h2{color:#fff}
.mcp-deliver .v2-lede{color:rgba(255,255,255,.9);max-inline-size:40rem}
.mcp-deliver__head{margin-block-end:clamp(2rem,4vw,3rem)}
.mcp-deliver__keep{list-style:none;margin:clamp(2rem,4vw,2.75rem) 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.6rem}
.mcp-deliver__keep li{display:inline-flex;align-items:center;gap:.55rem;padding:.55rem .95rem;border:1px solid rgba(255,255,255,.3);
  border-radius:var(--r-pill);font-size:.92rem;font-weight:600;color:#fff}
.mcp-deliver__more{display:inline-block;margin-block-start:1.5rem;font-size:var(--fs-sm);font-weight:700;color:#fff;text-decoration:none;
  padding:.4rem .1rem;border-block-end:2px solid rgba(255,255,255,.45);transition:border-color var(--micro) var(--ease-out)}
.mcp-deliver__more:hover{border-block-end-color:#fff}
.mcp-deliver__more:focus-visible{outline:3px solid #fff;outline-offset:3px;border-radius:3px}

/* ── The promise track (inside the delivery band) ── */
.mcp-promise{--pgap:clamp(1rem,2.5vw,2rem);list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--pgap)}
.mcp-promise__stop{position:relative;display:grid;align-content:start;gap:.25rem;padding-block-start:1.6rem}
.mcp-promise__dot{position:absolute;inset-inline-start:0;inset-block-start:0;z-index:1;inline-size:14px;block-size:14px;border-radius:50%;
  background:transparent;border:2px solid var(--accent-text)}
.mcp-promise__stop--live .mcp-promise__dot{background:var(--accent-text);box-shadow:0 0 0 6px rgba(255,255,255,.14)}
.mcp-promise__stop:not(:last-child)::before,.mcp-promise__stop:not(:last-child)::after{content:'';position:absolute;inset-block-start:6px;block-size:2px;
  inset-inline-start:16px;inset-inline-end:calc(2px - var(--pgap))}
.mcp-promise__stop:not(:last-child)::before{background:var(--line-strong)}
.mcp-promise__stop:not(:last-child)::after{background:var(--accent-text);transform-origin:0 50%}
html[data-motion='on'] .v2-reveal .mcp-promise__stop::after{transform:scaleX(0);transition:transform .8s var(--ease-out) calc(.35s + var(--i,0) * .45s)}
html[data-motion='on'] .v2-reveal.is-in .mcp-promise__stop::after{transform:none}
/* Go live: the dot throws six sparks, once. */
.mcp-promise__dot i{position:absolute;left:50%;top:50%;inline-size:4px;block-size:4px;margin:-2px 0 0 -2px;border-radius:50%;background:#fff;opacity:0}
html[data-motion='on'] .v2-reveal.is-in .mcp-promise__stop--live .mcp-promise__dot i{animation:mcp-burst .9s var(--ease-out) 1.9s both}
.mcp-promise__dot i:nth-child(1){--a:0deg}.mcp-promise__dot i:nth-child(2){--a:60deg}.mcp-promise__dot i:nth-child(3){--a:120deg}
.mcp-promise__dot i:nth-child(4){--a:180deg}.mcp-promise__dot i:nth-child(5){--a:240deg}.mcp-promise__dot i:nth-child(6){--a:300deg}
@keyframes mcp-burst{0%{opacity:1;transform:rotate(var(--a)) translateY(0)}100%{opacity:0;transform:rotate(var(--a)) translateY(-18px)}}
.mcp-promise__v{font-size:clamp(1.6rem,1.15rem + 1.5vw,2.6rem);font-weight:600;line-height:1.05;letter-spacing:-.025em;color:#fff;font-variant-numeric:tabular-nums}
.mcp-promise__l{font-size:var(--fs-sm);font-weight:600;line-height:1.4;color:rgba(255,255,255,.86)}
@media (max-width:40rem){
  .mcp-promise{grid-template-columns:minmax(0,1fr);--pgap:1.2rem}
  .mcp-promise__stop{padding:0 0 0 1.9rem}
  .mcp-promise__dot{inset-block-start:.4rem}
  .mcp-promise__stop:not(:last-child)::before,.mcp-promise__stop:not(:last-child)::after{inset-inline:6px auto;inline-size:2px;block-size:auto;
    inset-block-start:calc(.4rem + 16px);inset-block-end:calc(2px - var(--pgap) - .4rem)}
  .mcp-promise__stop:not(:last-child)::after{transform-origin:50% 0}
  html[data-motion='on'] .v2-reveal .mcp-promise__stop::after{transform:scaleY(0)}
}

/* ── The campaign art band ── */
.mcp-artband{position:relative;margin:0;border:var(--rule);border-radius:var(--card-r);overflow:hidden;background:#040a1f;isolation:isolate}
.mcp-artband__pic{position:relative;overflow:hidden}
.mcp-artband img{display:block;inline-size:100%;block-size:auto;aspect-ratio:2400 / 1018}
html[data-motion='on'] .v2-reveal .mcp-artband img{transform:scale(1.05);transition:transform 2.2s var(--ease-out) .1s}
html[data-motion='on'] .v2-reveal.is-in .mcp-artband img{transform:none}
.mcp-artband__pic::after{content:'';position:absolute;left:50%;top:50%;inline-size:16px;block-size:16px;margin:-8px 0 0 -8px;
  border-radius:50%;box-shadow:0 0 0 1px rgba(255,255,255,.6);opacity:0;pointer-events:none}
html[data-motion='on'] .v2-reveal.is-in .mcp-artband__pic::after{animation:mcp-ping 3.2s var(--ease-out) 1.4s 3}
@keyframes mcp-ping{0%{opacity:.9;transform:scale(1)}70%,100%{opacity:0;transform:scale(8)}}
.mcp-artband__labels{position:absolute;inset:0;pointer-events:none}
.mcp-artband__l{position:absolute;display:grid;gap:.22rem;max-inline-size:17rem;color:#fff;text-shadow:0 1px 14px rgba(2,6,20,.8)}
.mcp-artband__l b{font-size:clamp(.92rem,.72rem + .62vw,1.18rem);font-weight:700;letter-spacing:-.005em}
.mcp-artband__l small{font-size:clamp(.74rem,.68rem + .24vw,.88rem);font-weight:500;line-height:1.4;color:rgba(255,255,255,.86)}
.mcp-artband__l--src{inset-inline-start:3.2%;inset-block-end:10%}
.mcp-artband__l--core{left:50%;top:61%;transform:translateX(-50%);text-align:center;justify-items:center}
.mcp-artband__l--dst{inset-inline-end:3.2%;inset-block-end:10%;text-align:end;justify-items:end}
@media (max-width:52rem){
  .mcp-artband__labels{position:static;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem;padding:.95rem 1.05rem;
    background:#040a1f;border-top:1px solid rgba(255,255,255,.12)}
  .mcp-artband__l{position:static;transform:none;text-align:start;justify-items:start;max-inline-size:none;text-shadow:none}
}
@media (max-width:30rem){.mcp-artband__labels{grid-template-columns:minmax(0,1fr)}}

/* ── Wires: the canvas behind every diagram, its labels on top ── */
.mcp-wires{position:relative}
.mcp-wires__cv{position:absolute;inset:0;inline-size:100%;block-size:100%;pointer-events:none;z-index:0}
.mcp-wires > :not(canvas):not(.mcp-wires__lbl){position:relative;z-index:1}
.mcp-wires__lbl{position:absolute;z-index:2;left:0;top:0;padding:.2rem .55rem;border:1px solid var(--line-strong);border-radius:var(--r-pill);
  background:var(--bg-panel);font-size:.66rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--fg-muted);white-space:nowrap;
  pointer-events:none;transform:translate(-50%,-50%);transition:opacity .25s var(--ease-out),color .25s var(--ease-out),border-color .25s var(--ease-out)}
.mcp-wires[data-hot] .mcp-wires__lbl:not(.is-hot){opacity:.3}
.mcp-wires__lbl.is-hot{color:var(--fg);border-color:var(--accent-text)}
.mcp-wires__lbl.is-off{visibility:hidden}
/* A label that carries its own line break (SAML 2.0 / OIDC) takes it when one line has no room
   (mcp.js tries one line first); on a phone it always does, so it fits between two cards. */
.mcp-wires__lbl.is-wrap{white-space:pre-line;text-align:center;line-height:1.3}
@media (max-width:37.5rem){.mcp-wires__lbl{white-space:pre-line;max-inline-size:5.75rem;padding:.16rem .4rem;font-size:.6rem;text-align:center;line-height:1.3}}
.mcp-wires[data-hot] [data-w]:not(.is-hot){opacity:.45}
[data-w]{transition:opacity var(--hover) var(--ease-out),border-color var(--micro) var(--ease-out),transform var(--micro) var(--ease-out)}

/* ── The flow ── */
.mcp-flow{margin-block-start:clamp(1.75rem,3.5vw,2.75rem)}
.mcp-flow__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr) minmax(0,1fr);align-items:center;gap:clamp(3rem,8vw,8rem)}
.mcp-flow__col{display:grid;gap:clamp(1rem,2.6vw,2.25rem)}
.mcp-flow__col--src{justify-items:start}
.mcp-flow__col--dst{justify-items:end}
.mcp-node{display:grid;gap:.3rem;inline-size:min(100%,17rem);text-align:start;padding:1.05rem 1.2rem;border:var(--rule-strong);border-radius:var(--card-r);
  background:var(--card);color:inherit;font:inherit;cursor:pointer}
.mcp-node__name{display:flex;align-items:center;font-size:1.15rem;font-weight:700;letter-spacing:-.01em;color:var(--fg)}
.mcp-node__d{font-size:.86rem;line-height:1.45;color:var(--fg-muted)}
.mcp-node:hover,.mcp-node.is-hot,.mcp-node[aria-pressed="true"]{border-color:var(--accent-text)}
.mcp-node[aria-pressed="true"] .mcp-node__name{color:var(--accent-text)}
.mcp-node:focus-visible,.mcp-core:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.mcp-node:active{transform:scale(.99)}
.mcp-core{position:relative;display:grid;justify-items:center;text-align:center;gap:.45rem;padding:clamp(1.5rem,3vw,2.25rem) clamp(1rem,2vw,1.5rem);
  border:1px solid var(--accent-text);border-radius:var(--card-r);background:var(--card)}
.mcp-core__ring{position:absolute;inset:-9px;border:1px solid var(--accent-soft);border-radius:calc(var(--card-r) + 9px);pointer-events:none}
.mcp-core__ring--2{inset:-18px;border-color:color-mix(in srgb,var(--accent-text) 12%,transparent);border-radius:calc(var(--card-r) + 18px)}
html[data-motion='on'] .v2-reveal.is-in .mcp-core__ring--2{animation:mcp-halo 5s ease-in-out infinite}
@keyframes mcp-halo{50%{transform:scale(1.03);opacity:.4}}
.mcp-core__mark{inline-size:clamp(3rem,5vw,4.25rem);block-size:auto;color:var(--accent-text)}
.mcp-core__name{font-size:clamp(1.08rem,.95rem + .5vw,1.35rem);font-weight:700;letter-spacing:-.01em;color:var(--fg)}
.mcp-core__d{font-size:.86rem;line-height:1.4;color:var(--fg-muted)}
@media (max-width:48rem){
  .mcp-flow__grid{grid-template-columns:minmax(0,1fr);gap:2.75rem;justify-items:center}
  .mcp-flow__col{inline-size:100%}
  .mcp-flow__col--src,.mcp-flow__col--dst{justify-items:center}
  .mcp-flow__col--src .mcp-node{inline-size:min(100%,18rem)}
  .mcp-flow__col--dst{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}
  .mcp-flow__col--dst .mcp-node{inline-size:100%}
  .mcp-core{inline-size:min(100%,19rem);justify-self:center}
}
.mcp-legend{list-style:none;margin:clamp(1.5rem,3vw,2.25rem) 0 0;padding:0;display:grid;grid-template-columns:minmax(0,1fr);border-top:var(--rule)}
.mcp-legend li{display:grid;gap:.3rem;padding-block:.95rem;border-bottom:var(--rule);transition:opacity var(--hover) var(--ease-out)}
@media (min-width:52rem){.mcp-legend{grid-template-columns:repeat(3,minmax(0,1fr));column-gap:var(--gap)}.mcp-legend li{border-bottom:0}}
.mcp-legend__route{display:flex;align-items:center;flex-wrap:wrap;gap:0 .3rem;font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-text)}
.mcp-legend__d{font-size:.95rem;line-height:1.55;color:var(--fg-body)}
[data-legend-hot] > li:not(.is-hot),[data-legend-hot] > .mcp-tile:not(.is-hot){opacity:.45}
.mcp-flow__note{max-inline-size:46rem}

/* ── Topology: where it lives ── */
.mcp-topo-sec{--section-pad:clamp(3.5rem,6vw,6.5rem)}
/* The insets and gaps are named once, because the top row copies the server's own columns:
   --topo-inset is everything between the diagram's edge and the modules (the VPC's padding and
   dashed border, the server's padding and border). --topo-lbl is the room left between your
   people and your SSO for the SAML 2.0 / OIDC label: one line on a wide screen, two below. */
.mcp-topo{display:grid;max-inline-size:72rem;margin-inline:auto;
  --topo-vpc-px:clamp(1rem,3vw,2.5rem);--topo-srv-p:clamp(1rem,2vw,1.4rem);--topo-mods-gap:clamp(2rem,5vw,4rem);
  --topo-inset:calc(var(--topo-vpc-px) + var(--topo-srv-p) + 2.5px);--topo-lbl:7.75rem;--topo-top-gap:max(clamp(1rem,3vw,3rem),8.25rem);--topo-lane:1.5rem}
@media (max-width:75rem){.mcp-topo{--topo-lbl:5.25rem}}
.mcp-topo__zone{margin:0 0 .75rem;font-size:.7rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--fg-subtle);text-align:center}
.mcp-topo__zone--plat{margin-block-start:clamp(3.25rem,6vw,5rem)}
.mcp-topo__row{display:grid;gap:clamp(1rem,3vw,3rem)}
/* Your people stand over the WAF edge and your SSO over the MCP server, centre on centre, so
   HTTPS and the sign-in drop straight down. The two cards narrow just enough to leave the
   label its room. */
.mcp-topo__row--top{grid-template-columns:repeat(3,minmax(0,1fr));column-gap:var(--topo-mods-gap);padding-inline:var(--topo-inset);margin-block-end:clamp(3.25rem,6vw,5rem)}
.mcp-topo__row--top > .mcp-tnode{justify-self:center;inline-size:calc(100% + var(--topo-mods-gap) - var(--topo-lbl))}
.mcp-topo__row--plats{grid-template-columns:repeat(3,minmax(0,1fr))}
.mcp-topo__vpc{position:relative;display:grid;gap:clamp(2.75rem,5vw,4.25rem);padding:clamp(1.75rem,3.2vw,2.75rem) var(--topo-vpc-px) clamp(1.5rem,3vw,2.5rem);
  border:1.5px dashed var(--line-edge);border-radius:6px}
.mcp-topo__vpclabel{position:absolute;inset-block-start:0;inset-inline-start:1.25rem;z-index:2;display:inline-flex;align-items:center;gap:.4rem;margin:0;
  padding:.2rem .65rem;transform:translateY(-50%);background:var(--bg-panel);font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-subtle)}
.mcp-topo__server{display:grid;gap:1.1rem;padding:var(--topo-srv-p);border:1px solid var(--accent-text);border-radius:var(--card-r);
  background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 13%,transparent),color-mix(in srgb,var(--accent) 3%,transparent))}
.mcp-topo__srv{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .7rem;margin:0}
.mcp-topo__srv b{font-size:1.05rem;color:var(--fg)}
.mcp-topo__srv small{margin-inline-start:auto;font-size:.82rem;font-weight:600;color:var(--accent-text)}
.mcp-topo__mark{inline-size:1.8rem;block-size:auto;color:var(--accent-text)}
.mcp-topo__mods{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--topo-mods-gap)}
.mcp-topo__aux{display:grid;grid-template-columns:minmax(0,1fr) minmax(3rem,.9fr) minmax(0,1fr);gap:1rem}
.mcp-tnode{display:grid;justify-items:start;align-content:start;gap:.32rem;min-inline-size:0;text-align:start;padding:.95rem 1.05rem;
  border:var(--rule-strong);border-radius:var(--card-r);background:var(--card);color:inherit;font:inherit;cursor:pointer}
.mcp-tnode > .mcp-ico{color:var(--accent-text);margin-block-end:.15rem}
.mcp-tnode b{font-size:.98rem;font-weight:700;color:var(--fg)}
.mcp-tnode small{font-size:.83rem;line-height:1.45;color:var(--fg-muted)}
.mcp-tnode:hover,.mcp-tnode.is-hot,.mcp-tnode[aria-pressed="true"]{border-color:var(--accent-text)}
.mcp-tnode:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.mcp-tnode--mod{background:var(--bg-panel)}
.mcp-tnode--core{border-color:var(--accent-text);box-shadow:0 0 0 4px var(--accent-soft)}
.mcp-tnode--plat{border-top:3px solid var(--ink-acc)}
.mcp-tnode--tab{border-top-color:var(--ink-tab)}.mcp-tnode--dbx{border-top-color:var(--ink-dbx)}.mcp-tnode--snow{border-top-color:var(--ink-snow)}
.mcp-tnode--plat b{display:flex;align-items:center}
.mcp-topo__hint{display:flex;align-items:center;gap:.5rem;justify-content:center;margin-inline:auto;text-align:center}
/* Stacked: the modules run down the page and your people and your SSO share the top row, two
   even columns. The WAF edge stops a lane short of the SSO's centre line, so the sign-in passes
   beside it, straight into the MCP server (75% of the modules' width, plus half an inset and a
   quarter of the gap, is exactly where the SSO's centre falls). */
@media (max-width:60rem){
  .mcp-topo__mods{grid-template-columns:minmax(0,1fr);gap:2.25rem}
  .mcp-topo__aux{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mcp-topo__channel{display:none}
  .mcp-topo__row--top{grid-template-columns:repeat(2,minmax(0,1fr));padding-inline:0;column-gap:var(--topo-top-gap)}
  .mcp-topo__row--top > .mcp-tnode{justify-self:stretch;inline-size:auto}
  .mcp-topo__mods > [data-w="waf"]{justify-self:start;inline-size:calc(75% + var(--topo-inset) / 2 + var(--topo-top-gap) / 4 - var(--topo-lane))}
}
@media (max-width:40rem){
  .mcp-topo{--topo-top-gap:clamp(5.5rem,22vw,9rem)}
  .mcp-topo__row--top{margin-block-end:4.25rem}   /* room for the HTTPS and sign-in labels under the cards */
  .mcp-tnode--plat small{display:none}
  .mcp-tnode{padding:.8rem .85rem}
}

/* ── The Boreon MCP Layer over Tableau ── */
.mcp-tlay{margin-block-start:clamp(1.5rem,3vw,2.5rem)}
.mcp-tlay__grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.15fr) minmax(0,1fr);align-items:center;gap:clamp(3.25rem,7vw,6.5rem)}
.mcp-tlay__box{padding:clamp(1.1rem,2vw,1.5rem);border:var(--rule-strong);border-radius:var(--card-r);background:var(--card)}
.mcp-tlay__box:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.mcp-tlay__box--layer{border-color:var(--accent-text);background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 14%,transparent),color-mix(in srgb,var(--accent) 4%,transparent))}
.mcp-tlay__box--tab{border-top-color:var(--ink-tab)}
.mcp-tlay__h{display:flex;align-items:center;gap:.55rem;margin:0 0 .8rem;font-size:1.02rem;font-weight:700;color:var(--fg)}
.mcp-tlay__h .mcp-ico{color:var(--accent-text)}
.mcp-tlay__mark{inline-size:1.9rem;block-size:auto;color:var(--accent-text)}
.mcp-tlay__box ul{list-style:none;margin:0;padding:0;display:grid;gap:.45rem}
.mcp-tlay__box li{display:flex;align-items:center;gap:.5rem;font-size:.92rem;color:var(--fg-body)}
.mcp-tlay__box--people li::before,.mcp-tlay__box--tab li::before{content:'';inline-size:5px;block-size:5px;border-radius:50%;background:var(--accent-text);flex:0 0 auto}
.mcp-tlay__box--tab li::before{background:var(--ink-tab)}
.mcp-tlay__caps li{padding:.45rem .6rem;border-radius:var(--r-sm);background:var(--accent-soft);color:var(--fg)}
.mcp-tlay__caps .mcp-ico{color:var(--accent-text)}
.mcp-tlay__llm,.mcp-tlay__write{display:flex;align-items:flex-start;gap:.45rem;margin:.9rem 0 0;padding-top:.8rem;border-top:var(--rule);font-size:.85rem;
  font-weight:600;line-height:1.45;color:var(--accent-text)}
@media (max-width:56rem){.mcp-tlay__grid{grid-template-columns:minmax(0,1fr);gap:3.25rem}}

/* ── Cards, numbered points, pulls, splits, shots ── */
.mcp-split{gap:clamp(2rem,5vw,5.5rem)}
@media (min-width:56rem){.mcp-split--wide{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)}}
.mcp-shot{margin:0;display:block;border-radius:var(--card-r);overflow:hidden;border:var(--rule);background:#040509}
.mcp-shot img{display:block;inline-size:100%;block-size:auto;transition:transform .9s var(--ease-out)}
@media (hover:hover) and (pointer:fine){.mcp-shot--link:hover img{transform:scale(1.03)}}
.mcp-numbered{list-style:none;margin:0;padding:0;display:grid;gap:clamp(1.75rem,3.5vw,3rem);grid-template-columns:minmax(0,1fr)}
@media (min-width:52rem){.mcp-numbered{grid-template-columns:repeat(3,minmax(0,1fr))}}
.mcp-numbered__i{position:relative;padding-block-start:1.2rem;border-top:var(--rule-strong)}
.mcp-numbered__n{display:block;font-size:.8rem;font-weight:700;letter-spacing:.14em;color:var(--accent-text);font-variant-numeric:tabular-nums}
.mcp-numbered__ico{position:relative;display:grid;place-items:center;inline-size:3.4rem;block-size:3.4rem;margin:1rem 0 .35rem;border-radius:50%;
  color:var(--accent-text);background:var(--accent-soft);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent-text) 32%,transparent)}
.mcp-numbered__ico .mcp-ico{inline-size:1.6rem;block-size:1.6rem}
.mcp-numbered__ico::after{content:'';position:absolute;inset:-5px;border-radius:50%;border:1px solid var(--accent-text);opacity:0}
html[data-motion='on'] .v2-reveal.is-in .mcp-numbered__ico::after{animation:mcp-ring 1.4s var(--ease-out) calc(.3s + var(--i,0) * .15s) 1}
@keyframes mcp-ring{0%{opacity:.8;transform:scale(.85)}100%{opacity:0;transform:scale(1.35)}}
.mcp-numbered__h{margin:.4rem 0 0;font-size:1.18rem;font-weight:600;line-height:1.3;color:var(--fg)}
.mcp-numbered__p{margin:.45rem 0 0;font-size:.97rem;line-height:1.62;color:var(--fg-muted)}
.mcp-pull{margin:clamp(2.25rem,4.5vw,3.5rem) 0 0;max-inline-size:42rem;padding-inline-start:1.15rem;border-inline-start:2px solid var(--accent-text);
  font-size:clamp(1.2rem,1rem + .8vw,1.65rem);line-height:1.4;font-weight:500;letter-spacing:-.01em;color:var(--fg)}
.mcp-pair{display:grid;gap:clamp(2rem,4vw,4rem);grid-template-columns:minmax(0,1fr)}
@media (min-width:56rem){.mcp-pair{grid-template-columns:repeat(2,minmax(0,1fr))}}
.mcp-pair__i{border-top:var(--rule-strong);padding-block-start:1.25rem}
.mcp-pair__ico{display:grid;place-items:center;inline-size:2.8rem;block-size:2.8rem;margin-block-end:1rem;border-radius:var(--r-sm);background:var(--accent-soft);color:var(--accent-text)}
.mcp-ticks-lg li{font-size:1rem;line-height:1.6}
.mcp-ticks-lg li + li{margin-block-start:.35rem}
.mcp-ticks-lg strong{font-weight:600;color:var(--fg)}
.mcp-ticks-lg span{color:var(--fg-muted)}
.mcp-duo{display:grid;gap:clamp(1.25rem,3vw,2.5rem);grid-template-columns:minmax(0,1fr);align-items:start}
@media (min-width:62rem){.mcp-duo{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.mcp-duo--sec{align-items:center}}

/* ── Tiles: icon, heading, a line ── */
.mcp-tiles{list-style:none;margin:0;padding:0;display:grid;gap:var(--gap);grid-template-columns:minmax(0,1fr)}
@media (min-width:40rem){.mcp-tiles--2,.mcp-tiles--3,.mcp-tiles--4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:64rem){.mcp-tiles--3{grid-template-columns:repeat(3,minmax(0,1fr))}.mcp-tiles--4{grid-template-columns:repeat(4,minmax(0,1fr))}}
.mcp-tile{position:relative;display:grid;align-content:start;gap:.5rem;padding:clamp(1.2rem,2.1vw,1.65rem);border:var(--rule);border-radius:var(--card-r);
  background:var(--card);overflow:hidden;transition:border-color var(--hover) var(--ease-out),transform var(--hover) var(--ease-out),opacity var(--hover) var(--ease-out)}
.mcp-tile::before{content:'';position:absolute;inset:0 0 auto;block-size:2px;background:var(--accent-text);transform:scaleX(0);transform-origin:0 50%;
  transition:transform .45s var(--ease-out)}
.mcp-tile:hover,.mcp-tile.is-hot{border-color:var(--line-edge)}
.mcp-tile.is-hot::before{transform:none}
@media (hover:hover) and (pointer:fine){.mcp-tile:hover::before{transform:none}}
@media (hover:hover) and (pointer:fine){html[data-motion='on'] .mcp-tile:hover{transform:translateY(-3px)}}
.mcp-tile__ico{display:grid;place-items:center;inline-size:2.75rem;block-size:2.75rem;border-radius:var(--r-sm);background:var(--accent-soft);color:var(--accent-text)}
.mcp-tile__h{margin:.4rem 0 0;font-size:1.06rem;font-weight:600;line-height:1.3;color:var(--fg)}
.mcp-tile__p{margin:0;font-size:.95rem;line-height:1.6;color:var(--fg-muted)}
.mcp-tiles--big .mcp-tile__h{font-size:1.28rem}
/* "Publish to Tableau" is the one write: it wears the accent. */
.mcp-tiles--write6 > .mcp-tile:last-child{border-color:var(--accent-text);background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 12%,transparent),transparent 70%),var(--card)}

/* ── Rules: five, balanced three plus two on six tracks ── */
.mcp-rules{list-style:none;margin:0;padding:0;display:grid;gap:var(--gap);grid-template-columns:minmax(0,1fr)}
@media (min-width:40rem){.mcp-rules{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:62rem){
  .mcp-rules{grid-template-columns:repeat(6,minmax(0,1fr))}
  .mcp-rules > *{grid-column:span 2}
  .mcp-rules > :nth-child(4),.mcp-rules > :nth-child(5){grid-column:span 3}
}
.mcp-rule{display:grid;align-content:start;gap:.5rem;padding:clamp(1.15rem,2vw,1.5rem);border-top:2px solid var(--accent-text);background:var(--card-flat);border-radius:0 0 var(--card-r) var(--card-r)}
.mcp-rule__top{display:flex;align-items:center;justify-content:space-between;color:var(--accent-text)}
.mcp-rule__n{font-size:.78rem;font-weight:700;letter-spacing:.14em;font-variant-numeric:tabular-nums}
.mcp-rule__h{font-size:1.06rem;font-weight:600;color:var(--fg)}
.mcp-rule__p{margin:0;font-size:.93rem;line-height:1.58;color:var(--fg-muted)}

/* ── Tableau, the layer, the warehouse(s) ── */
.mcp-cols{--cgap:clamp(1.75rem,3.2vw,3rem);display:grid;gap:var(--cgap);grid-template-columns:minmax(0,1fr);margin-block-start:clamp(1.75rem,3.5vw,2.5rem)}
@media (min-width:62rem){
  .mcp-cols{grid-template-columns:minmax(0,1fr) minmax(10rem,13rem) minmax(0,1fr);align-items:center}
  .mcp-cols--2{grid-template-columns:minmax(0,1fr) minmax(10rem,12rem) minmax(0,2fr)}
  .mcp-cols--2 .mcp-col__dsts{grid-template-columns:repeat(2,minmax(0,1fr))}
}
.mcp-col{border:var(--rule);border-radius:var(--card-r);background:var(--card);padding:clamp(1.1rem,2vw,1.5rem);min-inline-size:0}
.mcp-col--tab{border-top-color:var(--ink-tab)}.mcp-col--dbx{border-top-color:var(--ink-dbx)}.mcp-col--snow{border-top-color:var(--ink-snow)}
.mcp-col__dsts{display:grid;gap:clamp(1rem,2vw,1.5rem)}
.mcp-col__name{display:flex;align-items:center;margin:0 0 .8rem;font-size:1.12rem;font-weight:700;letter-spacing:-.01em;color:var(--fg)}
.mcp-col__list{list-style:none;margin:0;padding:0;display:grid}
.mcp-col__list li{padding:.6rem 0;border-top:var(--rule);font-size:.93rem;line-height:1.5;color:var(--fg-body)}
.mcp-col__list li:first-child{border-top:0;padding-top:0}
html[data-motion='on'] .v2-reveal .mcp-col__list li{opacity:0;transform:translateX(-6px);transition:opacity .45s var(--ease-out) calc(.35s + var(--i,0) * 70ms),transform .45s var(--ease-out) calc(.35s + var(--i,0) * 70ms)}
html[data-motion='on'] .v2-reveal.is-in .mcp-col__list li{opacity:1;transform:none}
.mcp-col--layer{position:relative;display:grid;justify-items:center;align-content:center;text-align:center;gap:.5rem;border-color:var(--accent-text);
  padding-block:clamp(1.5rem,3vw,2.25rem);background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 14%,transparent),transparent),var(--card)}
.mcp-col--layer .mcp-col__name{margin:0;font-size:1.02rem;justify-content:center}
.mcp-col__mark{color:var(--accent-text)}
.mcp-col__mark .mcp-bmark{display:block;inline-size:3.2rem;block-size:auto}
.mcp-col__sub{margin:0;font-size:.84rem;line-height:1.45;color:var(--fg-muted)}
.mcp-col--layer::before,.mcp-col--layer::after{content:'';position:absolute;left:50%;inline-size:2px;margin-left:-1px;block-size:var(--cgap);
  background:repeating-linear-gradient(180deg,var(--accent-text) 0 5px,transparent 5px 11px)}
.mcp-col--layer::before{bottom:100%}
.mcp-col--layer::after{top:100%}
html[data-motion='on'] .mcp-col--layer::before,html[data-motion='on'] .mcp-col--layer::after{animation:mcp-march-y 1.2s linear infinite}
@keyframes mcp-march-y{to{background-position:0 11px}}
@media (min-width:62rem){
  .mcp-col--layer::before,.mcp-col--layer::after{left:auto;top:50%;bottom:auto;margin:-1px 0 0;inline-size:var(--cgap);block-size:2px;
    background:repeating-linear-gradient(90deg,var(--accent-text) 0 5px,transparent 5px 11px)}
  .mcp-col--layer::before{right:100%}
  .mcp-col--layer::after{left:100%}
  html[data-motion='on'] .mcp-col--layer::before,html[data-motion='on'] .mcp-col--layer::after{animation-name:mcp-march-x}
}
@keyframes mcp-march-x{to{background-position:11px 0}}

/* ── Destinations (migrations) ── */
.mcp-dests{display:grid;gap:var(--gap);grid-template-columns:minmax(0,1fr)}
@media (min-width:56rem){.mcp-dests{grid-template-columns:repeat(2,minmax(0,1fr))}}
.mcp-dest{position:relative;isolation:isolate;display:grid;align-content:start;gap:.85rem;padding:clamp(1.5rem,3vw,2.4rem);border:var(--rule-strong);
  border-radius:var(--card-r);background:var(--card);overflow:hidden;transition:border-color var(--hover) var(--ease-out),transform var(--hover) var(--ease-out)}
.mcp-dest::before{content:'';position:absolute;inset:0 0 auto;block-size:1px;background:linear-gradient(90deg,var(--ink-tab),var(--ink-dbx))}
.mcp-dest--snow::before{background:linear-gradient(90deg,var(--ink-tab),var(--ink-snow))}
.mcp-dest::after{content:'';position:absolute;inset:-40% -30% auto auto;inline-size:70%;aspect-ratio:1;z-index:-1;border-radius:50%;
  background:radial-gradient(closest-side,color-mix(in srgb,var(--ink-dbx) 18%,transparent),transparent);opacity:.7}
.mcp-dest--snow::after{background:radial-gradient(closest-side,color-mix(in srgb,var(--ink-snow) 18%,transparent),transparent)}
.mcp-dest:hover{border-color:var(--line-edge)}
@media (hover:hover) and (pointer:fine){html[data-motion='on'] .mcp-dest:hover{transform:translateY(-3px)}}
.mcp-dest__k{display:flex;align-items:center;margin:0;font-size:var(--fs-eyebrow);font-weight:700;letter-spacing:var(--track-eyebrow);text-transform:uppercase;color:var(--fg-subtle)}
.mcp-dest__title{margin:0;font-size:clamp(1.45rem,1.1rem + 1.1vw,2.1rem);font-weight:600;letter-spacing:-.02em;line-height:1.15;color:var(--fg)}
.mcp-dest__text{margin:0;font-size:1rem;line-height:1.6;color:var(--fg-muted);max-inline-size:34rem}
.mcp-dest__map{list-style:none;margin:.4rem 0 0;padding:0;display:grid;gap:.5rem}
.mcp-dest__map li{display:grid;grid-template-columns:minmax(0,.8fr) auto minmax(0,1.2fr);align-items:center;gap:.65rem;padding:.65rem .8rem;border:var(--rule);
  border-radius:var(--r-sm);background:var(--card-flat);font-size:.9rem}
.mcp-dest__map span{color:var(--fg-muted)}
.mcp-dest__map i{font-style:normal;color:var(--accent-text)}
.mcp-dest__map b{display:flex;align-items:center;gap:.45rem;font-weight:600;color:var(--fg)}
.mcp-dest__map b .mcp-ico{color:var(--accent-text)}
.mcp-dest__more{margin:.3rem 0 0;font-size:.95rem;font-weight:700;color:var(--accent-text)}
.mcp-dest:focus-within{outline:2px solid var(--accent);outline-offset:2px}

/* ── The map ── */
.mcp-map .v2-cmp thead th{white-space:normal}
.mcp-map .v2-cmp thead th + th{color:var(--accent-text)}
.mcp-map .v2-cmp tbody th{min-inline-size:11rem}
.mcp-map .v2-cmp td{color:var(--fg-body);min-inline-size:13rem}
@media (max-width:40rem){
  .mcp-map .v2-cmp thead{position:absolute;inline-size:1px;block-size:1px;overflow:hidden;clip-path:inset(50%)}
  .mcp-map .v2-cmp,.mcp-map .v2-cmp tbody,.mcp-map .v2-cmp tr,.mcp-map .v2-cmp th,.mcp-map .v2-cmp td{display:block;inline-size:auto;min-inline-size:0}
  .mcp-map .v2-cmp tr{padding:.95rem 1.05rem;border-bottom:var(--rule)}
  .mcp-map .v2-cmp tbody tr:last-child{border-bottom:0}
  .mcp-map .v2-cmp :is(th,td){padding:0;border:0}
  .mcp-map .v2-cmp tbody th{margin-block-end:.45rem;font-size:1rem}
  .mcp-map .v2-cmp td + td{margin-block-start:.4rem}
  .mcp-map .v2-cmp td::before{content:attr(data-label);display:block;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-text)}
}

/* ── Parity ── */
.mcp-parity .v2-cmp td{white-space:nowrap}
.mcp-parity__meter{display:inline-block;vertical-align:middle;inline-size:min(12rem,32vw);block-size:6px;margin-inline-end:.9rem;border-radius:3px;background:var(--line);overflow:hidden}
.mcp-parity__meter i{display:block;block-size:100%;background:var(--accent-text);transform-origin:0 50%}
.mcp-parity__v{font-weight:700;color:var(--fg);font-variant-numeric:tabular-nums}
.mcp-parity__sum :is(th,td){border-top:var(--rule-strong)}
.mcp-parity__sum th,.mcp-parity__sum .mcp-parity__v{color:var(--accent-text)}
@media (max-width:40rem){.mcp-parity .v2-cmp tbody th{min-inline-size:0}}

/* ── Conversion cards (the platform pages) ── */
.mcp-convert{display:grid;gap:var(--gap);grid-template-columns:minmax(0,1fr)}
@media (min-width:52rem){.mcp-convert{grid-template-columns:repeat(3,minmax(0,1fr))}}
.mcp-convert__c{display:grid;align-content:start;gap:.55rem;padding:clamp(1.2rem,2.1vw,1.65rem);border:var(--rule);border-top-color:var(--ink-dbx);
  border-radius:var(--card-r);background:var(--card)}
.mcp-convert__c--snow{border-top-color:var(--ink-snow)}
.mcp-convert__k{display:inline-flex;justify-self:start;align-items:center;gap:.45rem;margin:0 0 .35rem;padding:.3rem .65rem;border-radius:var(--r-sm);
  background:var(--accent-soft);font-size:.78rem;font-weight:700;color:var(--accent-text)}
.mcp-convert__h{margin:0;font-size:1.12rem;font-weight:600;color:var(--fg)}
.mcp-convert__p{margin:0;font-size:.95rem;line-height:1.6;color:var(--fg-muted)}

/* ── Windows: the run log, the portals, the scan, the nodes ── */
.mcp-win__bar{display:flex;align-items:center;gap:.8rem;padding:.7rem 1rem;border-bottom:var(--rule);background:var(--bg-tint)}
.mcp-win__dots{display:inline-flex;gap:6px}
.mcp-win__dots i{inline-size:9px;block-size:9px;border-radius:50%;background:var(--line-strong)}
.mcp-win__title{font-size:.8rem;font-weight:700;letter-spacing:.04em;color:var(--fg-muted)}
.mcp-caret{display:inline-block;inline-size:1.5px;block-size:1em;margin-inline-start:2px;vertical-align:-.12em;background:var(--accent-text)}
html[data-motion='on'] .mcp-caret{animation:mcp-caret 1.1s steps(2,start) infinite}
@keyframes mcp-caret{to{visibility:hidden}}
/* Chats: the question types itself, then the reply arrives (armed by mcp.js only). */
.mcp-chatbox.is-armed:not(.is-typed) .mcp-chat__reply{opacity:0;transform:translateY(8px)}
.mcp-chat__reply{transition:opacity .5s var(--ease-out),transform .5s var(--ease-out)}
.mcp-chatbox.is-typed .mcp-chat__reply + .mcp-chat__reply{transition-delay:.25s}

/* ── The run ── */
.mcp-run{max-inline-size:58rem;margin-inline:auto;border:var(--rule-strong);border-radius:var(--card-r);background:var(--card);overflow:hidden;box-shadow:var(--shadow-card)}
.mcp-run__progress{position:relative;flex:1 1 auto;block-size:3px;margin-inline-start:auto;max-inline-size:10rem;border-radius:2px;background:var(--line)}
.mcp-run__progress i{position:absolute;inset:0;background:var(--accent-text);transform-origin:0 50%;transform:scaleX(var(--p,1));transition:transform .5s var(--ease-out)}
.mcp-run__body{display:grid;gap:1.15rem;padding:clamp(1.1rem,2.6vw,1.8rem)}
.mcp-run__ask,.mcp-portal__q,.mcp-exec__q,.mcp-scan__q,.mcp-nodes__q{justify-self:end;max-inline-size:min(36rem,92%);margin:0;padding:.75rem 1rem;border-radius:6px 6px 2px 6px;
  background:var(--accent);color:var(--accent-contrast);font-size:.97rem;font-weight:600;line-height:1.45}
[data-theme="light"] .mcp-page .v2-section--panel :is(.mcp-run__ask,.mcp-portal__q,.mcp-scan__q,.mcp-nodes__q){background:#F2F5FA;color:#0A0E1A}
.mcp-run__steps{list-style:none;margin:0;padding:0;display:grid;border-top:var(--rule)}
.mcp-run__step{display:grid;grid-template-columns:1.5rem minmax(0,1fr) auto;align-items:start;gap:.85rem;padding:.85rem 0;border-bottom:var(--rule);transition:opacity .35s var(--ease-out)}
.mcp-run__tick{position:relative;inline-size:1.3rem;block-size:1.3rem;margin-block-start:.08rem;border-radius:50%;border:1.5px solid var(--accent-text);background:var(--accent-soft);
  transition:border-color .3s var(--ease-out),background-color .3s var(--ease-out)}
.mcp-run__tick::after{content:'';position:absolute;left:50%;top:46%;inline-size:6px;block-size:3.5px;border-inline-start:1.6px solid var(--accent-text);
  border-block-end:1.6px solid var(--accent-text);transform:translate(-50%,-50%) rotate(-45deg);transition:opacity .25s var(--ease-out)}
.mcp-run__txt{display:grid;gap:.2rem;min-inline-size:0}
.mcp-run__t{font-size:.98rem;font-weight:600;color:var(--fg)}
.mcp-run__b{font-size:.88rem;line-height:1.5;color:var(--fg-muted)}
.mcp-run__s{justify-self:end;white-space:nowrap;padding:.24rem .62rem;border-radius:var(--r-pill);background:var(--accent-soft);font-size:.78rem;font-weight:700;
  letter-spacing:.02em;color:var(--accent-text);font-variant-numeric:tabular-nums;transition:opacity .3s var(--ease-out),transform .3s var(--ease-snap)}
.mcp-run__sql{display:block;margin-block-start:.6rem;padding:.8rem .95rem;border:var(--rule);border-radius:var(--r-sm);background:var(--bg-panel);font:inherit;
  font-size:.82rem;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--fg-body)}
.mcp-run__sql b{font-weight:700;color:var(--accent-text)}
.mcp-run__done{position:relative;display:flex;align-items:center;gap:.65rem;margin:0;font-weight:600;color:var(--fg);transition:opacity .4s var(--ease-out),transform .4s var(--ease-out)}
.mcp-run__mark{flex:0 0 auto;inline-size:1.7rem;block-size:auto;color:var(--accent-text)}
.mcp-run__stamp{display:grid;place-items:center;inline-size:2.4rem;block-size:2.4rem;margin-inline-start:auto;border:2px solid var(--accent-text);border-radius:50%;
  color:var(--accent-text);transform:rotate(-12deg)}
html[data-motion='on'] .mcp-run.is-done .mcp-run__stamp{animation:mcp-stamp .55s var(--ease-snap) both}
@keyframes mcp-stamp{0%{opacity:0;transform:rotate(-30deg) scale(1.8)}100%{opacity:1;transform:rotate(-12deg) scale(1)}}
.mcp-run.is-armed .mcp-run__step:not(.is-on):not(.is-now){opacity:.32}
.mcp-run.is-armed .mcp-run__step:not(.is-on) .mcp-run__tick{border-color:var(--line-strong);background:transparent}
.mcp-run.is-armed .mcp-run__step:not(.is-on) .mcp-run__tick::after,.mcp-run.is-armed .mcp-run__step:not(.is-on) .mcp-run__s{opacity:0}
.mcp-run.is-armed .mcp-run__step:not(.is-on) .mcp-run__s{transform:scale(.7)}
.mcp-run.is-armed .mcp-run__step.is-now .mcp-run__tick{border-color:var(--accent-text);border-style:dashed;animation:mcp-spin 1s linear infinite}
.mcp-run.is-armed:not(.is-done) .mcp-run__done{opacity:0;transform:translateY(6px)}
@media (max-width:36rem){.mcp-run__step{grid-template-columns:1.5rem minmax(0,1fr)}.mcp-run__s{grid-column:2;justify-self:start}}

/* ── The migration portal ── */
.mcp-portal-stage{max-inline-size:64rem;margin-inline:auto}
.mcp-portal{margin:0;border:var(--rule-strong);border-radius:var(--card-r);background:var(--card);overflow:hidden;box-shadow:var(--shadow-card)}
.mcp-portal__body{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}
.mcp-portal--compact .mcp-portal__body{grid-template-columns:minmax(0,1fr)}
.mcp-portal__chat{display:grid;align-content:start;gap:.9rem;padding:clamp(1rem,2.2vw,1.5rem)}
.mcp-portal__a{display:grid;gap:.65rem}
.mcp-portal__lead{display:flex;align-items:flex-start;gap:.55rem;margin:0;font-size:.88rem;line-height:1.45;color:var(--fg-body)}
.mcp-portal__mark{flex:0 0 auto;inline-size:1.4rem;block-size:auto;margin-block-start:.12rem;color:var(--accent-text)}
.mcp-portal__tbl{inline-size:100%;border-collapse:collapse;font-size:.85rem;border:var(--rule)}
.mcp-portal__tbl :is(th,td){padding:.48rem .7rem;text-align:start;border-bottom:var(--rule)}
.mcp-portal__tbl thead th{font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--fg-subtle);background:var(--bg-tint)}
.mcp-portal__tbl tbody th{font-weight:600;color:var(--fg);white-space:nowrap}
.mcp-portal__tbl td{inline-size:60%;white-space:nowrap}
.mcp-portal__tbl tbody tr:last-child :is(th,td){border-bottom:0}
.mcp-portal__bar{display:inline-block;vertical-align:middle;inline-size:calc(var(--w) * .68);block-size:8px;margin-inline-end:.55rem;border-radius:2px;background:var(--ink-dbx);transform-origin:0 50%}
html:not(.theme-color) .mcp-portal__bar{background:var(--accent-text)}
.mcp-portal__num{font-weight:700;color:var(--fg);font-variant-numeric:tabular-nums}
.mcp-portal__input{display:flex;align-items:center;margin:0;padding:.6rem .9rem;border:var(--rule-strong);border-radius:var(--r-sm);font-size:.85rem;color:var(--fg-subtle)}
.mcp-portal__dash{display:grid;align-content:start;gap:.9rem;padding:clamp(1rem,2.2vw,1.5rem);border-inline-start:var(--rule);background:var(--bg-tint)}
.mcp-portal__dhead{margin:0;font-size:.74rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--fg-subtle)}
.mcp-portal__chart{display:flex;align-items:flex-end;gap:5px;block-size:9.5rem;padding:.7rem;border:var(--rule);border-radius:var(--r-sm);background:var(--card-flat)}
.mcp-portal__chart i{flex:1;block-size:var(--h);border-radius:2px 2px 0 0;background:var(--accent-text);opacity:.85;transform-origin:50% 100%}
.mcp-portal__chart i:nth-child(n+10){opacity:1}
.mcp-portal__genie{display:flex;align-items:center;gap:.6rem;margin:0;padding:.7rem .85rem;border-radius:var(--r-sm);background:var(--accent-soft);font-size:.87rem;font-weight:600;color:var(--fg)}
.mcp-portal__spark{display:grid;color:var(--ink-dbx)}
html:not(.theme-color) .mcp-portal__spark{color:var(--accent-text)}
html[data-motion='on'] .mcp-chatbox.is-typed .mcp-portal__spark .mcp-ico{animation:mcp-twirl 1.2s var(--ease-snap) .8s 2}
.mcp-portal__cap{padding:.55rem 1rem;border-top:var(--rule);font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--fg-subtle)}
html[data-motion='on'] .mcp-chatbox .mcp-portal__bar{transform:scaleX(0);transition:transform .8s var(--ease-out) calc(.2s + var(--i,0) * .1s)}
html[data-motion='on'] .mcp-chatbox.is-typed .mcp-portal__bar,html[data-motion='on'] .mcp-chatbox:not(.is-armed) .mcp-portal__bar{transform:none}
html[data-motion='on'] .mcp-chatbox .mcp-portal__chart i{transform:scaleY(.06);transition:transform .9s var(--ease-out) calc(.2s + var(--i,0) * .05s)}
html[data-motion='on'] .mcp-chatbox.is-typed .mcp-portal__chart i,html[data-motion='on'] .mcp-chatbox:not(.is-armed) .mcp-portal__chart i{transform:none}
@media (max-width:46rem){.mcp-portal__body{grid-template-columns:minmax(0,1fr)}.mcp-portal__dash{border-inline-start:0;border-top:var(--rule)}}

/* ── The executive answer (Tableau) ── */
.mcp-exec{margin:0;display:grid;gap:1rem;padding:clamp(1.1rem,2.4vw,1.6rem);border:var(--rule-strong);border-radius:var(--card-r);background:var(--card);box-shadow:var(--shadow-card)}
.mcp-exec__read{display:flex;align-items:center;gap:.55rem;margin:0 0 .8rem;font-size:.78rem;letter-spacing:.02em;color:var(--fg-subtle)}
.mcp-live{flex:0 0 auto;inline-size:8px;block-size:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 3px color-mix(in srgb,var(--ok) 22%,transparent)}
html[data-motion='on'] .mcp-live{animation:mcp-livep 2s ease-in-out infinite}
@keyframes mcp-livep{50%{box-shadow:0 0 0 6px color-mix(in srgb,var(--ok) 6%,transparent)}}
.mcp-exec__a{display:flex;align-items:flex-start;gap:.6rem;margin:0 0 1rem;font-size:1.06rem;line-height:1.5;color:var(--fg)}
.mcp-exec__a b{font-weight:700;color:var(--accent-text)}
.mcp-exec__spark{color:var(--accent-text);margin-block-start:.15rem}
.mcp-exec__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem;align-items:start}
.mcp-exec__chart{display:grid;gap:.5rem;padding:.8rem;border:var(--rule);border-radius:var(--r-sm);background:var(--card-flat)}
.mcp-exec__ct{margin:0 0 .2rem;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-subtle)}
.mcp-exec__row{display:grid;grid-template-columns:4rem minmax(0,1fr);align-items:center;gap:.5rem;font-size:.82rem;color:var(--fg-muted)}
.mcp-exec__row i{display:block;block-size:10px;inline-size:var(--w);border-radius:2px;background:var(--ink-tab);transform-origin:0 50%}
html:not(.theme-color) .mcp-exec__row i{background:var(--accent-text)}
.mcp-exec__row.is-watch i{background:var(--bad)}
html[data-motion='on'] .mcp-chatbox .mcp-exec__row i{transform:scaleX(0);transition:transform .8s var(--ease-out) calc(.25s + var(--i,0) * .1s)}
html[data-motion='on'] .mcp-chatbox.is-typed .mcp-exec__row i,html[data-motion='on'] .mcp-chatbox:not(.is-armed) .mcp-exec__row i{transform:none}
.mcp-exec__tbl{inline-size:100%;border-collapse:collapse;font-size:.82rem}
.mcp-exec__tbl :is(th,td){padding:.4rem .45rem;border-bottom:var(--rule);text-align:start}
.mcp-exec__tbl thead th{font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--fg-subtle)}
.mcp-exec__tbl td{font-variant-numeric:tabular-nums;color:var(--fg-body)}
.mcp-exec__tbl tbody th{font-weight:600;color:var(--fg)}
.mcp-exec__tbl tr.is-watch :is(th,td){color:var(--bad)}
.mcp-exec__next{display:flex;flex-wrap:wrap;gap:.45rem;margin:1rem 0 0}
.mcp-exec__next span{padding:.35rem .75rem;border:1px solid var(--line-edge);border-radius:var(--r-pill);font-size:.8rem;font-weight:600;color:var(--accent-text)}
.mcp-exec__cap{font-size:.72rem;letter-spacing:.04em;color:var(--fg-subtle)}
@media (max-width:36rem){.mcp-exec__grid{grid-template-columns:minmax(0,1fr)}}
.mcp-langs{display:flex;align-items:center;gap:.5rem;margin:1rem 0 0;font-size:.95rem;color:var(--fg-body)}
.mcp-langs .mcp-ico{color:var(--accent-text)}
.mcp-langchips{list-style:none;margin:.9rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.4rem}
.mcp-langchips li{padding:.35rem .7rem;border:var(--rule-strong);border-radius:var(--r-pill);font-size:.85rem;font-weight:600;color:var(--fg)}
html[data-motion='on'] .v2-reveal .mcp-langchips li{opacity:0;transform:translateY(6px);transition:opacity .4s var(--ease-out),transform .4s var(--ease-snap)}
html[data-motion='on'] .v2-reveal.is-in .mcp-langchips li{opacity:1;transform:none}
.mcp-langchips li:nth-child(2){transition-delay:.45s!important}.mcp-langchips li:nth-child(3){transition-delay:.55s!important}.mcp-langchips li:nth-child(4){transition-delay:.65s!important}
.mcp-langchips li:nth-child(5){transition-delay:.75s!important}.mcp-langchips li:nth-child(6){transition-delay:.85s!important}.mcp-langchips li:nth-child(1){transition-delay:.35s!important}
.mcp-partner{display:flex;align-items:center;gap:.5rem;margin:1.5rem 0 0;font-size:.9rem;font-weight:600;color:var(--fg-muted)}
.mcp-partner .mcp-ico{color:var(--accent-text)}

/* ── The governance scan ── */
.mcp-scan,.mcp-nodes{margin:0;border:var(--rule-strong);border-radius:var(--card-r);background:var(--card);overflow:hidden;box-shadow:var(--shadow-card)}
.mcp-scan__body,.mcp-nodes__body{display:grid;gap:1rem;padding:clamp(1rem,2.4vw,1.5rem)}
.mcp-scan__listwrap{position:relative;overflow:hidden;border:var(--rule);border-radius:var(--r-sm)}
.mcp-scan__list{list-style:none;margin:0;padding:0}
.mcp-scan__row{display:grid;grid-template-columns:1.3rem minmax(0,1fr) auto;align-items:center;gap:.7rem;padding:.7rem .85rem;border-bottom:var(--rule);
  font-size:.9rem;transition:opacity .35s var(--ease-out),background-color .35s var(--ease-out)}
.mcp-scan__row:last-child{border-bottom:0}
.mcp-scan__n{font-weight:600;color:var(--fg);min-inline-size:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mcp-scan__s{font-size:.78rem;font-weight:700;text-align:end}
.mcp-scan__row--ok :is(.mcp-scan__s,.mcp-scan__ic){color:var(--ok)}
.mcp-scan__row--bad :is(.mcp-scan__s,.mcp-scan__ic){color:var(--bad)}
.mcp-scan__row--warn :is(.mcp-scan__s,.mcp-scan__ic){color:var(--accent-text)}
.mcp-scan__row--bad{background:color-mix(in srgb,var(--bad) 7%,transparent)}
.mcp-scan__ic{display:grid}
.mcp-scan__beam{position:absolute;inset-block:0;inset-inline-start:0;z-index:1;inline-size:34%;pointer-events:none;opacity:0;
  background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--accent-text) 26%,transparent),transparent)}
.mcp-scan.is-scanning .mcp-scan__beam{opacity:1;animation:mcp-beam 1.25s linear infinite}
@keyframes mcp-beam{from{transform:translateX(-110%)}to{transform:translateX(310%)}}
.mcp-scan.is-armed .mcp-scan__row:not(.is-on){opacity:.3}
.mcp-scan.is-armed .mcp-scan__row:not(.is-on) :is(.mcp-scan__s,.mcp-scan__ic){opacity:0}
.mcp-scan__done{display:flex;align-items:center;gap:.6rem;margin:0;font-weight:600;color:var(--fg);transition:opacity .4s var(--ease-out)}
.mcp-scan.is-armed:not(.is-done) .mcp-scan__done{opacity:0}

/* ── Site operations: the nodes ── */
.mcp-nodes__tbl{inline-size:100%;border-collapse:collapse;font-size:.8rem}
.mcp-nodes__tbl :is(th,td){padding:.5rem .45rem;border-bottom:var(--rule);text-align:start}
.mcp-nodes__tbl thead th{font-size:.68rem;font-weight:700;letter-spacing:.04em;color:var(--fg-subtle)}
.mcp-nodes__tbl tbody th{font-weight:700;color:var(--fg);white-space:nowrap}
.mcp-st{display:inline-flex;align-items:center;gap:.35rem;font-weight:600;color:var(--fg-muted);white-space:nowrap}
.mcp-st i{inline-size:.5rem;block-size:.5rem;border-radius:50%;background:var(--ok)}
.mcp-st--warn{color:var(--bad)}
.mcp-st--warn i{background:var(--bad)}
html[data-motion='on'] .v2-reveal.is-in .mcp-st--warn i{animation:mcp-blink 1s steps(2,start) 1.2s 3}
@keyframes mcp-blink{to{visibility:hidden}}
.mcp-nodes__a{display:flex;align-items:flex-start;gap:.55rem;margin:0;font-size:.92rem;line-height:1.5;color:var(--fg-body)}
@media (max-width:36rem){.mcp-nodes__tbl{font-size:.72rem}.mcp-st{white-space:normal}}

/* ── The routing board ── */
.mcp-router{margin:0;padding:clamp(1rem,2.4vw,1.6rem);border:var(--rule-strong);border-radius:var(--card-r);background:var(--card);box-shadow:var(--shadow-card)}
.mcp-router__tbl{inline-size:100%;border-collapse:separate;border-spacing:0 .45rem}
.mcp-router__ph{padding:0 .25rem .4rem;text-align:center;vertical-align:bottom}
.mcp-router__ph b{display:block;font-size:1.02rem;font-weight:700;color:var(--fg)}
.mcp-router__ph small{display:block;font-size:.64rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--fg-subtle)}
.mcp-router__task{padding:0 .75rem 0 0;text-align:start;font-size:.92rem;font-weight:600;color:var(--fg);white-space:nowrap}
.mcp-router__tbl td{text-align:center;border-top:var(--rule);padding-top:.45rem}
.mcp-router__cell{position:relative;inline-size:2.75rem;block-size:2.75rem;border-radius:50%;border:1px solid var(--line-strong);background:transparent;cursor:pointer;
  transition:border-color .25s var(--ease-out),box-shadow .25s var(--ease-out)}
.mcp-router__cell::after{content:'';position:absolute;inset:.85rem;border-radius:50%;background:var(--line-strong);transition:transform .4s var(--ease-snap),background-color .25s var(--ease-out)}
.mcp-router__cell:hover{border-color:var(--line-edge)}
.mcp-router__cell[aria-pressed="true"]{border-color:var(--accent-text);box-shadow:0 0 0 5px var(--accent-soft)}
.mcp-router__cell[aria-pressed="true"]::after{background:var(--accent-text);transform:scale(1.45)}
.mcp-router__cell:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.mcp-router__cell:active{transform:scale(.94)}
.mcp-router__cap{display:flex;align-items:center;gap:.5rem;margin:.75rem 0 0;font-size:.84rem;line-height:1.45;color:var(--fg-muted)}
.mcp-router__cap .mcp-ico{color:var(--accent-text)}

/* ── Providers ── */
.mcp-prov{list-style:none;margin:0;padding:0;display:grid;gap:var(--gap);grid-template-columns:minmax(0,1fr)}
@media (min-width:40rem){.mcp-prov{grid-template-columns:repeat(3,minmax(0,1fr))}}
.mcp-prov__c{position:relative;isolation:isolate;display:grid;align-content:start;gap:.3rem;padding:clamp(1.25rem,2.3vw,1.8rem);border:var(--rule);
  border-radius:var(--card-r);background:var(--card);overflow:hidden;transition:border-color var(--hover) var(--ease-out),transform var(--hover) var(--ease-out)}
.mcp-prov__c::after{content:'';position:absolute;inset:-3rem -3rem auto auto;inline-size:8rem;aspect-ratio:1;z-index:-1;border-radius:50%;
  background:radial-gradient(circle at 35% 35%,color-mix(in srgb,var(--accent) 55%,#fff 5%),transparent 68%);opacity:.3;transition:opacity .4s var(--ease-out),transform .6s var(--ease-snap)}
.mcp-prov__c--2::after{background:radial-gradient(circle at 35% 35%,#CC785C,transparent 68%)}
.mcp-prov__c--3::after{background:radial-gradient(circle at 35% 35%,color-mix(in srgb,var(--fg) 55%,transparent),transparent 68%)}
.mcp-prov__c--4::after{background:radial-gradient(circle at 35% 35%,color-mix(in srgb,var(--accent-strong) 60%,#fff 5%),transparent 68%)}
.mcp-prov__c:hover{border-color:var(--line-edge)}
@media (hover:hover) and (pointer:fine){.mcp-prov__c:hover::after{opacity:.55;transform:scale(1.15)}}
.mcp-prov__k{font-size:var(--fs-eyebrow);font-weight:700;letter-spacing:var(--track-eyebrow);text-transform:uppercase;color:var(--fg-subtle)}
.mcp-prov__t{font-size:clamp(2rem,1.4rem + 2vw,3.1rem);font-weight:600;line-height:1;letter-spacing:-.035em;color:var(--fg)}
.mcp-prov__p{margin:.55rem 0 0;font-size:.94rem;line-height:1.55;color:var(--fg-muted)}

/* ── Alongside the scan: chips ── */
.mcp-also{display:grid;gap:1rem;align-items:center}
@media (min-width:56rem){.mcp-also{grid-template-columns:auto minmax(0,1fr);gap:2rem}}
.mcp-also__h{margin:0;font-size:1.15rem;font-weight:600;color:var(--fg);white-space:nowrap}
.mcp-also__chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.45rem}
.mcp-also__chips li{padding:.4rem .85rem;border:var(--rule-strong);border-radius:var(--r-pill);background:var(--card-flat);font-size:.88rem;font-weight:600;color:var(--fg-body)}

/* ── More (Tableau) ── */
.mcp-more{display:grid;gap:var(--gap);grid-template-columns:minmax(0,1fr)}
@media (min-width:52rem){.mcp-more{grid-template-columns:repeat(2,minmax(0,1fr))}}
.mcp-more__card{position:relative;display:grid;border:var(--rule);border-radius:var(--card-r);overflow:hidden;background:var(--card);
  transition:border-color var(--hover) var(--ease-out),transform var(--hover) var(--ease-out)}
.mcp-more__pic{overflow:hidden;border-bottom:var(--rule);background:#040509}
.mcp-more__pic img{display:block;inline-size:100%;block-size:auto;aspect-ratio:16/8;object-fit:cover;transition:transform .9s var(--ease-out)}
.mcp-more__body{position:relative;display:grid;gap:.4rem;padding:clamp(1.1rem,2vw,1.5rem) clamp(1.1rem,2vw,1.5rem) clamp(1.2rem,2.2vw,1.6rem)}
.mcp-more__h{margin:0;font-size:1.3rem;font-weight:600;letter-spacing:-.01em;color:var(--fg)}
.mcp-more__p{margin:0;font-size:.95rem;color:var(--fg-muted)}
.mcp-more__go{position:absolute;inset-block-start:clamp(1.1rem,2vw,1.5rem);inset-inline-end:clamp(1.1rem,2vw,1.5rem);font-size:1.3rem;color:var(--accent-text);transition:transform var(--micro) var(--ease-out)}
.mcp-more__card:hover{border-color:var(--line-edge)}
@media (hover:hover) and (pointer:fine){.mcp-more__card:hover .mcp-more__pic img{transform:scale(1.04)}}
@media (hover:hover) and (pointer:fine){.mcp-more__card:hover .mcp-more__go{transform:translateX(4px)}}
.mcp-more__card:focus-within{outline:2px solid var(--accent);outline-offset:2px}
.mcp-facts{border-top:0;margin-block-start:0;padding-block-start:0}

/* ── The track (proof steps, SDLC phases): one line, dots popping along it ── */
.mcp-track{position:relative;margin-block-start:clamp(1.75rem,3.5vw,2.75rem)}
.mcp-track__list{list-style:none;margin:0;padding:0;display:grid;gap:clamp(1.4rem,2.6vw,2rem);grid-template-columns:minmax(0,1fr)}
.mcp-track__line{position:absolute;inset-inline-start:1.35rem;inset-block:1.35rem 1.35rem;inline-size:2px;background:var(--line-strong)}
.mcp-track__line i{position:absolute;inset:0;background:var(--accent-text);transform-origin:50% 0}
.mcp-track__step{position:relative;display:grid;gap:.4rem;align-content:start;padding-inline-start:3.8rem}
.mcp-track__dot{position:absolute;inset-inline-start:0;inset-block-start:0;z-index:1;display:grid;place-items:center;inline-size:2.7rem;block-size:2.7rem;
  border-radius:50%;background:var(--bg-panel);border:1.5px solid var(--accent-text);color:var(--accent-text)}
.mcp-track__n{font-size:.75rem;font-weight:700;letter-spacing:.14em;color:var(--fg-subtle);font-variant-numeric:tabular-nums}
.mcp-track__t{margin:0;font-size:1.04rem;font-weight:600;color:var(--fg)}
.mcp-track__b{margin:0;font-size:.9rem;line-height:1.55;color:var(--fg-muted)}
@media (min-width:64rem){
  .mcp-track__list{grid-template-columns:repeat(6,minmax(0,1fr))}
  .mcp-track--5 .mcp-track__list{grid-template-columns:repeat(5,minmax(0,1fr))}
  .mcp-track__line{inset-inline:1.35rem;inset-block:1.35rem auto;inline-size:auto;block-size:2px}
  .mcp-track__line i{transform-origin:0 50%}
  .mcp-track__step{padding-inline-start:0;padding-block-start:3.6rem}
}
html[data-motion='on'] .v2-reveal .mcp-track__line i{transform:scaleY(0);transition:transform 2s var(--ease-out) .3s}
@media (min-width:64rem){html[data-motion='on'] .v2-reveal .mcp-track__line i{transform:scaleX(0)}}
html[data-motion='on'] .v2-reveal.is-in .mcp-track__line i{transform:none}
html[data-motion='on'] .v2-reveal .mcp-track__dot{transform:scale(.4);opacity:0;transition:transform .5s var(--ease-snap) calc(.35s + var(--i,0) * .3s),opacity .3s var(--ease-out) calc(.35s + var(--i,0) * .3s)}
html[data-motion='on'] .v2-reveal.is-in .mcp-track__dot{transform:none;opacity:1}
html[data-motion='on'] .v2-reveal .mcp-track__step > :not(.mcp-track__dot){opacity:0;transition:opacity .5s var(--ease-out) calc(.5s + var(--i,0) * .3s)}
html[data-motion='on'] .v2-reveal.is-in .mcp-track__step > :not(.mcp-track__dot){opacity:1}

/* ── The same layer, before and after Tableau retires ── */
.mcp-retire{display:grid;gap:var(--gap);grid-template-columns:minmax(0,1fr);margin-block-start:clamp(1.5rem,3vw,2.25rem)}
@media (min-width:52rem){.mcp-retire{grid-template-columns:repeat(2,minmax(0,1fr))}}
.mcp-retire__st{margin:0;padding:clamp(1rem,2vw,1.35rem);border:var(--rule);border-radius:var(--card-r);background:var(--card)}
.mcp-retire__cap{margin:0 0 .8rem;font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-subtle)}
.mcp-retire__map{position:relative;block-size:clamp(11rem,20vw,13rem)}
.mcp-retire__svg{position:absolute;inset:0;inline-size:100%;block-size:100%;overflow:visible}
.mcp-retire__svg path{fill:none;stroke-width:2;vector-effect:non-scaling-stroke;stroke-dasharray:5 6}
.mcp-retire__svg .w-tab{stroke:var(--ink-tab)}.mcp-retire__svg .w-dbx{stroke:var(--ink-dbx)}.mcp-retire__svg .w-snow{stroke:var(--ink-snow)}
html[data-motion='on'] .mcp-retire__svg path{animation:mcp-dash 1.4s linear infinite}
@keyframes mcp-dash{to{stroke-dashoffset:-22}}
.mcp-retire__n{position:absolute;z-index:1;display:inline-flex;align-items:center;gap:.1rem;padding:.4rem .7rem;border:var(--rule-strong);border-radius:var(--r-sm);
  background:var(--bg-elev);font-size:.84rem;font-weight:700;color:var(--fg);transform:translate(-50%,-50%);white-space:nowrap}
.mcp-retire__n--tab{left:16%;top:50%}.mcp-retire__n--core{left:50%;top:50%;padding:.55rem .75rem;border-color:var(--accent-text)}
.mcp-retire__n--dbx{left:82%;top:24%}.mcp-retire__n--snow{left:82%;top:76%}
.mcp-retire__mark{inline-size:2.2rem;block-size:auto;color:var(--accent-text)}
.mcp-retire__n em{position:absolute;inset-block-start:-.7rem;inset-inline-end:-.9rem;padding:.12rem .4rem;border-radius:var(--r-sm);background:var(--bad);color:#1a0508;
  font-style:normal;font-size:.62rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.mcp-retire__st--after .mcp-retire__n--tab{opacity:.4;filter:grayscale(1)}
.mcp-retire__st--after .mcp-retire__svg .w-tab{opacity:.25;animation:none}
html[data-motion='on'] .v2-reveal .mcp-retire__st--after .mcp-retire__n--tab{opacity:1;filter:none;transition:opacity 1s var(--ease-out) 1.2s,filter 1s var(--ease-out) 1.2s}
html[data-motion='on'] .v2-reveal.is-in .mcp-retire__st--after .mcp-retire__n--tab{opacity:.4;filter:grayscale(1)}
html[data-motion='on'] .v2-reveal .mcp-retire__n em{opacity:0;transform:scale(1.6) rotate(-8deg);transition:opacity .4s var(--ease-out) 2s,transform .45s var(--ease-snap) 2s}
html[data-motion='on'] .v2-reveal.is-in .mcp-retire__n em{opacity:1;transform:none}

/* ── The plan chart (SDLC) ── */
.mcp-gantt{--gl:clamp(6.5rem,26%,9.5rem);margin:0;display:grid;gap:.85rem;padding:clamp(1rem,2.4vw,1.6rem);border:var(--rule);border-radius:var(--card-r);background:var(--card)}
.mcp-gantt__scale{position:relative;block-size:1.5rem;margin-inline-start:var(--gl);border-bottom:var(--rule)}
.mcp-gantt__scale span{position:absolute;inset-block-end:.35rem;inset-inline-start:calc(var(--s) * 1%);inline-size:calc(var(--w) * 1%);padding-inline-start:.45rem;
  border-inline-start:var(--rule-strong);font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--fg-subtle);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mcp-gantt__rows{position:relative;list-style:none;margin:0;padding:0;display:grid;gap:.6rem}
.mcp-gantt__rows::before{content:'';position:absolute;inset-block:-.45rem;inset-inline-start:calc(var(--gl) + (100% - var(--gl)) / 2);border-inline-start:1.5px dashed var(--accent-text);opacity:.55}
.mcp-gantt__row{display:grid;grid-template-columns:var(--gl) minmax(0,1fr);align-items:center}
.mcp-gantt__name{padding-inline-end:.75rem;font-size:.88rem;font-weight:600;color:var(--fg)}
.mcp-gantt__track{position:relative;block-size:12px;border-radius:3px;background:var(--bg-tint)}
.mcp-gantt__track i{position:absolute;inset-block:0;inset-inline-start:calc(var(--s) * 1%);inline-size:calc(var(--w) * 1%);border-radius:3px;background:var(--accent-text);transform-origin:0 50%}
.mcp-gantt__ms{position:relative;block-size:1.7rem;margin-inline-start:var(--gl)}
.mcp-gantt__flag{position:absolute;inset-block-start:.2rem;inset-inline-start:calc(var(--at) * 1%);transform:translateX(-50%);font-size:.76rem;font-weight:700;color:var(--accent-text);white-space:nowrap}
.mcp-gantt__flag--live{transform:translateX(-100%);padding:.12rem .55rem;border-radius:var(--r-pill);background:var(--accent-text);color:var(--bg-panel)}

/* ── The timeline rail, with a light that travels down it ── */
.mcp-tl{--tlpad:clamp(1.9rem,3.2vw,2.6rem);position:relative;display:grid;gap:clamp(1.75rem,3.4vw,2.5rem);margin-block-start:clamp(1.5rem,3vw,2.25rem);padding-inline-start:var(--tlpad)}
.mcp-tl__rail{position:absolute;inset-block:.45rem 1.1rem;inset-inline-start:6px;inline-size:2px;background:var(--line-strong)}
.mcp-tl__rail i{position:absolute;inset:0;background:var(--accent-text);transform-origin:50% 0}
html[data-motion='on'] .v2-reveal .mcp-tl__rail i{transform:scaleY(0);transition:transform 2.2s var(--ease-out) .25s}
html[data-motion='on'] .v2-reveal.is-in .mcp-tl__rail i{transform:none}
.mcp-tl__spark{position:absolute;left:50%;top:calc(var(--tl-p,0) * 100%);inline-size:12px;block-size:12px;margin:-6px 0 0 -6px;border-radius:50%;
  background:#fff;box-shadow:0 0 0 4px var(--accent-soft),0 0 18px 4px var(--accent-text);opacity:0}
html[data-motion='on'] .mcp-tl.is-live .mcp-tl__spark{opacity:1}
.mcp-tl__wk{position:relative;display:grid;gap:.95rem}
.mcp-tl__wkh{position:relative;margin:0;font-size:.82rem;font-weight:700;letter-spacing:var(--track-eyebrow);text-transform:uppercase;color:var(--fg-subtle)}
.mcp-tl__pin{position:absolute;inset-inline-start:calc(1px - var(--tlpad));top:.12em;inline-size:12px;block-size:12px;border-radius:50%;background:var(--bg-panel);border:2px solid var(--accent-text)}
.mcp-tl__steps{list-style:none;margin:0;padding:0;display:grid;gap:var(--gap);grid-template-columns:minmax(0,1fr)}
@media (min-width:48rem){.mcp-tl__steps{grid-template-columns:repeat(2,minmax(0,1fr))}}
.mcp-tl__step{padding:clamp(1rem,2vw,1.4rem);border:var(--rule);border-radius:var(--card-r);background:var(--card);transition:border-color var(--hover) var(--ease-out)}
.mcp-tl__step:hover{border-color:var(--line-edge)}
.mcp-tl__when{margin:0;font-size:.8rem;font-weight:700;letter-spacing:.05em;color:var(--accent-text);font-variant-numeric:tabular-nums}
.mcp-tl__h{margin:.3rem 0 .65rem;font-size:1.1rem;font-weight:600;color:var(--fg)}
.mcp-tl__list{list-style:none;margin:0;padding:0;display:grid;gap:.38rem}
.mcp-tl__list li{position:relative;padding-inline-start:1rem;font-size:.9rem;line-height:1.5;color:var(--fg-muted)}
.mcp-tl__list li::before{content:'';position:absolute;inset-inline-start:0;top:.62em;inline-size:5px;block-size:5px;border-radius:50%;background:var(--accent-text)}
.mcp-tl__ms{position:relative;justify-self:start;display:inline-flex;align-items:center;gap:.45rem;margin:0;padding:.45rem .95rem;border:1px solid var(--accent-text);
  border-radius:var(--r-pill);background:var(--accent-soft);font-size:.92rem;font-weight:700;color:var(--accent-text)}
.mcp-tl__msdot{position:absolute;inset-inline-start:calc(0px - var(--tlpad));inline-size:14px;block-size:14px;border-radius:50%;background:var(--accent-text);box-shadow:0 0 0 5px var(--accent-soft)}
.mcp-tl__ms--live{background:var(--accent-text);color:var(--bg-panel)}

/* ── Pager ── */
.mcp-pager{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gap)}
.mcp-pager__a{display:grid;align-content:start;gap:.3rem;padding:1.05rem 1.25rem;border:var(--rule);border-radius:var(--card-r);background:var(--card);text-decoration:none;color:inherit;
  transition:border-color var(--micro) var(--ease-out),transform var(--micro) var(--ease-out)}
.mcp-pager__a--next{text-align:end;justify-items:end}
.mcp-pager__a--none{border:0;background:none}
.mcp-pager__k{font-size:.76rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-text)}
.mcp-pager__arr{display:inline-block;transition:transform var(--micro) var(--ease-out)}
.mcp-pager__t{font-size:1.12rem;font-weight:600;color:var(--fg)}
.mcp-pager__g{display:inline-flex;align-items:center;gap:.4rem;font-size:.84rem;color:var(--fg-muted)}
.mcp-pager__g .mcp-ico{color:var(--accent-text)}
.mcp-pager__a:not(.mcp-pager__a--none):hover{border-color:var(--accent-text)}
@media (hover:hover) and (pointer:fine){.mcp-pager__a--prev:hover .mcp-pager__arr{transform:translateX(-4px)}}
@media (hover:hover) and (pointer:fine){.mcp-pager__a--next:hover .mcp-pager__arr{transform:translateX(4px)}}
@media (hover:hover) and (pointer:fine){html[data-motion='on'] .mcp-pager__a:not(.mcp-pager__a--none):hover{transform:translateY(-2px)}}
.mcp-pager__a:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
@media (max-width:36rem){.mcp-pager{grid-template-columns:minmax(0,1fr)}.mcp-pager__a--none{display:none}}

/* ── Explore: the five menus ── */
.mcp-explore{display:grid;gap:clamp(1.25rem,2.4vw,2rem) var(--gap);grid-template-columns:minmax(0,1fr)}
@media (min-width:44rem){.mcp-explore{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:66rem){.mcp-explore{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:90rem){.mcp-explore{grid-template-columns:repeat(5,minmax(0,1fr))}}
.mcp-explore__g{border-top:2px solid var(--accent-text);padding-block-start:1rem;min-inline-size:0}
.mcp-explore__h{display:flex;align-items:center;gap:.55rem;margin:0 0 .5rem;font-size:1.06rem;font-weight:700;color:var(--fg)}
.mcp-explore__ico{display:grid;place-items:center;inline-size:2.2rem;block-size:2.2rem;border-radius:var(--r-sm);background:var(--accent-soft);color:var(--accent-text)}
.mcp-explore__ico .mcp-ico{inline-size:1.2rem;block-size:1.2rem}
.mcp-explore__n{font-size:var(--fs-2xs);letter-spacing:.1em;color:var(--accent-text);font-variant-numeric:tabular-nums}
.mcp-explore__list{list-style:none;margin:0;padding:0;display:grid;gap:.15rem}
.mcp-explore__a{display:grid;gap:.22rem;padding:.7rem .75rem;margin-inline:-.75rem;border-radius:var(--r-sm);text-decoration:none;color:inherit;transition:background-color var(--micro) var(--ease-out)}
.mcp-explore__t{display:flex;align-items:baseline;gap:.4rem;font-weight:600;color:var(--fg)}
.mcp-explore__t::after{content:'\2192';color:var(--accent-text);opacity:0;transform:translateX(-4px);transition:opacity var(--micro) var(--ease-out),transform var(--micro) var(--ease-out)}
.mcp-explore__d{font-size:.88rem;line-height:1.45;color:var(--fg-muted)}
.mcp-explore__a:hover{background:var(--card-flat)}
.mcp-explore__a:focus-visible .mcp-explore__t::after{opacity:1;transform:none}
@media (hover:hover) and (pointer:fine){.mcp-explore__a:hover .mcp-explore__t::after{opacity:1;transform:none}}
.mcp-explore__a[aria-current="page"] .mcp-explore__t{color:var(--accent-text)}
.mcp-explore__a:focus-visible{outline:3px solid var(--accent);outline-offset:0}

/* ═══════════ The home showcase: the whole Boreon MCP Layer on one spatial stage ═══════════ */
.mcp-show{position:relative;isolation:isolate;overflow:hidden;background:var(--bg-panel);padding-block:clamp(4.5rem,8vw,8.5rem);color:var(--fg-body)}
.mcp-show__aurora{position:absolute;inset:-20% -10%;z-index:-1;pointer-events:none;
  background:radial-gradient(44% 52% at 72% 42%,color-mix(in srgb,var(--accent) 22%,transparent),transparent 70%),
    radial-gradient(36% 46% at 12% 88%,color-mix(in srgb,var(--accent-strong) 16%,transparent),transparent 70%)}
html[data-motion='on'] .mcp-show__aurora{animation:mcp-drift 30s ease-in-out infinite alternate}
.mcp-show__head{max-inline-size:52rem}
/* The NEW pill (owner: centred, padded symmetrically). The box is trimmed to the capitals, so
   equal top and bottom padding centres them exactly; the lead side carries a sliver more pad to
   balance the tracking that trails the last letter (measured to within a quarter pixel). */
.mcp-new{display:inline-block;line-height:1;text-box-trim:trim-both;text-box-edge:cap alphabetic;
  padding:.44rem calc(.66rem - .025em) .44rem calc(.66rem + .025em);border-radius:var(--r-pill);background:var(--accent);color:var(--accent-contrast);
  font-size:.66rem;letter-spacing:.12em;white-space:nowrap}
[data-theme="light"] .mcp-show .mcp-new{background:#F2F5FA;color:#0A0E1A}
.mcp-show__h{margin:0;font-size:var(--fs-display);font-weight:500;line-height:1.1;letter-spacing:-.02em;color:var(--fg);text-wrap:balance}
.mcp-show__lede{max-inline-size:42rem}
/* Home's hero (owner, 2026-09-26): the wordmark over the eyebrow, the statement in the wide
   column and home's proof register in the narrow one, the spatial stage full width below. */
.mcp-show__top{display:grid;gap:clamp(2.25rem,5vw,3.25rem)}
.mcp-show--hero{padding-block:clamp(2.75rem,6vw,6.25rem) clamp(4rem,7vw,7rem)}
/* the headline scales with its own column, not the window, so it keeps its shape beside the register */
.mcp-show--hero .mcp-show__head{max-inline-size:none;container-type:inline-size}
.mcp-show--hero .mcp-show__h{font-size:clamp(2.35rem,1.3rem + 3.4vw,4.75rem);font-size:clamp(2.3rem,10.6cqi,4.75rem);line-height:1.06}
.mcp-show--hero .mcp-show__lede{max-inline-size:40rem}
.mcp-show__mark{margin-block-end:clamp(1.75rem,3.2vw,2.6rem)}
/* Each figure spans two rows of a shared subgrid, so a figure that wraps (the reach, or any
   longer language) never pulls its neighbour off line: figures sit on their labels, labels
   start together, and the rules stay level. */
.mcp-show__register .v2-stat{display:grid;grid-row:span 2;grid-template-rows:subgrid;row-gap:.5rem}
.mcp-show__register .v2-stat__v{align-self:end;color:var(--fg);font-variant-numeric:tabular-nums;white-space:normal;text-wrap:balance}
.mcp-show__register .v2-stat__l{align-self:start;margin:0}
[data-theme="light"] .mcp-show .v2-btn--primary{background:#F2F5FA;color:#0A0E1A}
[data-theme="light"] .mcp-show .v2-btn--primary:hover{background:#fff}
[data-theme="light"] .mcp-show .v2-btn--ghost{color:#F2F5FA;border-color:rgba(255,255,255,.42)}
[data-theme="light"] .mcp-show .v2-btn--ghost:hover{color:#fff;border-color:#fff}
@media (min-width:60rem){
  .mcp-show--hero .mcp-show__top{grid-template-columns:minmax(0,7fr) minmax(0,5fr);column-gap:clamp(2.5rem,5.5vw,6rem);align-items:center}
  .mcp-show--hero .mcp-show__aside{padding-block-start:clamp(4rem,7vw,6.5rem)}
}
.mcp-show__stage{position:relative;display:grid;margin-block-start:clamp(2.25rem,4.5vw,3.5rem)}
.mcp-show__view{position:relative;inline-size:100%;aspect-ratio:21 / 9;min-block-size:20rem;border:1px solid rgba(255,255,255,.1);border-radius:var(--card-r);overflow:hidden;background:#03050C}
.mcp-show__poster{position:absolute;inset:0;inline-size:100%;block-size:100%;object-fit:cover;transition:opacity 1s var(--ease-out)}
.mcp-show.is-live .mcp-show__poster{opacity:0}
.mcp-show__cv{position:absolute;inset:0;inline-size:100%;block-size:100%;display:block;cursor:grab}
.mcp-show__labels{display:none}
.mcp-show__pause{position:absolute;inset-inline-end:1rem;inset-block-end:1rem;z-index:3;display:none;place-items:center;inline-size:44px;block-size:44px;border-radius:50%;
  border:1px solid rgba(255,255,255,.34);background:rgba(3,5,12,.6);color:#fff;cursor:pointer;transition:border-color var(--micro) var(--ease-out)}
.mcp-show.is-live .mcp-show__pause{display:grid}
.mcp-show__pause:hover{border-color:#fff}
.mcp-show__pause:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.mcp-show__pi{position:relative;inline-size:12px;block-size:14px}
.mcp-show__pi::before,.mcp-show__pi::after{content:'';position:absolute;inset-block:0;inline-size:4px;border-radius:1px;background:currentColor}
.mcp-show__pi::before{left:0}.mcp-show__pi::after{right:0}
.mcp-show__pause[aria-pressed="true"] .mcp-show__pi::before{inline-size:0;block-size:0;border-radius:0;background:none;border-style:solid;border-width:7px 0 7px 12px;border-color:transparent transparent transparent currentColor;left:1px}
.mcp-show__pause[aria-pressed="true"] .mcp-show__pi::after{display:none}
.mcp-show__chapters{display:none;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem;margin-block-start:.85rem}
.mcp-show.is-live .mcp-show__chapters{display:grid}
.mcp-show__tab{position:relative;display:flex;align-items:center;gap:.55rem;min-block-size:48px;padding:.75rem .95rem 1rem;border:1px solid rgba(255,255,255,.12);
  border-radius:var(--r-sm);background:transparent;color:var(--fg-muted);font:inherit;font-weight:600;text-align:start;cursor:pointer;
  transition:border-color var(--micro) var(--ease-out),background-color var(--micro) var(--ease-out),color var(--micro) var(--ease-out)}
.mcp-show__tab:hover{color:var(--fg);border-color:rgba(255,255,255,.28)}
.mcp-show__tab[aria-selected="true"]{color:var(--fg);border-color:var(--accent-text);background:var(--accent-soft)}
.mcp-show__tab:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.mcp-show__tab .mcp-ico{color:var(--accent-text)}
.mcp-show__num{font-size:.72rem;font-weight:700;letter-spacing:.1em;color:var(--accent-text);font-variant-numeric:tabular-nums}
.mcp-show__k{font-size:.98rem}
.mcp-show__bar{position:absolute;inset-inline:.95rem;inset-block-end:.45rem;block-size:2px;border-radius:1px;background:rgba(255,255,255,.1);overflow:hidden}
.mcp-show__bar i{display:block;block-size:100%;background:var(--accent-text);transform-origin:0 50%;transform:scaleX(0)}
.mcp-show__panels{display:grid;gap:var(--gap);grid-template-columns:minmax(0,1fr);margin-block-start:1.25rem}
@media (min-width:52rem){.mcp-show:not(.is-live) .mcp-show__panels{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:80rem){.mcp-show:not(.is-live) .mcp-show__panels{grid-template-columns:repeat(4,minmax(0,1fr))}}
.mcp-show__panel{padding-block-start:1rem;border-top:var(--rule-strong)}
.mcp-show.is-live .mcp-show__panel{display:none;border-top:0;padding-block-start:0}
.mcp-show.is-live .mcp-show__panel.is-on{display:block}
html[data-motion='on'] .mcp-show.is-live .mcp-show__panel.is-on{animation:mcp-panel .55s var(--ease-out) backwards}
@keyframes mcp-panel{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.mcp-show__pk{display:flex;align-items:center;gap:.5rem;margin:0 0 .5rem;font-size:var(--fs-eyebrow);font-weight:700;letter-spacing:var(--track-eyebrow);text-transform:uppercase;color:var(--accent-text)}
.mcp-show__pk span{color:var(--fg-subtle)}
.mcp-show__ph{margin:0;font-size:clamp(1.35rem,1.05rem + 1vw,1.9rem);font-weight:600;line-height:1.2;letter-spacing:-.015em;color:var(--fg)}
.mcp-show__pp{margin:.6rem 0 0;max-inline-size:36rem;font-size:1rem;line-height:1.6;color:var(--fg-muted)}
.mcp-show__pl{display:inline-block;margin-block-start:.9rem;font-size:.95rem;font-weight:700;color:var(--accent-text);text-decoration:none;padding:.3rem 0;border-block-end:2px solid transparent;
  transition:border-color var(--micro) var(--ease-out)}
.mcp-show__pl:hover{border-block-end-color:var(--accent-text)}
.mcp-show__pl:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:3px}
/* Wide screens: the active chapter reads over the stage's quiet left side. Below 80rem the
   stage is too short for the longer languages' chapter text to clear the scene, so the text
   sits under the stage there, as it does on tablets. */
@media (min-width:80rem){
  /* 2:1 with a height cap; the explicit full width (on the base rule too) stops a height
     limit from resizing the stage's width through its aspect ratio, in either direction */
  .mcp-show.is-live .mcp-show__view{inline-size:100%;aspect-ratio:2 / 1;max-block-size:46rem}
  .mcp-show.is-live .mcp-show__panels{position:absolute;inset-inline-start:0;inset-block-start:0;z-index:2;inline-size:min(40%,30rem);margin:0;
    padding:clamp(1.5rem,2.5vw,2.25rem);pointer-events:none}
  .mcp-show.is-live .mcp-show__panel.is-on{pointer-events:auto}
  /* over the stage the chapter heading steps down a touch, so the longer languages keep it to two lines */
  .mcp-show.is-live .mcp-show__ph{font-size:clamp(1.3rem,.85rem + .85vw,1.75rem)}
  /* A soft plate behind the chapter text only, sized from the text block itself, so the words
     stay crisp while the scene below them (your people) keeps its full light. */
  .mcp-show.is-live .mcp-show__panels::before{content:'';position:absolute;inset:1px -32% -40% 1px;z-index:-1;pointer-events:none;
    border-start-start-radius:var(--card-r);
    background:radial-gradient(100% 100% at 0 0,rgba(3,5,12,.9) 0%,rgba(3,5,12,.74) 42%,rgba(3,5,12,0) 100%)}
}
@media (max-width:52rem){
  .mcp-show__view{aspect-ratio:4 / 3;min-block-size:16rem}
  .mcp-show__chapters{grid-template-columns:repeat(2,minmax(0,1fr))}
}
/* Phones: a square stage, so the spread-out scene has room above and below (mcp-stage.js); the
   pause button takes the top-left corner, the one spot the diagonal scene never reaches. */
@media (max-width:37.5rem){
  .mcp-show__view{aspect-ratio:1 / 1}
  .mcp-show__pause{inset-inline-end:auto;inset-block-end:auto;inset-inline-start:.75rem;inset-block-start:.75rem}
}
.mcp-show__proof{margin-block-start:clamp(2.5rem,5vw,3.75rem)}
.mcp-show__proof .v2-stat__v{color:var(--fg)}

/* ── Agentic Support and You keep the work (v3.22.0) ─────────────────────────────────────
   Five live components: Boreon Support answering with sources, a case timeline, the Kindness
   Procedure canvas, the Agentic Inbox and the handover into your environment. Each is hidden
   only while motion is on and it has not played yet (is-armed); without motion it is simply
   the finished picture. */
.mcp-hero__aside{align-self:center;min-inline-size:0}
.mcp-aside-line{display:flex;align-items:flex-start;gap:.6rem;margin-block-start:1.15rem;max-inline-size:40rem;font-size:.95rem;line-height:1.55;color:var(--fg-muted)}
.mcp-aside-line .mcp-ico{flex:0 0 auto;margin-top:.18rem;color:var(--accent-text)}
.mcp-track__step--end .mcp-track__dot{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}
.mcp-track__step--end .mcp-track__t{color:var(--accent-text)}

/* Boreon Support answering */
.mcp-kb,.mcp-case,.mcp-inbox{margin:0;border:var(--rule-strong);border-radius:var(--card-r);background:var(--card);overflow:hidden;box-shadow:var(--shadow-card)}
.mcp-kb__brand{display:inline-flex;align-items:center;gap:.45rem;color:var(--fg)}
.mcp-kb__brand .mcp-ico{color:var(--accent-text)}
.mcp-kb__body{display:grid;gap:.85rem;padding:1.1rem 1.15rem 1.2rem}
.mcp-kb__q{justify-self:end;max-inline-size:90%;margin:0;padding:.6rem .85rem;border-radius:var(--r-sm) var(--r-sm) 2px var(--r-sm);background:var(--accent);color:var(--accent-contrast);font-size:.92rem;font-weight:600;line-height:1.4}
.mcp-kb__search{display:flex;align-items:center;gap:.55rem;margin:0;font-size:.8rem;font-weight:600;color:var(--fg-subtle)}
.mcp-kb__dots{display:inline-flex;gap:3px}
.mcp-kb__dots i{inline-size:5px;block-size:5px;border-radius:50%;background:var(--accent-text)}
.mcp-kb__dots i:nth-child(2){animation-delay:.15s}.mcp-kb__dots i:nth-child(3){animation-delay:.3s}
html[data-motion='on'] .mcp-kb.is-searching:not(.is-sourced) .mcp-kb__dots i{animation:mcp-kbdot 1s ease-in-out infinite}
@keyframes mcp-kbdot{0%,80%,100%{opacity:.35;transform:none}40%{opacity:1;transform:translateY(-2px)}}
.mcp-kb__src{list-style:none;margin:0;padding:0;display:grid;gap:.4rem}
.mcp-kb__s{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.6rem;padding:.5rem .65rem;border:var(--rule);border-radius:var(--r-sm);background:var(--bg-tint)}
.mcp-kb__n{display:grid;place-items:center;inline-size:1.35rem;block-size:1.35rem;border-radius:4px;background:var(--accent-soft);color:var(--accent-text);font-size:.72rem;font-weight:700;font-variant-numeric:tabular-nums}
.mcp-kb__st{min-inline-size:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.84rem;font-weight:600;color:var(--fg)}
.mcp-kb__sk{display:inline-flex;align-items:center;gap:.35rem;font-size:.72rem;font-weight:600;color:var(--fg-subtle);white-space:nowrap}
.mcp-kb__a{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.65rem;align-items:start;margin:0;font-size:.92rem;line-height:1.55;color:var(--fg-body)}
.mcp-kb__a b{color:var(--fg)}
.mcp-kb__a sup{margin-inline-start:.1em;color:var(--accent-text);font-weight:700;font-size:.7em}
.mcp-kb__mark{inline-size:1.5rem;block-size:auto;margin-top:.25rem;color:var(--accent-text)}
.mcp-kb__next{display:flex;align-items:center;gap:.5rem;margin:0;padding-top:.75rem;border-top:var(--rule);font-size:.84rem;font-weight:600;color:var(--accent-text)}
@media (max-width:30rem){.mcp-kb__sk{display:none}}
html[data-motion='on'] .mcp-kb.is-armed :is(.mcp-kb__search,.mcp-kb__s,.mcp-kb__a,.mcp-kb__next){opacity:0;transform:translateY(6px)}
html[data-motion='on'] .mcp-kb.is-searching .mcp-kb__search,
html[data-motion='on'] .mcp-kb .mcp-kb__s.is-on,
html[data-motion='on'] .mcp-kb.is-answered :is(.mcp-kb__a,.mcp-kb__next){opacity:1;transform:none;transition:opacity .4s var(--ease-out),transform .5s var(--ease-out)}
html[data-motion='on'] .mcp-kb.is-answered .mcp-kb__next{transition-delay:.35s}

/* A case timeline */
.mcp-case__badge{margin-inline-start:auto;display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .6rem;border:1px solid var(--line-strong);border-radius:var(--r-pill);font-size:.72rem;font-weight:700;color:var(--fg-muted);transition:color .3s var(--ease-out),border-color .3s var(--ease-out),background-color .3s var(--ease-out)}
.mcp-case__badge.is-met{border-color:color-mix(in srgb,var(--ok) 55%,transparent);background:color-mix(in srgb,var(--ok) 10%,transparent);color:var(--ok)}
.mcp-case__list{position:relative;list-style:none;margin:0;padding:1rem 1.15rem 1.1rem}
.mcp-case__list::before,.mcp-case__list::after{content:'';position:absolute;inset-inline-start:calc(1.15rem + .95rem - 1px);inset-block:1.95rem 1.95rem;inline-size:2px;background:var(--line-strong);transform-origin:50% 0}
.mcp-case__list::after{background:var(--accent-text);transform:scaleY(var(--p,1));transition:transform .6s var(--ease-out)}
.mcp-case__e{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.85rem;padding:.5rem 0}
.mcp-case__dot{position:relative;z-index:1;display:grid;place-items:center;inline-size:1.9rem;block-size:1.9rem;border-radius:50%;background:var(--bg-panel);border:1.5px solid var(--accent-text);color:var(--accent-text)}
.mcp-case__e--held .mcp-case__dot{border-style:dashed}
.mcp-case__e--done .mcp-case__dot{background:var(--ok);border-color:var(--ok);color:#06140d}
.mcp-case__t{font-size:.9rem;font-weight:600;line-height:1.4;color:var(--fg)}
html[data-motion='on'] .mcp-case.is-armed .mcp-case__e{opacity:0;transform:translateX(-8px)}
html[data-motion='on'] .mcp-case .mcp-case__e.is-on{opacity:1;transform:none;transition:opacity .4s var(--ease-out),transform .5s var(--ease-out)}

/* Kindness, built in */
.mcp-kind{list-style:none;margin:0;padding:0;display:grid;gap:var(--gap);grid-template-columns:minmax(0,1fr)}
@media (min-width:44rem){.mcp-kind{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:68rem){.mcp-kind{grid-template-columns:repeat(6,minmax(0,1fr))}.mcp-kind__i{grid-column:span 2}.mcp-kind__i:nth-child(4){grid-column:2 / span 2}}
.mcp-kind__i{position:relative;display:grid;align-content:start;gap:.55rem;padding:clamp(1.2rem,2.1vw,1.6rem);border:var(--rule);border-radius:var(--card-r);background:var(--card)}
.mcp-kind__ico{display:grid;place-items:center;inline-size:2.6rem;block-size:2.6rem;border-radius:50%;background:var(--accent-soft);color:var(--accent-text)}
.mcp-kind__h{margin:0;font-size:1.08rem;font-weight:600;color:var(--fg)}
.mcp-kind__p{margin:0;font-size:.93rem;line-height:1.6;color:var(--fg-muted)}
.mcp-kind__q{position:relative;margin:.55rem 0 0;padding:.8rem .95rem;border-radius:var(--r-sm);background:var(--accent-soft);color:var(--fg);font-size:.92rem;line-height:1.55}
.mcp-kind__q::before{content:'';position:absolute;inset-block-start:-6px;inset-inline-start:1.1rem;inline-size:12px;block-size:12px;background:inherit;transform:rotate(45deg);border-radius:2px}
.mcp-kind__q p{margin:0}
@keyframes mcp-beat{0%,100%{transform:scale(1)}20%{transform:scale(1.2)}40%{transform:scale(1)}60%{transform:scale(1.12)}}
.mcp-ico--heart .i-beat{transform-origin:center;transform-box:fill-box}
html[data-motion='on'] .v2-reveal.is-in .mcp-kind__i:first-child .mcp-ico--heart .i-beat{animation:mcp-beat 1.1s var(--ease-out) .7s 2}
html[data-motion='on'] :is(.mcp-kind__i,.mcp-tile,.mcp-knode):hover .mcp-ico--heart .i-beat{animation:mcp-beat .9s var(--ease-out)}

/* Kindness Procedures on the Agentic Studio canvas */
.mcp-kcanvas{margin-block-start:clamp(1.5rem,3vw,2.25rem)}
.mcp-kcanvas__grid{list-style:none;margin:0 auto;padding:0;display:grid;gap:2.4rem;grid-template-columns:minmax(0,1fr);max-inline-size:24rem}
@media (min-width:52rem){
  .mcp-kcanvas__grid{max-inline-size:none;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:clamp(3rem,7vw,6.5rem);row-gap:clamp(2.75rem,5vw,4rem)}
  .mcp-knode--4{grid-column:3;grid-row:2}.mcp-knode--5{grid-column:2;grid-row:2}.mcp-knode--6{grid-column:1;grid-row:2}
}
.mcp-knode{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.75rem;padding:.9rem 1rem;border:var(--rule-strong);border-radius:var(--card-r);background:var(--card)}
.mcp-knode__ico{display:grid;place-items:center;inline-size:2.2rem;block-size:2.2rem;border-radius:var(--r-sm);background:var(--accent-soft);color:var(--accent-text)}
.mcp-knode__t{font-size:.95rem;font-weight:600;line-height:1.35;color:var(--fg)}
.mcp-knode--gate{border-color:var(--accent-text);box-shadow:0 0 0 4px var(--accent-soft)}
.mcp-knode__gate{position:absolute;inset-block-start:-.72rem;inset-inline-end:.8rem;padding:.12rem .55rem;border-radius:var(--r-pill);background:var(--accent);color:var(--accent-contrast);font-size:.66rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.mcp-kcanvas__note{margin-inline:auto;margin-block-start:clamp(1.75rem,3.5vw,2.5rem)}

/* The Agentic Inbox */
.mcp-inbox-stage{max-inline-size:68rem;margin:0 auto clamp(1.75rem,3.5vw,2.75rem)}
.mcp-inbox__body{display:grid;grid-template-columns:minmax(0,1fr)}
@media (min-width:48rem){.mcp-inbox__body{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr)}}
.mcp-inbox__list{list-style:none;margin:0;padding:0;border-bottom:var(--rule)}
@media (min-width:48rem){.mcp-inbox__list{border-bottom:0;border-inline-end:var(--rule)}}
.mcp-inbox__row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"ch from tag" "ch subj subj";column-gap:.75rem;row-gap:.15rem;align-items:center;padding:.8rem 1rem;border-bottom:var(--rule)}
.mcp-inbox__row:last-child{border-bottom:0}
.mcp-inbox__row.is-sel{background:var(--accent-soft)}
.mcp-inbox__ch{grid-area:ch;display:grid;place-items:center;inline-size:2.1rem;block-size:2.1rem;border-radius:50%;background:var(--bg-tint);color:var(--accent-text)}
.mcp-inbox__from{grid-area:from;min-inline-size:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.86rem;font-weight:700;color:var(--fg)}
.mcp-inbox__subj{grid-area:subj;min-inline-size:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.84rem;color:var(--fg-muted)}
.mcp-inbox__tag{grid-area:tag;padding:.14rem .55rem;border:1px solid var(--line-strong);border-radius:var(--r-pill);font-size:.7rem;font-weight:700;letter-spacing:.03em;color:var(--fg-muted);white-space:nowrap}
.mcp-inbox__tag--mood{color:var(--accent-text);border-color:var(--accent-text)}
.mcp-inbox__tag--urgent{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 55%,transparent)}
.mcp-inbox__tag--thanks{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 55%,transparent)}
.mcp-inbox__read{display:grid;align-content:start;gap:.75rem;padding:1.1rem 1.2rem 1.2rem}
.mcp-inbox__rf{margin:0;font-size:.8rem;font-weight:700;letter-spacing:.02em;color:var(--fg-subtle)}
.mcp-inbox__rq{margin:0;font-size:.95rem;line-height:1.5;color:var(--fg)}
.mcp-inbox__draft{display:grid;gap:.5rem;padding:.9rem 1rem;border:1px dashed var(--line-edge);border-radius:var(--r-sm);background:var(--bg-tint)}
.mcp-inbox__dl{display:flex;align-items:center;gap:.45rem;margin:0;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-text)}
.mcp-inbox__dt{margin:0;font-size:.9rem;line-height:1.6;color:var(--fg-body)}
.mcp-inbox__sig{margin:0;font-size:.88rem;color:var(--fg-muted)}
.mcp-inbox__act{display:flex;align-items:center;gap:.75rem;min-block-size:2.4rem;margin:0}
.mcp-inbox__btn{display:inline-flex;align-items:center;padding:.5rem .95rem;border-radius:var(--r-sm);background:var(--accent);color:var(--accent-contrast);font-size:.85rem;font-weight:700;transition:transform .15s var(--ease-out)}
.mcp-inbox__sent{display:none;align-items:center;gap:.4rem;font-size:.84rem;font-weight:700;color:var(--ok)}
.mcp-inbox.is-pressing .mcp-inbox__btn{transform:scale(.94)}
.mcp-inbox.is-sent .mcp-inbox__btn{display:none}
.mcp-inbox.is-sent .mcp-inbox__sent{display:inline-flex}
html[data-motion='on'] .mcp-inbox.is-armed .mcp-inbox__row{opacity:0;transform:translateX(-12px)}
html[data-motion='on'] .mcp-inbox .mcp-inbox__row.is-in{opacity:1;transform:none;transition:opacity .4s var(--ease-out),transform .5s var(--ease-out),background-color .4s var(--ease-out)}
html[data-motion='on'] .mcp-inbox.is-armed .mcp-inbox__tag{opacity:0;transform:scale(.85)}
html[data-motion='on'] .mcp-inbox .mcp-inbox__row.is-tagged .mcp-inbox__tag{opacity:1;transform:none;transition:opacity .3s var(--ease-out),transform .45s var(--ease-snap)}
html[data-motion='on'] .mcp-inbox.is-armed:not(.is-open) .mcp-inbox__row.is-sel{background:transparent}
html[data-motion='on'] .mcp-inbox.is-armed .mcp-inbox__read{opacity:0;transform:translateY(8px)}
html[data-motion='on'] .mcp-inbox.is-open .mcp-inbox__read{opacity:1;transform:none;transition:opacity .45s var(--ease-out),transform .55s var(--ease-out)}
html[data-motion='on'] .mcp-inbox.is-armed :is(.mcp-inbox__sig,.mcp-inbox__act){opacity:0}
html[data-motion='on'] .mcp-inbox.is-drafted :is(.mcp-inbox__sig,.mcp-inbox__act){opacity:1;transition:opacity .4s var(--ease-out)}
html[data-motion='on'] .mcp-inbox.is-sent .mcp-inbox__sent{animation:mcp-panel .5s var(--ease-out)}

/* The handover into your environment */
.mcp-vault{margin:0;display:grid;gap:.8rem;padding:clamp(1.1rem,2vw,1.5rem);border:var(--rule-strong);border-radius:var(--card-r);background:var(--card);box-shadow:var(--shadow-card)}
.mcp-vault__k{display:flex;align-items:center;gap:.5rem;margin:0 0 .7rem;font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-subtle)}
.mcp-vault__k .mcp-ico{color:var(--accent-text)}
.mcp-vault__phases{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.4rem}
.mcp-vault__ph{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .65rem;border:1px solid var(--accent-text);border-radius:var(--r-pill);font-size:.78rem;font-weight:600;color:var(--fg);transition:border-color .3s var(--ease-out),color .3s var(--ease-out)}
.mcp-vault__ph i{inline-size:.5rem;block-size:.5rem;border-radius:50%;background:var(--ok);transition:background-color .3s var(--ease-out)}
.mcp-vault__arrow{justify-self:center;display:grid;place-items:center;color:var(--accent-text);transform:rotate(90deg)}
.mcp-vault__to{padding:1rem 1.05rem;border:1.5px solid var(--accent-text);border-radius:var(--card-r);background:var(--bg-tint);transition:border-color .5s var(--ease-out)}
.mcp-vault__items{list-style:none;margin:0;padding:0;display:grid;gap:.45rem;grid-template-columns:repeat(2,minmax(0,1fr))}
.mcp-vault__it{display:flex;align-items:center;gap:.5rem;min-inline-size:0;padding:.55rem .7rem;border:var(--rule);border-radius:var(--r-sm);background:var(--card);font-size:.84rem;font-weight:600;line-height:1.3;color:var(--fg)}
.mcp-vault__it .mcp-ico{flex:0 0 auto;color:var(--accent-text)}
.mcp-vault__it:last-child{grid-column:1 / -1}
.mcp-vault__stamp{display:flex;align-items:center;justify-content:center;gap:.5rem;margin:.85rem 0 0;padding:.6rem;border-radius:var(--r-sm);background:var(--accent);color:var(--accent-contrast);font-size:.92rem;font-weight:700;letter-spacing:.02em}
@keyframes mcp-nudge-y{40%{transform:rotate(90deg) translateX(4px)}}
html[data-motion='on'] .mcp-vault.is-armed .mcp-vault__ph{border-color:var(--line-strong);color:var(--fg-muted)}
html[data-motion='on'] .mcp-vault.is-armed .mcp-vault__ph i{background:var(--line-strong)}
html[data-motion='on'] .mcp-vault .mcp-vault__ph.is-on{border-color:var(--accent-text);color:var(--fg)}
html[data-motion='on'] .mcp-vault .mcp-vault__ph.is-on i{background:var(--ok)}
html[data-motion='on'] .mcp-vault.is-armed .mcp-vault__arrow{opacity:.3}
html[data-motion='on'] .mcp-vault.is-moved .mcp-vault__arrow{opacity:1;animation:mcp-nudge-y .8s var(--ease-snap) 2;transition:opacity .3s var(--ease-out)}
html[data-motion='on'] .mcp-vault.is-armed .mcp-vault__to{border-style:dashed;border-color:var(--line-edge)}
html[data-motion='on'] .mcp-vault.is-locked .mcp-vault__to{border-style:solid;border-color:var(--accent-text)}
html[data-motion='on'] .mcp-vault.is-armed .mcp-vault__it{opacity:0;transform:translateY(-14px) scale(.96)}
html[data-motion='on'] .mcp-vault .mcp-vault__it.is-in{opacity:1;transform:none;transition:opacity .4s var(--ease-out),transform .55s var(--ease-snap)}
html[data-motion='on'] .mcp-vault.is-armed .mcp-vault__stamp{opacity:0;transform:scale(.9)}
html[data-motion='on'] .mcp-vault.is-locked .mcp-vault__stamp{opacity:1;transform:none;transition:opacity .45s var(--ease-out),transform .6s var(--ease-snap)}
html[data-motion='on'] .mcp-vault.is-locked .mcp-vault__stamp .i-shackle{animation:mcp-shackle .7s var(--ease-snap) .2s}

/* Managed Services, the offer card */
.mcp-ms{position:relative;isolation:isolate;overflow:hidden;display:grid;gap:clamp(1.5rem,3vw,2.5rem);padding:clamp(1.6rem,3.5vw,3rem);border:1px solid var(--accent-text);border-radius:var(--card-r);background:var(--card)}
.mcp-ms::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(60% 90% at 100% 0%,color-mix(in srgb,var(--accent) 20%,transparent),transparent 65%),radial-gradient(50% 70% at 0% 100%,color-mix(in srgb,var(--accent) 10%,transparent),transparent 65%)}
@media (min-width:60rem){.mcp-ms{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);align-items:center}}
.mcp-ms__ico{display:grid;place-items:center;inline-size:3rem;block-size:3rem;margin:0 0 1rem;border-radius:50%;background:var(--accent-soft);color:var(--accent-text)}
.mcp-ms__list{margin-block-start:1.1rem}
.mcp-ms__do{display:grid;gap:.75rem;align-content:center}
.mcp-ms__do .v2-btn{justify-content:center;text-align:center}
.mcp-ms__note{margin:.25rem 0 0;font-size:.86rem;line-height:1.5;color:var(--fg-subtle)}
html[data-motion='on'] .v2-reveal.is-in .mcp-ms__ico .mcp-ico{animation:mcp-spin 1.4s var(--ease-out) .5s 1}

/* Questions */
.mcp-faq{display:grid;gap:.6rem;max-inline-size:52rem}
.mcp-faq__i{border:var(--rule);border-radius:var(--card-r);background:var(--card);overflow:hidden}
.mcp-faq__q{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-block-size:44px;padding:1rem 1.15rem;cursor:pointer;list-style:none;font-size:1.02rem;font-weight:600;line-height:1.4;color:var(--fg)}
.mcp-faq__q::-webkit-details-marker{display:none}
.mcp-faq__q:hover{color:var(--accent-text)}
.mcp-faq__q:focus-visible{outline:3px solid var(--accent);outline-offset:-3px;border-radius:var(--card-r)}
.mcp-faq__chev{flex:0 0 auto;inline-size:.6rem;block-size:.6rem;border-inline-end:2px solid var(--accent-text);border-block-end:2px solid var(--accent-text);transform:rotate(45deg) translateY(-2px);transition:transform .25s var(--ease-out)}
.mcp-faq__i[open] .mcp-faq__chev{transform:rotate(-135deg) translateY(-2px)}
.mcp-faq__a{margin:0;padding:0 1.15rem 1.15rem;max-inline-size:44rem;font-size:.97rem;line-height:1.6;color:var(--fg-muted)}
html[data-motion='on'] .mcp-faq__i[open] .mcp-faq__a{animation:mcp-panel .35s var(--ease-out)}

/* Typed text keeps its finished size from the first frame (mcp.js armType, data-reserve). */
[data-reserve]{display:grid}
[data-reserve] > [aria-hidden]{grid-area:1 / 1}
.mcp-ghost{visibility:hidden}

/* ══ v3.23.0 · the live figures (plans/001-009 at the repo root) ════════════════════════
   One authored sequence per page that was still: the engine relay (layer), the parity
   scanner (proof), the becomes table and route pulses (migrations), the playhead plan
   (sdlc), the becomes strips (Databricks, Snowflake) and the role lens (portal). Each is
   complete and readable with motion off; mcp.js arms the players only under data-motion. */
.mcp-page{--ease-io:cubic-bezier(.77,0,.175,1)}

/* 001 · a loop rests while its section is off-screen (mcp.js marks the host .mcp-offstage) */
.mcp-offstage,.mcp-offstage *,.mcp-offstage::before,.mcp-offstage::after,
.mcp-offstage *::before,.mcp-offstage *::after{animation-play-state:paused!important}

/* 003 · the engine relay: one request, six engines, in the order the work moves */
.mcp-relay{margin-block-start:clamp(1.5rem,3vw,2.25rem)}
.mcp-relay__ask{display:flex;align-items:center;gap:.65rem;inline-size:fit-content;max-inline-size:min(100%,34rem);margin:0 0 3rem;padding:.75rem 1.05rem;
  border-radius:var(--card-r);background:var(--accent);color:var(--accent-contrast);font-size:.98rem;font-weight:600;line-height:1.45}
.mcp-relay__who{display:grid;place-items:center;flex:none;inline-size:1.9rem;block-size:1.9rem;border-radius:50%;background:color-mix(in srgb,var(--accent-contrast) 16%,transparent)}
.mcp-relay__grid{list-style:none;margin:0;padding:0;display:grid;gap:2.75rem 2.5rem;grid-template-columns:minmax(0,1fr)}
@media (min-width:40rem){
  .mcp-relay__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mcp-relay__e--1{grid-area:1 / 1}.mcp-relay__e--2{grid-area:1 / 2}.mcp-relay__e--3{grid-area:2 / 2}
  .mcp-relay__e--4{grid-area:2 / 1}.mcp-relay__e--5{grid-area:3 / 1}.mcp-relay__e--6{grid-area:3 / 2}
}
@media (min-width:64rem){
  .mcp-relay__grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .mcp-relay__e--1{grid-area:1 / 1}.mcp-relay__e--2{grid-area:1 / 2}.mcp-relay__e--3{grid-area:1 / 3}
  .mcp-relay__e--4{grid-area:2 / 3}.mcp-relay__e--5{grid-area:2 / 2}.mcp-relay__e--6{grid-area:2 / 1}
}
.mcp-relay__e{grid-template-rows:auto auto 1fr auto;align-content:stretch}
.mcp-relay__st{display:flex;align-items:center;gap:.6rem;margin:.35rem 0 0;padding-block-start:.8rem;border-top:var(--rule);font-size:.84rem;font-weight:700;line-height:1.4;color:var(--accent-text)}
.mcp-relay__tick{flex:none;inline-size:9px;block-size:5px;margin-block-start:-3px;border-inline-start:1.6px solid currentColor;border-block-end:1.6px solid currentColor;transform:rotate(-45deg)}
.mcp-relay__e.is-now{border-color:var(--accent-text);box-shadow:0 0 0 4px var(--accent-soft)}
html[data-motion='on'] .mcp-relay__e{transition:border-color .3s var(--ease-out),box-shadow .3s var(--ease-out)}
html[data-motion='on'] .mcp-relay__e.is-now .mcp-tile__ico .mcp-ico{animation:mcp-beat .9s var(--ease-out)}
html[data-motion='on'] .mcp-relay.is-armed .mcp-relay__st{opacity:0;transform:translateY(4px);transition:opacity .38s var(--ease-out),transform .38s var(--ease-out)}
html[data-motion='on'] .mcp-relay.is-armed .is-on .mcp-relay__st{opacity:1;transform:none}

/* 004 · the parity scanner: each sheet counts to its measured total as its meter fills,
   a tick lands, and only then the stamp */
.mcp-parity__n{font:inherit}
.mcp-parity__ok{display:inline-block;inline-size:9px;block-size:5px;margin-inline-start:.75rem;border-inline-start:1.6px solid var(--accent-text);border-block-end:1.6px solid var(--accent-text);transform:translateY(-.2em) rotate(-45deg)}
@media (max-width:40rem){.mcp-parity__ok{margin-inline-start:.4rem}}
.mcp-parity__stamp{display:inline-block;margin:1.1rem 0 .2rem .2rem;padding:.4rem .75rem;border:1.5px solid var(--accent-text);border-radius:var(--r-sm);
  font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-text);transform:rotate(-2deg)}
html[data-motion='on'] .mcp-parity.is-armed tbody .mcp-parity__meter i{transform:scaleX(0);transition:transform .8s var(--ease-out)}
html[data-motion='on'] .mcp-parity.is-armed .mcp-parity__sum .mcp-parity__meter i{transition-duration:1s}
html[data-motion='on'] .mcp-parity.is-armed tbody tr.is-on .mcp-parity__meter i{transform:none}
html[data-motion='on'] .mcp-parity.is-armed .mcp-parity__ok{opacity:0;transform:translateY(-.2em) rotate(-45deg) scale(.5);transition:opacity .26s var(--ease-snap),transform .26s var(--ease-snap)}
html[data-motion='on'] .mcp-parity.is-armed tr.is-ok .mcp-parity__ok{opacity:1;transform:translateY(-.2em) rotate(-45deg)}
html[data-motion='on'] .mcp-parity.is-armed:not(.is-stamped) .mcp-parity__stamp{opacity:0}
html[data-motion='on'] .mcp-parity.is-stamped .mcp-parity__stamp{animation:mcp-seal .55s var(--ease-snap) both}
@keyframes mcp-seal{0%{opacity:0;transform:rotate(-9deg) scale(1.6)}100%{opacity:1;transform:rotate(-2deg)}}

/* 005 · the becomes table: the Tableau piece settles, then a light carries it across into
   what it becomes on each warehouse, row by row */
.mcp-map__v{display:block}
.mcp-map .v2-cmp td{position:relative;overflow:hidden}
.mcp-map .v2-cmp td::after{content:'';position:absolute;inset:0;pointer-events:none;opacity:0;transform:translateX(-101%);
  background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--ink-dbx) 26%,transparent) 65%,transparent)}
.mcp-map .v2-cmp td + td::after{background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--ink-snow) 26%,transparent) 65%,transparent)}
html[data-motion='on'] .v2-reveal .mcp-map tbody tr{--t0:calc(.3s + var(--i,0) * 190ms)}
html[data-motion='on'] .v2-reveal .mcp-map tbody th{opacity:0;transform:translateX(-4px);transition:opacity .36s var(--ease-out) var(--t0),transform .36s var(--ease-out) var(--t0)}
html[data-motion='on'] .v2-reveal .mcp-map .mcp-map__v{opacity:0;transform:translateX(-6px);transition:opacity .36s var(--ease-out) calc(var(--t0) + .31s),transform .36s var(--ease-out) calc(var(--t0) + .31s)}
html[data-motion='on'] .v2-reveal .mcp-map td + td .mcp-map__v{transition-delay:calc(var(--t0) + .46s)}
html[data-motion='on'] .v2-reveal.is-in .mcp-map tbody th,html[data-motion='on'] .v2-reveal.is-in .mcp-map .mcp-map__v{opacity:1;transform:none}
html[data-motion='on'] .v2-reveal.is-in .mcp-map td::after{animation:mcp-handoff .62s var(--ease-out) calc(var(--t0) + .15s) both}
html[data-motion='on'] .v2-reveal.is-in .mcp-map td + td::after{animation-delay:calc(var(--t0) + .3s)}
@keyframes mcp-handoff{0%{opacity:1;transform:translateX(-101%)}100%{opacity:1;transform:translateX(101%)}}

/* 006 · the playhead plan: four weeks play out once; each bar paints behind the head (its
   delay and length are its own start and width on the same clock), MVP lands at week two */
.mcp-gantt{--T:4.4s;--g0:.35s;overflow-x:clip}
.mcp-gantt__body{position:relative}
.mcp-gantt__head{position:absolute;inset-block:-.55rem;inset-inline-start:var(--gl);inline-size:calc(100% - var(--gl));pointer-events:none;opacity:0}
.mcp-gantt__head i{position:absolute;inset-block:0;inset-inline-start:-1px;inline-size:2px;border-radius:2px;background:var(--accent-text);box-shadow:0 0 0 3px var(--accent-soft)}
.mcp-gantt__head i::before{content:'';position:absolute;inset-block-start:-5px;inset-inline-start:-3px;inline-size:8px;block-size:8px;border-radius:50%;background:var(--accent-text)}
.mcp-gantt__flag--live::after{content:'';position:absolute;inset:-3px;border:2px solid var(--accent-text);border-radius:inherit;opacity:0;pointer-events:none}
html[data-motion='on'] .mcp-gantt.is-armed .mcp-gantt__track i{transform:scaleX(0)}
html[data-motion='on'] .mcp-gantt.is-armed .mcp-gantt__flag{opacity:0;scale:.7}
html[data-motion='on'] .mcp-gantt.is-armed .mcp-gantt__rows::before{opacity:.22}
html[data-motion='on'] .mcp-gantt.is-playing .mcp-gantt__head{animation:mcp-sweep calc(var(--T) + .3s) linear var(--g0) both}
html[data-motion='on'] .mcp-gantt.is-playing .mcp-gantt__track i{animation:mcp-fill calc(var(--w) * var(--T) / 100) linear calc(var(--g0) + var(--s) * var(--T) / 100) both}
html[data-motion='on'] .mcp-gantt.is-playing .mcp-gantt__flag{animation:mcp-flag .42s var(--ease-snap) calc(var(--g0) + var(--at) * var(--T) / 100) both}
html[data-motion='on'] .mcp-gantt.is-playing .mcp-gantt__rows::before{animation:mcp-glowline .5s var(--ease-out) calc(var(--g0) + var(--T) / 2) both}
html[data-motion='on'] .mcp-gantt.is-playing .mcp-gantt__flag--live::after{animation:mcp-ring 1.1s var(--ease-out) calc(var(--g0) + var(--T) + .12s) forwards}
@keyframes mcp-sweep{0%{opacity:1;transform:none}93.6%{opacity:1;transform:translateX(100%)}100%{opacity:0;transform:translateX(100%)}}
@keyframes mcp-fill{from{transform:scaleX(0)}to{transform:none}}
@keyframes mcp-flag{0%{opacity:0;scale:.7}60%{opacity:1;scale:1.08}100%{opacity:1;scale:1}}
@keyframes mcp-glowline{from{opacity:.22}to{opacity:.7}}

/* 007 · the becomes strips: the Tableau side in quiet ink, a one-way track, and what it
   becomes in the platform's ink, assembled once as the section arrives */
.mcp-convert__c{--d:calc(.45s + (var(--i,1) - 1) * .28s)}
.mcp-convert__fig{margin:0 0 .5rem;padding:.75rem .85rem;border:var(--rule);border-radius:var(--card-r);background:var(--bg-tint)}
.mcp-bc{display:block;inline-size:100%;block-size:auto;max-inline-size:22rem;overflow:visible}
.mcp-bc :is(rect,circle,path){fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}
.mcp-bc .f,.mcp-bc .f :is(rect,circle,path),.mcp-bc .mcp-bc__dot{fill:currentColor;stroke:none}
.mcp-bc__from{color:var(--fg-subtle)}
.mcp-bc__home{stroke-dasharray:3 3}
.mcp-bc__track{color:var(--accent-text)}
.mcp-bc .mcp-bc__dot{transform:translateX(56px)}
.mcp-bc__to{color:var(--ink-dbx)}
.mcp-convert__c--snow .mcp-bc__to{color:var(--ink-snow)}
.mcp-bc__chain{color:var(--fg-muted);transform:translateX(156px)}
.mcp-bc__draw{stroke-dasharray:100;stroke-dashoffset:0}
.mcp-bc__spark,.mcp-bc__refresh,.mcp-bc__tick{transform-box:fill-box;transform-origin:center}
html[data-motion='on'] .v2-reveal .mcp-bc__p,html[data-motion='on'] .v2-reveal .mcp-bc__tick,html[data-motion='on'] .v2-reveal .mcp-bc__spark{opacity:0}
html[data-motion='on'] .v2-reveal .mcp-bc__draw{stroke-dashoffset:100}
html[data-motion='on'] .v2-reveal.is-in .mcp-bc__p{animation:mcp-bc-in .32s var(--ease-out) calc(var(--d) + .95s + var(--k,0) * 90ms) both}
html[data-motion='on'] .v2-reveal.is-in .mcp-bc .mcp-bc__dot{animation:mcp-bc-run .7s var(--ease-io) calc(var(--d) + .3s) both}
html[data-motion='on'] .v2-reveal.is-in .mcp-bc__n{animation:mcp-bc-blink .55s var(--ease-out) calc(var(--d) + .2s + var(--k,0) * 170ms) both}
html[data-motion='on'] .v2-reveal.is-in .mcp-bc__draw{animation:mcp-bc-draw .6s var(--ease-out) calc(var(--d) + 1.45s) both}
html[data-motion='on'] .v2-reveal.is-in .mcp-bc--chain .mcp-bc__draw{animation-delay:calc(var(--d) + 1.65s)}
html[data-motion='on'] .v2-reveal.is-in .mcp-bc__spark{animation:mcp-bc-twinkle .6s var(--ease-snap) calc(var(--d) + 1.55s) both}
html[data-motion='on'] .v2-reveal.is-in .mcp-bc__refresh{animation:mcp-bc-turn .7s var(--ease-out) calc(var(--d) + 1.6s) both}
html[data-motion='on'] .v2-reveal.is-in .mcp-bc__chain{animation:mcp-bc-move .95s var(--ease-io) calc(var(--d) + .35s) both}
html[data-motion='on'] .v2-reveal.is-in .mcp-bc__tick{animation:mcp-bc-in .3s var(--ease-snap) calc(var(--d) + 1.4s) both}
@keyframes mcp-bc-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@keyframes mcp-bc-run{from{transform:none}to{transform:translateX(56px)}}
@keyframes mcp-bc-blink{0%{opacity:.3}45%{opacity:1;color:var(--accent-text)}100%{opacity:1}}
@keyframes mcp-bc-draw{from{stroke-dashoffset:100}to{stroke-dashoffset:0}}
@keyframes mcp-bc-twinkle{0%{opacity:0;transform:scale(.3) rotate(-40deg)}60%{opacity:1;transform:scale(1.25)}100%{opacity:1;transform:none}}
@keyframes mcp-bc-turn{from{transform:rotate(-220deg)}to{transform:none}}
@keyframes mcp-bc-move{from{transform:none}to{transform:translateX(156px)}}

/* 008 · the role lens: one question, two people; the rows a role can't see stay in place,
   redacted, so switching never moves the layout */
.mcp-lens{margin:1.6rem 0 0;border:var(--rule);border-radius:var(--card-r);background:var(--card);overflow:hidden}
.mcp-lens__top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem 1rem;padding:.8rem 1rem;border-bottom:var(--rule)}
.mcp-lens__sso{display:inline-flex;align-items:center;gap:.45rem;margin:0;font-size:.8rem;font-weight:700;letter-spacing:.03em;color:var(--fg-muted)}
.mcp-lens__sso .mcp-ico{color:var(--accent-text)}
.mcp-lens__roles{display:flex;flex-wrap:wrap;gap:.5rem}
.mcp-lens__role{display:inline-flex;align-items:center;gap:.45rem;min-block-size:44px;padding:.5rem .85rem;border:1px solid var(--line-strong);border-radius:var(--r-sm);
  background:transparent;color:var(--fg-body);font:inherit;font-size:.88rem;font-weight:600;cursor:pointer;
  transition:border-color var(--micro) var(--ease-out),background-color var(--micro) var(--ease-out),color var(--micro) var(--ease-out),transform var(--micro) var(--ease-out)}
.mcp-lens__role .mcp-ico{color:var(--accent-text)}
.mcp-lens__role[aria-pressed="true"]{border-color:var(--accent-text);background:var(--accent-soft);color:var(--fg)}
.mcp-lens__role:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.mcp-lens__role:active{transform:scale(.98)}
@media (hover:hover) and (pointer:fine){.mcp-lens__role:hover{border-color:var(--accent-text);color:var(--fg)}}
.mcp-lens__q{margin:1rem 1rem .6rem auto;inline-size:fit-content;max-inline-size:calc(100% - 2rem);padding:.6rem .9rem;border-radius:var(--card-r);
  background:var(--accent);color:var(--accent-contrast);font-size:.92rem;font-weight:600;line-height:1.45}
.mcp-lens__tbl{inline-size:calc(100% - 2rem);margin:0 1rem .75rem;border-collapse:collapse;font-size:.92rem}
.mcp-lens__tbl :is(th,td){padding:.6rem .25rem;border-bottom:var(--rule);text-align:start;vertical-align:middle}
.mcp-lens__tbl thead th{font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-muted)}
.mcp-lens__tbl tbody tr:last-child :is(th,td){border-bottom:0}
.mcp-lens__tbl tbody th{inline-size:38%;font-weight:600;color:var(--fg)}
.mcp-lens__cell{display:grid;align-items:center;min-block-size:1.6rem}
.mcp-lens__cell > *{grid-area:1 / 1}
.mcp-lens__val{display:flex;align-items:center;gap:.7rem}
.mcp-lens__meter{flex:none;inline-size:calc(var(--w) * .62);block-size:8px;border-radius:2px;background:var(--ink-dbx)}
.mcp-lens__num{font-weight:700;font-variant-numeric:tabular-nums;color:var(--fg)}
.mcp-lens__hatch{block-size:.8rem;inline-size:min(100%,6.5rem);border-radius:2px;background:repeating-linear-gradient(135deg,var(--line-strong) 0 2px,transparent 2px 7px)}
.mcp-lens__lock{display:inline-flex;align-items:center;gap:.4rem;font-size:.84rem;font-weight:600;color:var(--fg-muted)}
.mcp-lens tr:not(.is-hidden) :is(.mcp-lens__hatch,.mcp-lens__lock),.mcp-lens tr.is-hidden :is(.mcp-lens__name,.mcp-lens__val){visibility:hidden;opacity:0}
html[data-motion='on'] .mcp-lens__cell > *{transition:opacity .16s var(--ease-out),visibility 0s linear .16s}
html[data-motion='on'] .mcp-lens tr:not(.is-hidden) :is(.mcp-lens__name,.mcp-lens__val),
html[data-motion='on'] .mcp-lens tr.is-hidden :is(.mcp-lens__hatch,.mcp-lens__lock){transition:opacity .22s var(--ease-out) .1s,visibility 0s}

/* ══ v3.24.0 · the lift and shift between Databricks and Snowflake (migrations page) ════════
   A table lifts off one warehouse and lands on the other while a second makes the opposite
   trip; each takes the ink of where it lands (the SQL rewritten for that dialect) and the
   layer's mark glows as they cross. Plays once as the section arrives; the finished state
   (reduced motion, no JS) is both tables landed, with a tick on each. */
.mcp-lift{position:relative;margin:0;padding:clamp(1rem,2.4vw,1.6rem);border:var(--rule);border-radius:var(--card-r);background:var(--card)}
.mcp-lift__stage{position:relative}
.mcp-lift__svg{display:block;inline-size:100%;block-size:auto;overflow:visible}
.mcp-lift__svg :is(rect,path){fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.mcp-lift__dbx{color:var(--ink-dbx)}
.mcp-lift__snow{color:var(--ink-snow)}
.mcp-lift__base{stroke-width:2.5}
.mcp-lift__lane{color:var(--line-edge);stroke-dasharray:3 5}
.mcp-lift__head,.mcp-lift__tick{color:var(--accent-text)}
.mcp-lift__tick{stroke-width:1.8}
.mcp-lift__a{color:var(--ink-snow);transform:translate(304px,0)}
.mcp-lift__b{color:var(--ink-dbx);transform:translate(-304px,0)}
.mcp-lift__a rect,.mcp-lift__b rect{fill:var(--card-flat)}
.mcp-lift__mark{position:absolute;left:50%;top:61%;translate:-50% -50%;display:grid;place-items:center;inline-size:2.7rem;block-size:2.7rem;
  border:1px solid var(--accent-text);border-radius:var(--r-sm);background:var(--bg-panel);color:var(--accent-text)}
.mcp-lift__mark svg{inline-size:1.45rem;block-size:auto}
.mcp-lift__names{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:.75rem;margin:.75rem 0 0;font-size:.9rem;font-weight:700;color:var(--fg)}
.mcp-lift__names > :last-child{justify-self:end}
.mcp-lift__pl{white-space:nowrap}
/* a phone: the middle words take their own row, each warehouse keeps its dot beside its name */
@media (max-width:34rem){.mcp-lift__names{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:'what what' 'dbx snow';row-gap:.45rem}
  .mcp-lift__what{grid-area:what}.mcp-lift__pl{grid-area:dbx}.mcp-lift__pl--snow{grid-area:snow;justify-self:end}}
.mcp-lift__what{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-muted);text-align:center}
.mcp-lift__ticks{margin-block:1.1rem 0}
html[data-motion='on'] .v2-reveal .mcp-lift__a{transform:none;color:var(--ink-dbx)}
html[data-motion='on'] .v2-reveal .mcp-lift__b{transform:none;color:var(--ink-snow)}
html[data-motion='on'] .v2-reveal .mcp-lift__tick{opacity:0}
html[data-motion='on'] .v2-reveal.is-in .mcp-lift__a{animation:mcp-lift-a 2.6s var(--ease-io) 1s both}
html[data-motion='on'] .v2-reveal.is-in .mcp-lift__b{animation:mcp-lift-b 2.6s var(--ease-io) 1s both}
html[data-motion='on'] .v2-reveal.is-in .mcp-lift__mark{animation:mcp-lift-glow .8s var(--ease-out) 2.05s both}
html[data-motion='on'] .v2-reveal.is-in .mcp-lift__tick{animation:mcp-bc-in .3s var(--ease-snap) 3.7s both}
@keyframes mcp-lift-a{0%{transform:none;color:var(--ink-dbx)}18%{transform:translate(0,-58px)}44%{color:var(--ink-dbx)}56%{color:var(--ink-snow)}78%{transform:translate(304px,-58px)}100%{transform:translate(304px,0);color:var(--ink-snow)}}
@keyframes mcp-lift-b{0%{transform:none;color:var(--ink-snow)}18%{transform:translate(0,-36px)}44%{color:var(--ink-snow)}56%{color:var(--ink-dbx)}78%{transform:translate(-304px,-36px)}100%{transform:translate(-304px,0);color:var(--ink-dbx)}}
@keyframes mcp-lift-glow{0%{box-shadow:0 0 0 0 var(--accent-soft)}45%{box-shadow:0 0 0 12px var(--accent-soft)}100%{box-shadow:0 0 0 0 transparent}}
/* the hero's third route runs both ways: the dot changes ink as it crosses, like the SQL */
.mcp-routes__arrow--both::before{content:'';position:absolute;inset-inline-start:0;inset-block-start:50%;inline-size:.3em;block-size:.3em;
  border-block-end:max(.1em,1.5px) solid;border-inline-start:max(.1em,1.5px) solid;transform:translateY(-50%) rotate(45deg)}
html[data-motion='on'] .v2-reveal.is-in .mcp-routes__arrow--both i{animation:mcp-run 1.5s linear 1.25s 4 alternate both}
html[data-motion='on'] .v2-reveal.is-in .mcp-routes__arrow--both i::before{animation:mcp-inkrun 1.5s linear 1.25s 4 alternate both}
@keyframes mcp-inkrun{from{background:var(--ink-dbx)}to{background:var(--ink-snow)}}

/* ══ v3.25.0 · the Databricks ⇄ Snowflake page: each direction card's hairline runs from the
   ink it leaves to the ink it lands in, and it glows in the ink of where it lands ══════════ */
.mcp-dest--d2s::before{background:linear-gradient(90deg,var(--ink-dbx),var(--ink-snow))}
.mcp-dest--s2d::before{background:linear-gradient(90deg,var(--ink-snow),var(--ink-dbx))}
.mcp-dest--d2s::after{background:radial-gradient(closest-side,color-mix(in srgb,var(--ink-snow) 18%,transparent),transparent)}
.mcp-dest--s2d::after{background:radial-gradient(closest-side,color-mix(in srgb,var(--ink-dbx) 18%,transparent),transparent)}
.mcp-dest--d2s .mcp-dest__k,.mcp-dest--s2d .mcp-dest__k{gap:.3rem}
