/* Seguridad en IA — interactive learning visuals
 * Loaded after the general editorial styles so article visuals keep a stable
 * layout even when rendered inside the global animation shell.
 */

:is(.defsim,.jbsearch,.jbbudget,.jbladder,.memlife,.memgov,.memprop,.memlayers,.threatbuild,.uplift3,.causalrt,.regloop,.proddef,.mcpbound,.killpath,.releasegate) {
  --sv-teal: #26A69A;
  --sv-blue: #324AB2;
  --sv-amber: #FFB343;
  --sv-red: #D94D4D;
  --sv-bg: var(--md-default-bg-color, #fff);
  --sv-fg: var(--md-default-fg-color, #111827);
  --sv-muted: color-mix(in srgb, var(--sv-fg) 62%, transparent);
  --sv-line: color-mix(in srgb, var(--sv-fg) 14%, transparent);
  box-sizing: border-box;
}
:is(.defsim,.jbsearch,.jbbudget,.jbladder,.memlife,.memgov,.memprop,.memlayers,.threatbuild,.uplift3,.causalrt,.regloop,.proddef,.mcpbound,.killpath,.releasegate) *,
:is(.defsim,.jbsearch,.jbbudget,.jbladder,.memlife,.memgov,.memprop,.memlayers,.threatbuild,.uplift3,.causalrt,.regloop,.proddef,.mcpbound,.killpath,.releasegate) *::before,
:is(.defsim,.jbsearch,.jbbudget,.jbladder,.memlife,.memgov,.memprop,.memlayers,.threatbuild,.uplift3,.causalrt,.regloop,.proddef,.mcpbound,.killpath,.releasegate) *::after { box-sizing: border-box; }

/* Shared controls */
:is(.defsim,.jbsearch,.jbbudget,.jbladder,.memlife,.memgov,.memprop,.memlayers,.threatbuild,.uplift3,.causalrt,.regloop,.proddef,.mcpbound,.killpath,.releasegate) button {
  font: inherit;
}

/* Prompt injection — defense in depth */
.defsim__toggles { display:flex !important; gap:.45rem; flex-wrap:wrap; margin-top:.9rem; }
.defsim__toggles button {
  appearance:none; border:1px solid var(--sv-line) !important; background:var(--sv-bg) !important;
  border-radius:999px; padding:.5rem .72rem; font-size:.72rem; font-weight:800; cursor:pointer;
}
.defsim__toggles button[aria-pressed="true"] { background:color-mix(in srgb,var(--sv-teal) 16%,var(--sv-bg)) !important; border-color:color-mix(in srgb,var(--sv-teal) 50%,var(--sv-line)) !important; }
.defsim__path { display:grid !important; grid-template-columns:repeat(5,minmax(0,1fr)); gap:.55rem; margin-top:1rem; align-items:stretch; }
.defsim__stage { position:relative; min-height:156px; padding:.78rem; border:1px solid var(--sv-line); border-radius:16px; background:var(--sv-bg); transition:.3s ease; }
.defsim__stage:not(:last-child)::after { content:"→"; position:absolute; right:-.64rem; top:50%; transform:translateY(-50%); z-index:3; color:var(--sv-amber) !important; font-weight:900; }
.defsim__stage b { display:block; font-size:.83rem; line-height:1.25; }
.defsim__stage span { display:block; margin-top:.3rem; color:var(--sv-muted) !important; font-size:.69rem; line-height:1.4; }
.defsim__gate { margin-top:.65rem; padding:.48rem; border-radius:10px; background:color-mix(in srgb,var(--sv-bg) 88%,var(--sv-blue)); font-size:.66rem; font-weight:800; }
.defsim__attack { margin-top:.72rem; height:7px; border-radius:999px; background:var(--sv-red); transform-origin:left; transition:.35s ease; }
.defsim__stage.is-blocked { border-color:color-mix(in srgb,var(--sv-teal) 55%,var(--sv-line)); box-shadow:0 12px 28px color-mix(in srgb,var(--sv-teal) 12%,transparent); }
.defsim__stage.is-blocked .defsim__attack { transform:scaleX(.16); background:var(--sv-teal); }
.defsim__stage.is-after-block { opacity:.35; transform:scale(.97); }
.defsim__result { display:grid !important; grid-template-columns:auto 1fr; gap:.7rem; align-items:center; margin-top:.85rem; padding:.72rem .82rem; border:1px solid var(--sv-line); border-radius:14px; background:color-mix(in srgb,var(--sv-bg) 90%,var(--sv-red)); }
.defsim__result--safe { background:color-mix(in srgb,var(--sv-bg) 88%,var(--sv-teal)); }
.defsim__dot { width:10px; height:10px; border-radius:50%; background:var(--sv-red); }
.defsim__result--safe .defsim__dot { background:var(--sv-teal); }
.defsim__result strong { display:block; font-size:.78rem; }
.defsim__result span { display:block; margin-top:.12rem; font-size:.7rem; color:var(--sv-muted) !important; }

/* Jailbreak — adaptive search */
.jbsearch__grid { display:grid !important; grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr); gap:.8rem; margin-top:1rem; }
.jbsearch__loop { position:relative; min-height:330px; border:1px solid var(--sv-line); border-radius:18px; padding:.9rem; background:color-mix(in srgb,var(--sv-bg) 94%,var(--sv-blue)); overflow:hidden; }
.jbsearch__ring { position:absolute; left:50%; top:52%; width:220px; height:220px; transform:translate(-50%,-50%); border:2px dashed color-mix(in srgb,var(--sv-blue) 35%,transparent); border-radius:50%; }
.jbsearch__node { position:absolute; width:135px; min-height:70px; padding:.55rem; border:1px solid var(--sv-line); border-radius:14px; background:var(--sv-bg); font-size:.7rem; line-height:1.35; transition:.3s ease; }
.jbsearch__node b { display:block; margin-bottom:.2rem; font-size:.75rem; }
.jbsearch__node--seed { left:6%; top:42%; }
.jbsearch__node--mutate { left:50%; top:7%; transform:translateX(-50%); }
.jbsearch__node--model { right:6%; top:42%; }
.jbsearch__node--score { left:50%; bottom:5%; transform:translateX(-50%); }
.jbsearch__arrow { position:absolute; color:var(--sv-amber) !important; font-size:1.05rem; font-weight:900; }
.jbsearch__arrow--1 { left:29%; top:24%; transform:rotate(-38deg); }
.jbsearch__arrow--2 { right:29%; top:24%; transform:rotate(38deg); }
.jbsearch__arrow--3 { right:29%; bottom:22%; transform:rotate(142deg); }
.jbsearch__arrow--4 { left:29%; bottom:22%; transform:rotate(218deg); }
.jbsearch__attempts { position:absolute; left:8%; right:8%; bottom:45%; display:flex !important; gap:.25rem; flex-wrap:wrap; justify-content:center; }
.jbsearch__attempt { width:12px; height:12px; border-radius:50%; background:var(--sv-line); transition:.25s ease; }
.jbsearch__attempt.is-tried { background:var(--sv-amber); transform:scale(1.15); }
.jbsearch__attempt.is-hit { background:var(--sv-red); box-shadow:0 0 0 5px color-mix(in srgb,var(--sv-red) 14%,transparent); }
.jbsearch__panel { display:grid !important; gap:.55rem; align-content:start; }
.jbsearch__card { padding:.8rem; border:1px solid var(--sv-line); border-radius:15px; background:var(--sv-bg); }
.jbsearch__label { font-size:.64rem; font-weight:900; letter-spacing:.11em; text-transform:uppercase; color:var(--sv-muted) !important; }
.jbsearch__value { margin-top:.25rem; font-size:1.05rem; font-weight:900; }
.jbsearch__desc { margin-top:.3rem; color:var(--sv-muted) !important; font-size:.72rem; line-height:1.45; }
.jbsearch__progress { height:8px; border-radius:999px; background:var(--sv-line); overflow:hidden; margin-top:.45rem; }
.jbsearch__bar { height:100%; width:0; background:linear-gradient(90deg,var(--sv-amber),var(--sv-red)); transition:width .25s ease; }
.jbsearch__note { padding:.8rem; border-radius:15px; background:color-mix(in srgb,var(--sv-bg) 90%,var(--sv-blue)); color:var(--sv-muted) !important; font-size:.76rem; line-height:1.45; }
.jbsearch[data-round="1"] .jbsearch__node--mutate,
.jbsearch[data-round="2"] .jbsearch__node--model,
.jbsearch[data-round="3"] .jbsearch__node--score,
.jbsearch[data-round="4"] .jbsearch__node--seed { border-color:color-mix(in srgb,var(--sv-amber) 55%,var(--sv-line)); box-shadow:0 12px 24px color-mix(in srgb,var(--sv-amber) 12%,transparent); }

/* Jailbreak — budget */
.jbbudget__grid { display:grid !important; grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr); gap:.8rem; margin-top:1rem; }
.jbbudget__controls,.jbbudget__field { border:1px solid var(--sv-line); border-radius:17px; padding:.85rem; background:var(--sv-bg); }
.jbbudget__label { font-size:.65rem; font-weight:900; letter-spacing:.12em; text-transform:uppercase; color:var(--sv-muted) !important; }
.jbbudget__n { margin-top:.3rem; font-size:2.35rem; line-height:1; font-weight:900; color:var(--sv-blue) !important; }
.jbbudget input[type="range"] { display:block; width:100%; margin:.8rem 0; accent-color:var(--sv-blue); }
.jbbudget__modes { display:grid !important; gap:.4rem; }
.jbbudget__modes button { appearance:none; width:100%; text-align:left; border:1px solid var(--sv-line) !important; background:var(--sv-bg) !important; border-radius:12px; padding:.55rem .65rem; font-size:.7rem; font-weight:800; cursor:pointer; }
.jbbudget__modes button[aria-pressed="true"] { background:color-mix(in srgb,var(--sv-bg) 86%,var(--sv-blue)) !important; border-color:color-mix(in srgb,var(--sv-blue) 50%,var(--sv-line)) !important; }
.jbbudget__field { min-height:280px; display:grid !important; grid-template-rows:auto 1fr auto; }
.jbbudget__dots { display:grid !important; grid-template-columns:repeat(20,1fr); gap:4px; align-content:center; margin:.7rem 0; }
.jbbudget__dot { display:block; aspect-ratio:1; min-width:5px; border-radius:50%; background:var(--sv-line); transition:.2s ease; }
.jbbudget__dot.is-on { background:var(--sv-amber); transform:scale(1.06); }
.jbbudget__dot.is-feedback { background:var(--sv-blue); }
.jbbudget__legend { display:flex !important; gap:.8rem; flex-wrap:wrap; font-size:.67rem; color:var(--sv-muted) !important; }
.jbbudget__legend i { display:inline-block; width:8px; height:8px; border-radius:50%; margin-right:.25rem; }
.jbbudget__take { margin-top:.7rem; padding:.7rem .8rem; border-radius:14px; background:color-mix(in srgb,var(--sv-bg) 90%,var(--sv-amber)); font-size:.76rem; line-height:1.45; }

/* Jailbreak — outcome ladder */
.jbladder__row { display:grid !important; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.55rem; margin-top:1rem; }
.jbladder__step { appearance:none; position:relative; min-height:175px; padding:.8rem; border:1px solid var(--sv-line) !important; border-radius:16px; background:var(--sv-bg) !important; text-align:left; cursor:pointer; transition:.25s ease; }
.jbladder__step:not(:last-child)::after { content:"→"; position:absolute; right:-.62rem; top:50%; transform:translateY(-50%); color:var(--sv-amber) !important; font-weight:900; z-index:4; }
.jbladder__step[aria-pressed="true"] { transform:translateY(-5px); border-color:color-mix(in srgb,var(--sv-blue) 55%,var(--sv-line)) !important; box-shadow:0 14px 30px color-mix(in srgb,var(--sv-blue) 12%,transparent); }
.jbladder__n { font-size:.64rem; font-weight:900; letter-spacing:.12em; text-transform:uppercase; color:var(--sv-muted) !important; }
.jbladder__title { margin-top:.45rem; font-size:.95rem; font-weight:900; }
.jbladder__desc { margin-top:.35rem; font-size:.7rem; line-height:1.45; color:var(--sv-muted) !important; }
.jbladder__gate { margin-top:.65rem; padding:.45rem .55rem; border-radius:10px; background:color-mix(in srgb,var(--sv-bg) 88%,var(--sv-teal)); font-size:.65rem; font-weight:800; }
.jbladder__detail { display:grid !important; grid-template-columns:auto 1fr; gap:.7rem; align-items:start; margin-top:.8rem; padding:.8rem; border:1px solid var(--sv-line); border-radius:15px; background:color-mix(in srgb,var(--sv-bg) 92%,var(--sv-blue)); }
.jbladder__badge { padding:.35rem .55rem; border-radius:999px; background:var(--sv-blue); color:#fff !important; font-size:.63rem; font-weight:900; text-transform:uppercase; letter-spacing:.08em; }
.jbladder__detail strong { display:block; font-size:.8rem; }
.jbladder__detail span { display:block; margin-top:.2rem; color:var(--sv-muted) !important; font-size:.71rem; line-height:1.45; }

/* Memory — lifecycle */
.memlife__timeline { position:relative; display:grid !important; grid-template-columns:repeat(6,minmax(0,1fr)); gap:.5rem; margin-top:1rem; }
.memlife__timeline::before { content:""; position:absolute; left:5%; right:5%; top:38px; height:3px; background:var(--sv-line); }
.memlife__step { position:relative; z-index:1; padding:.7rem; border:1px solid var(--sv-line); border-radius:15px; background:var(--sv-bg); min-height:145px; transition:.25s ease; }
.memlife__dot { width:1.7rem; height:1.7rem; display:grid !important; place-items:center; border-radius:50%; background:color-mix(in srgb,var(--sv-blue) 12%,var(--sv-bg)); border:2px solid var(--sv-bg); font-size:.65rem; font-weight:900; color:var(--sv-blue) !important; }
.memlife__title { margin-top:.6rem; font-size:.84rem; font-weight:900; }
.memlife__desc { margin-top:.25rem; font-size:.67rem; line-height:1.4; color:var(--sv-muted) !important; }
.memlife__step.is-active { transform:translateY(-5px); border-color:color-mix(in srgb,var(--sv-red) 50%,var(--sv-line)); background:color-mix(in srgb,var(--sv-bg) 86%,var(--sv-red)); box-shadow:0 12px 26px color-mix(in srgb,var(--sv-red) 13%,transparent); }
.memlife__step.is-active .memlife__dot,.memlife__step.is-passed .memlife__dot { background:var(--sv-red); color:#fff !important; }
.memlife__step[data-stage="forget"].is-active { border-color:color-mix(in srgb,var(--sv-teal) 55%,var(--sv-line)); background:color-mix(in srgb,var(--sv-bg) 86%,var(--sv-teal)); }
.memlife__step[data-stage="forget"].is-active .memlife__dot { background:var(--sv-teal); }
.memlife__trace { margin-top:.75rem; padding:.75rem .85rem; border:1px solid var(--sv-line); border-radius:14px; background:color-mix(in srgb,var(--sv-bg) 92%,var(--sv-red)); font-size:.74rem; line-height:1.45; }
.memlife[data-step="6"] .memlife__trace { background:color-mix(in srgb,var(--sv-bg) 90%,var(--sv-teal)); }

/* Memory — governance */
.memgov__grid { display:grid !important; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:.8rem; margin-top:1rem; }
.memgov__candidate,.memgov__policy { border:1px solid var(--sv-line); border-radius:17px; padding:.85rem; background:var(--sv-bg); }
.memgov__label { font-size:.64rem; font-weight:900; text-transform:uppercase; letter-spacing:.12em; color:var(--sv-muted) !important; }
.memgov__memory { margin-top:.65rem; padding:.85rem; border:1px solid color-mix(in srgb,var(--sv-red) 32%,var(--sv-line)); border-radius:14px; background:color-mix(in srgb,var(--sv-bg) 88%,var(--sv-red)); font-size:.76rem; line-height:1.45; }
.memgov__memory strong { display:block; margin-bottom:.25rem; }
.memgov__fields { display:grid !important; grid-template-columns:1fr 1fr; gap:.45rem; margin-top:.65rem; }
.memgov__field { padding:.55rem; border:1px solid var(--sv-line); border-radius:11px; background:color-mix(in srgb,var(--sv-bg) 94%,var(--sv-blue)); font-size:.67rem; }
.memgov__field b { display:block; margin-bottom:.15rem; }
.memgov__checks { display:grid !important; gap:.42rem; margin-top:.65rem; }
.memgov__check { display:flex !important; align-items:center; justify-content:space-between; gap:.5rem; padding:.55rem .65rem; border:1px solid var(--sv-line); border-radius:11px; background:var(--sv-bg); font-size:.69rem; font-weight:800; }
.memgov__check button { appearance:none; flex:0 0 auto; width:2.5rem; height:1.4rem; border:0 !important; border-radius:999px; background:var(--sv-line) !important; padding:2px; cursor:pointer; }
.memgov__check button::after { content:""; display:block; width:1rem; height:1rem; border-radius:50%; background:#fff; transition:transform .2s ease; }
.memgov__check button[aria-pressed="true"] { background:var(--sv-teal) !important; }
.memgov__check button[aria-pressed="true"]::after { transform:translateX(1.05rem); }
.memgov__verdict { margin-top:.65rem; padding:.7rem .75rem; border-radius:13px; background:color-mix(in srgb,var(--sv-bg) 88%,var(--sv-red)); font-size:.72rem; line-height:1.45; }
.memgov__verdict.is-safe { background:color-mix(in srgb,var(--sv-bg) 88%,var(--sv-teal)); }

/* Memory — propagation */
.memprop__map { position:relative; min-height:360px; margin-top:1rem; border:1px solid var(--sv-line); border-radius:18px; background:color-mix(in srgb,var(--sv-bg) 94%,var(--sv-blue)); overflow:hidden; }
.memprop__hub { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:145px; height:145px; border-radius:50%; display:grid !important; place-items:center; text-align:center; padding:.7rem; border:2px solid color-mix(in srgb,var(--sv-red) 45%,var(--sv-line)); background:color-mix(in srgb,var(--sv-bg) 82%,var(--sv-red)); font-weight:900; z-index:3; }
.memprop__node { position:absolute; width:145px; padding:.65rem; border:1px solid var(--sv-line); border-radius:14px; background:var(--sv-bg); text-align:center; font-size:.7rem; font-weight:800; transition:.25s ease; z-index:2; }
.memprop__node small { display:block; margin-top:.2rem; color:var(--sv-muted) !important; font-weight:600; }
.memprop__node--a { left:5%; top:12%; }.memprop__node--b { right:5%; top:12%; }.memprop__node--c { left:5%; bottom:10%; }.memprop__node--d { right:5%; bottom:10%; }.memprop__node--e { left:50%; top:4%; transform:translateX(-50%); }
.memprop__line { position:absolute; height:3px; background:var(--sv-line); transform-origin:left center; z-index:1; transition:background .25s ease; }
.memprop__line--a { left:20%; top:29%; width:34%; transform:rotate(25deg); }.memprop__line--b { left:50%; top:29%; width:34%; transform:rotate(-25deg); }.memprop__line--c { left:20%; top:70%; width:34%; transform:rotate(-25deg); }.memprop__line--d { left:50%; top:70%; width:34%; transform:rotate(25deg); }.memprop__line--e { left:50%; top:20%; width:1px; height:30%; transform:none; }
.memprop.is-propagated .memprop__line { background:var(--sv-red); }.memprop.is-propagated .memprop__node { border-color:color-mix(in srgb,var(--sv-red) 45%,var(--sv-line)); background:color-mix(in srgb,var(--sv-bg) 88%,var(--sv-red)); }
.memprop.is-revoking .memprop__hub { border-color:var(--sv-teal); background:color-mix(in srgb,var(--sv-bg) 84%,var(--sv-teal)); }
.memprop__note { margin-top:.75rem; padding:.7rem .8rem; border-radius:14px; background:color-mix(in srgb,var(--sv-bg) 90%,var(--sv-amber)); font-size:.73rem; line-height:1.45; }

/* Memory — runtime vs weights */
.memlayers__switch { display:flex !important; gap:.4rem; margin-top:.8rem; flex-wrap:wrap; }
.memlayers__switch button { appearance:none; border:1px solid var(--sv-line) !important; background:var(--sv-bg) !important; border-radius:999px; padding:.45rem .65rem; font-size:.68rem; font-weight:800; cursor:pointer; }
.memlayers__switch button[aria-pressed="true"] { background:var(--sv-blue) !important; color:#fff !important; border-color:var(--sv-blue) !important; }
.memlayers__compare { display:grid !important; grid-template-columns:1fr 1fr; gap:.8rem; margin-top:1rem; }
.memlayers__side { border:1px solid var(--sv-line); border-radius:17px; padding:.85rem; background:var(--sv-bg); transition:.25s ease; }
.memlayers__side h4 { margin:0; font-size:.95rem; }.memlayers__stack { display:grid !important; gap:.45rem; margin-top:.7rem; }.memlayers__layer { padding:.6rem .65rem; border:1px solid var(--sv-line); border-radius:11px; font-size:.68rem; line-height:1.4; }.memlayers__layer b { display:block; margin-bottom:.1rem; }
.memlayers__layer.is-risk { background:color-mix(in srgb,var(--sv-bg) 86%,var(--sv-red)); border-color:color-mix(in srgb,var(--sv-red) 38%,var(--sv-line)); }.memlayers__side--runtime .memlayers__layer.is-risk { box-shadow:inset 4px 0 0 var(--sv-amber); }.memlayers__side--weights .memlayers__layer.is-risk { box-shadow:inset 4px 0 0 var(--sv-red); }
.memlayers__arrow { margin:.6rem 0; text-align:center; color:var(--sv-muted) !important; font-size:.7rem; }.memlayers__mitigation { margin-top:.7rem; padding:.6rem .7rem; border-radius:12px; background:color-mix(in srgb,var(--sv-bg) 88%,var(--sv-teal)); font-size:.68rem; line-height:1.45; }
.memlayers[data-focus="runtime"] .memlayers__side--weights,.memlayers[data-focus="weights"] .memlayers__side--runtime { opacity:.35; transform:scale(.98); }

/* Red team — threat model */
.threatbuild__grid { display:grid !important; grid-template-columns:minmax(0,1fr) minmax(0,.9fr); gap:.8rem; margin-top:1rem; }
.threatbuild__controls,.threatbuild__spec { border:1px solid var(--sv-line); border-radius:17px; padding:.85rem; background:var(--sv-bg); }
.threatbuild__field { display:grid !important; grid-template-columns:8.5rem 1fr; gap:.6rem; align-items:center; padding:.55rem 0; border-bottom:1px solid var(--sv-line); }.threatbuild__field:last-child { border-bottom:0; }
.threatbuild__label { font-size:.64rem; font-weight:900; text-transform:uppercase; letter-spacing:.1em; color:var(--sv-muted) !important; }.threatbuild__choices { display:flex !important; gap:.3rem; flex-wrap:wrap; }
.threatbuild__choices button { appearance:none; border:1px solid var(--sv-line) !important; background:var(--sv-bg) !important; border-radius:999px; padding:.38rem .55rem; font-size:.65rem; font-weight:800; cursor:pointer; }.threatbuild__choices button[aria-pressed="true"] { background:var(--sv-blue) !important; color:#fff !important; border-color:var(--sv-blue) !important; }
.threatbuild__spec { display:grid !important; align-content:start; gap:.55rem; background:color-mix(in srgb,var(--sv-bg) 92%,var(--sv-amber)); }.threatbuild__spec h4 { margin:0; font-size:.95rem; }
.threatbuild__line { display:grid !important; grid-template-columns:6.5rem 1fr; gap:.45rem; padding:.48rem .55rem; border-radius:10px; background:var(--sv-bg); font-size:.68rem; }.threatbuild__line b { color:var(--sv-muted) !important; text-transform:uppercase; letter-spacing:.08em; font-size:.6rem; }
.threatbuild__warning { margin-top:.2rem; padding:.65rem; border-radius:12px; background:color-mix(in srgb,var(--sv-bg) 86%,var(--sv-red)); font-size:.7rem; line-height:1.45; }.threatbuild__warning.is-ready { background:color-mix(in srgb,var(--sv-bg) 86%,var(--sv-teal)); }

/* Red team — capability/uplift/system */
.uplift3__tabs { display:flex !important; gap:.4rem; flex-wrap:wrap; margin-top:.8rem; }.uplift3__tabs button { appearance:none; border:1px solid var(--sv-line) !important; background:var(--sv-bg) !important; border-radius:999px; padding:.45rem .65rem; font-size:.68rem; font-weight:800; cursor:pointer; }.uplift3__tabs button[aria-pressed="true"] { background:var(--sv-blue) !important; color:#fff !important; border-color:var(--sv-blue) !important; }
.uplift3__grid { display:grid !important; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.6rem; margin-top:.8rem; }.uplift3__card { min-height:210px; padding:.8rem; border:1px solid var(--sv-line); border-radius:16px; background:var(--sv-bg); transition:.25s ease; }.uplift3__card.is-focus { transform:translateY(-5px); border-color:color-mix(in srgb,var(--sv-blue) 50%,var(--sv-line)); box-shadow:0 14px 28px color-mix(in srgb,var(--sv-blue) 12%,transparent); }.uplift3__card.is-muted { opacity:.35; transform:scale(.98); }
.uplift3__kicker { font-size:.63rem; font-weight:900; letter-spacing:.12em; text-transform:uppercase; color:var(--sv-muted) !important; }.uplift3__title { margin-top:.35rem; font-size:.95rem; font-weight:900; }.uplift3__question { margin-top:.45rem; font-size:.7rem; line-height:1.45; color:var(--sv-muted) !important; }.uplift3__measure { margin-top:.65rem; padding:.55rem; border-radius:11px; background:color-mix(in srgb,var(--sv-bg) 88%,var(--sv-blue)); font-size:.68rem; }.uplift3__card:nth-child(2) .uplift3__measure { background:color-mix(in srgb,var(--sv-bg) 88%,var(--sv-amber)); }.uplift3__card:nth-child(3) .uplift3__measure { background:color-mix(in srgb,var(--sv-bg) 88%,var(--sv-teal)); }.uplift3__take { margin-top:.75rem; padding:.7rem .8rem; border-radius:14px; background:color-mix(in srgb,var(--sv-bg) 90%,var(--sv-blue)); font-size:.73rem; line-height:1.45; }

/* Red team — causal chain */
.causalrt__controls { display:flex !important; gap:.35rem; flex-wrap:wrap; margin-top:.75rem; }.causalrt__controls button { appearance:none; border:1px solid var(--sv-line) !important; background:var(--sv-bg) !important; border-radius:999px; padding:.42rem .62rem; font-size:.66rem; font-weight:800; cursor:pointer; }.causalrt__controls button[aria-pressed="true"] { background:var(--sv-teal) !important; color:#fff !important; border-color:var(--sv-teal) !important; }
.causalrt__chain { display:grid !important; grid-template-columns:repeat(6,minmax(0,1fr)); gap:.5rem; margin-top:1rem; }.causalrt__step { position:relative; min-height:150px; padding:.72rem; border:1px solid var(--sv-line); border-radius:15px; background:var(--sv-bg); transition:.25s ease; }.causalrt__step:not(:last-child)::after { content:"→"; position:absolute; right:-.6rem; top:50%; transform:translateY(-50%); color:var(--sv-amber) !important; font-weight:900; z-index:3; }.causalrt__step b { display:block; font-size:.78rem; }.causalrt__step span { display:block; margin-top:.28rem; font-size:.65rem; line-height:1.4; color:var(--sv-muted) !important; }.causalrt__status { margin-top:.55rem; padding:.42rem .5rem; border-radius:9px; background:color-mix(in srgb,var(--sv-bg) 90%,var(--sv-blue)); font-size:.6rem; font-weight:800; }
.causalrt__step.is-active { transform:translateY(-5px); border-color:color-mix(in srgb,var(--sv-red) 45%,var(--sv-line)); background:color-mix(in srgb,var(--sv-bg) 86%,var(--sv-red)); }.causalrt__step.is-stopped { border-color:color-mix(in srgb,var(--sv-teal) 55%,var(--sv-line)); background:color-mix(in srgb,var(--sv-bg) 86%,var(--sv-teal)); box-shadow:0 12px 26px color-mix(in srgb,var(--sv-teal) 12%,transparent); }.causalrt__step.is-after { opacity:.3; }.causalrt__result { margin-top:.65rem; padding:.7rem .8rem; border-radius:14px; background:color-mix(in srgb,var(--sv-bg) 90%,var(--sv-red)); font-size:.73rem; line-height:1.45; }.causalrt__result.is-safe { background:color-mix(in srgb,var(--sv-bg) 90%,var(--sv-teal)); }

/* Red team — regression loop */
.regloop__flow { display:grid !important; grid-template-columns:repeat(5,minmax(0,1fr)); gap:.55rem; margin-top:1rem; }.regloop__step { position:relative; min-height:155px; padding:.75rem; border:1px solid var(--sv-line); border-radius:16px; background:var(--sv-bg); transition:.25s ease; }.regloop__step:not(:last-child)::after { content:"→"; position:absolute; right:-.63rem; top:50%; transform:translateY(-50%); color:var(--sv-amber) !important; font-weight:900; z-index:3; }.regloop__n { font-size:.62rem; font-weight:900; text-transform:uppercase; letter-spacing:.12em; color:var(--sv-muted) !important; }.regloop__title { margin-top:.38rem; font-size:.86rem; font-weight:900; }.regloop__desc { margin-top:.3rem; font-size:.66rem; line-height:1.4; color:var(--sv-muted) !important; }.regloop__step.is-active { transform:translateY(-5px); border-color:color-mix(in srgb,var(--sv-teal) 55%,var(--sv-line)); background:color-mix(in srgb,var(--sv-bg) 86%,var(--sv-teal)); box-shadow:0 12px 26px color-mix(in srgb,var(--sv-teal) 11%,transparent); }.regloop__footer { margin-top:1rem; padding:.7rem .8rem; border-radius:14px; background:color-mix(in srgb,var(--sv-bg) 90%,var(--sv-blue)); font-size:.73rem; line-height:1.45; }

/* Production — permission matrix */
.proddef__matrix { display:grid !important; grid-template-columns:10rem repeat(3,minmax(0,1fr)); gap:.45rem; margin-top:1rem; align-items:stretch; }.proddef__head,.proddef__cell { padding:.6rem; border:1px solid var(--sv-line); border-radius:11px; background:var(--sv-bg); font-size:.67rem; line-height:1.4; }.proddef__head { font-weight:900; text-transform:uppercase; letter-spacing:.08em; color:var(--sv-muted) !important; }.proddef__actor { font-weight:900; }.proddef__cell { display:grid !important; place-items:center; text-align:center; transition:.2s ease; }.proddef__cell[data-level="none"] { opacity:.4; }.proddef__cell[data-level="read"] { background:color-mix(in srgb,var(--sv-bg) 86%,var(--sv-teal)); }.proddef__cell[data-level="write"] { background:color-mix(in srgb,var(--sv-bg) 84%,var(--sv-amber)); }.proddef__cell[data-level="admin"] { background:color-mix(in srgb,var(--sv-bg) 82%,var(--sv-red)); }.proddef__cell.is-highlight { outline:3px solid var(--sv-red); outline-offset:-3px; transform:scale(1.03); }.proddef__scenario { display:grid !important; grid-template-columns:minmax(0,1fr) auto; gap:.7rem; align-items:center; margin-top:.8rem; padding:.75rem .8rem; border-radius:14px; background:color-mix(in srgb,var(--sv-bg) 90%,var(--sv-blue)); font-size:.73rem; line-height:1.45; }.proddef__scenario button { appearance:none; border:1px solid var(--sv-line) !important; background:var(--sv-bg) !important; border-radius:999px; padding:.45rem .65rem; font-size:.66rem; font-weight:800; cursor:pointer; }.proddef.is-risk .proddef__scenario { background:color-mix(in srgb,var(--sv-bg) 86%,var(--sv-red)); }.proddef.is-safe .proddef__scenario { background:color-mix(in srgb,var(--sv-bg) 86%,var(--sv-teal)); }

/* Production — MCP boundary */
.mcpbound__map { display:grid !important; grid-template-columns:minmax(0,.85fr) 60px minmax(0,1.15fr); gap:.55rem; align-items:center; margin-top:1rem; }.mcpbound__client,.mcpbound__servers { border:1px solid var(--sv-line); border-radius:17px; padding:.85rem; background:var(--sv-bg); }.mcpbound__client { min-height:280px; }.mcpbound__servers { display:grid !important; gap:.5rem; }.mcpbound__label { font-size:.63rem; font-weight:900; text-transform:uppercase; letter-spacing:.12em; color:var(--sv-muted) !important; }.mcpbound__context { display:grid !important; gap:.4rem; margin-top:.65rem; }.mcpbound__ctx { padding:.55rem .6rem; border:1px solid var(--sv-line); border-radius:10px; font-size:.68rem; line-height:1.4; }.mcpbound__ctx--tool { background:color-mix(in srgb,var(--sv-bg) 90%,var(--sv-amber)); transition:.25s ease; }.mcpbound__ctx--tool.is-poison { background:color-mix(in srgb,var(--sv-bg) 84%,var(--sv-red)); border-color:color-mix(in srgb,var(--sv-red) 45%,var(--sv-line)); }.mcpbound__bridge { text-align:center; color:var(--sv-muted) !important; font-weight:900; }.mcpbound__server { padding:.65rem; border:1px solid var(--sv-line); border-radius:12px; background:color-mix(in srgb,var(--sv-bg) 94%,var(--sv-teal)); font-size:.68rem; line-height:1.4; }.mcpbound__server b { display:block; margin-bottom:.2rem; }.mcpbound__server--bad { background:color-mix(in srgb,var(--sv-bg) 88%,var(--sv-red)); border-color:color-mix(in srgb,var(--sv-red) 35%,var(--sv-line)); }.mcpbound__controls { display:flex !important; gap:.4rem; flex-wrap:wrap; margin-top:.7rem; }.mcpbound__controls button { appearance:none; border:1px solid var(--sv-line) !important; background:var(--sv-bg) !important; border-radius:999px; padding:.42rem .62rem; font-size:.66rem; font-weight:800; cursor:pointer; }.mcpbound__controls button[aria-pressed="true"] { background:var(--sv-teal) !important; color:#fff !important; border-color:var(--sv-teal) !important; }.mcpbound__result { margin-top:.7rem; padding:.7rem .8rem; border-radius:14px; background:color-mix(in srgb,var(--sv-bg) 88%,var(--sv-red)); font-size:.73rem; line-height:1.45; }.mcpbound__result.is-safe { background:color-mix(in srgb,var(--sv-bg) 88%,var(--sv-teal)); }

/* Production — kill path */
.killpath__run { position:relative; margin-top:1rem; padding:.85rem; border:1px solid var(--sv-line); border-radius:17px; background:var(--sv-bg); }.killpath__rail { display:grid !important; grid-template-columns:repeat(5,minmax(0,1fr)); gap:.45rem; }.killpath__stage { padding:.65rem; border:1px solid var(--sv-line); border-radius:12px; background:color-mix(in srgb,var(--sv-bg) 94%,var(--sv-blue)); font-size:.66rem; line-height:1.4; min-height:110px; transition:.25s ease; }.killpath__stage b { display:block; margin-bottom:.2rem; }.killpath__stage.is-live { border-color:color-mix(in srgb,var(--sv-red) 50%,var(--sv-line)); background:color-mix(in srgb,var(--sv-bg) 84%,var(--sv-red)); transform:translateY(-4px); }.killpath__stage.is-cancelled { opacity:.25; }.killpath__controls { display:flex !important; gap:.4rem; flex-wrap:wrap; margin-top:.75rem; }.killpath__controls button,.killpath__head button { appearance:none; border:1px solid color-mix(in srgb,var(--sv-red) 35%,var(--sv-line)) !important; background:var(--sv-bg) !important; border-radius:999px; padding:.45rem .65rem; font-size:.66rem; font-weight:800; cursor:pointer; }.killpath__controls button:disabled { opacity:.35; cursor:not-allowed; }.killpath__state { display:grid !important; grid-template-columns:repeat(4,1fr); gap:.45rem; margin-top:.75rem; }.killpath__metric { padding:.55rem; border-radius:11px; background:color-mix(in srgb,var(--sv-bg) 92%,var(--sv-blue)); font-size:.64rem; }.killpath__metric b { display:block; font-size:.78rem; }.killpath__result { margin-top:.7rem; padding:.7rem .8rem; border-radius:14px; background:color-mix(in srgb,var(--sv-bg) 90%,var(--sv-amber)); font-size:.73rem; line-height:1.45; }.killpath__result.is-killed { background:color-mix(in srgb,var(--sv-bg) 86%,var(--sv-teal)); }

/* Production — release gate */
.releasegate__grid { display:grid !important; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); gap:.8rem; margin-top:1rem; }.releasegate__checks,.releasegate__status { border:1px solid var(--sv-line); border-radius:17px; padding:.85rem; background:var(--sv-bg); }.releasegate__checks { display:grid !important; gap:.45rem; }.releasegate__check { display:grid !important; grid-template-columns:auto 1fr; gap:.6rem; align-items:start; padding:.55rem; border:1px solid var(--sv-line); border-radius:11px; background:color-mix(in srgb,var(--sv-bg) 95%,var(--sv-blue)); }.releasegate__check button { appearance:none; width:1.4rem; height:1.4rem; border:1px solid var(--sv-line) !important; border-radius:7px; background:var(--sv-bg) !important; color:transparent !important; cursor:pointer; font-weight:900; }.releasegate__check button[aria-pressed="true"] { background:var(--sv-teal) !important; border-color:var(--sv-teal) !important; color:#fff !important; }.releasegate__check b { display:block; font-size:.71rem; }.releasegate__check span { display:block; margin-top:.15rem; color:var(--sv-muted) !important; font-size:.64rem; line-height:1.35; }.releasegate__status { display:grid !important; align-content:start; gap:.7rem; }.releasegate__badge { display:inline-flex; width:max-content; padding:.4rem .6rem; border-radius:999px; background:var(--sv-red); color:#fff !important; font-size:.64rem; font-weight:900; text-transform:uppercase; letter-spacing:.08em; }.releasegate__badge.is-pass { background:var(--sv-teal); }.releasegate__meter { height:12px; border-radius:999px; background:var(--sv-line); overflow:hidden; }.releasegate__bar { height:100%; width:0; background:linear-gradient(90deg,var(--sv-amber),var(--sv-teal)); transition:width .25s ease; }.releasegate__headline { font-size:1.05rem; font-weight:900; line-height:1.15; }.releasegate__copy { color:var(--sv-muted) !important; font-size:.72rem; line-height:1.45; }.releasegate__deploy { padding:.7rem; border:1px dashed var(--sv-line); border-radius:12px; font-size:.68rem; font-weight:800; text-align:center; opacity:.4; }.releasegate__deploy.is-ready { opacity:1; border-color:color-mix(in srgb,var(--sv-teal) 45%,var(--sv-line)); background:color-mix(in srgb,var(--sv-bg) 88%,var(--sv-teal)); }

/* Fix the merged-context state so the two source lanes do not collide visually. */
.ctxmix[data-state="3"] .ctxmix__lane { left:7%; right:62%; top:40%; opacity:.12; transform:scale(.94); }
.ctxmix[data-state="3"] .ctxmix__attack { left:38%; top:45%; }
.ctxmix[data-state="3"] .ctxmix__model { right:7%; width:34%; }

@media (max-width: 820px) {
  .defsim__path,.jbladder__row,.causalrt__chain,.regloop__flow,.killpath__rail { grid-template-columns:1fr 1fr; }
  .jbsearch__grid,.jbbudget__grid,.memgov__grid,.memlayers__compare,.threatbuild__grid,.releasegate__grid { grid-template-columns:1fr; }
  .uplift3__grid { grid-template-columns:1fr; }
  .mcpbound__map { grid-template-columns:1fr; }
  .mcpbound__bridge { transform:rotate(90deg); min-height:34px; }
  .proddef__matrix { grid-template-columns:7rem repeat(3,minmax(0,1fr)); }
  .proddef__scenario { grid-template-columns:1fr; }
  .memlife__timeline { grid-template-columns:repeat(2,1fr); }
  .memlife__timeline::before,.memprop__line { display:none; }
  .memprop__map { min-height:500px; }
  .memprop__hub { width:120px; height:120px; }
  .memprop__node { width:125px; }
  .memprop__node--a { left:4%; top:7%; }.memprop__node--b { right:4%; top:7%; }.memprop__node--c { left:4%; bottom:6%; }.memprop__node--d { right:4%; bottom:6%; }.memprop__node--e { left:5%; top:28%; transform:none; }
}

@media (max-width: 520px) {
  .defsim__path,.jbladder__row,.causalrt__chain,.regloop__flow,.killpath__rail,.memlife__timeline { grid-template-columns:1fr; }
  .defsim__stage,.jbladder__step,.causalrt__step,.regloop__step,.killpath__stage { min-height:auto; }
  .defsim__stage:not(:last-child)::after,.jbladder__step:not(:last-child)::after,.causalrt__step:not(:last-child)::after,.regloop__step:not(:last-child)::after { content:"↓"; right:50%; top:auto; bottom:-.88rem; transform:translateX(50%); }
  .jbbudget__dots { grid-template-columns:repeat(10,1fr); }
  .memgov__fields { grid-template-columns:1fr 1fr; }
  .threatbuild__field { grid-template-columns:1fr; }
  .killpath__state { grid-template-columns:1fr 1fr; }
  .proddef__matrix { grid-template-columns:1fr; }
  .proddef__head:not(:first-child) { display:none; }
  .proddef__cell::before { content:attr(data-col); display:block; margin-bottom:.2rem; font-size:.58rem; text-transform:uppercase; letter-spacing:.08em; color:var(--sv-muted) !important; }
}

@media (prefers-reduced-motion: reduce) {
  :is(.defsim,.jbsearch,.jbbudget,.jbladder,.memlife,.memgov,.memprop,.memlayers,.threatbuild,.uplift3,.causalrt,.regloop,.proddef,.mcpbound,.killpath,.releasegate) * { transition:none !important; }
}
