/* RC11 — interactive public-safe HIOP explainer.
   Illustrative only: no real policy logic, thresholds, credentials, schemas,
   security controls, routing rules, or unpublished mechanisms are exposed. */
.hiop-lab{padding:96px 0;background:#050c18;color:#fff;border-top:1px solid #182740;border-bottom:1px solid #182740}
.hiop-lab .wrap{max-width:1220px;margin:auto;padding:0 28px}.hiop-lab .section-head{max-width:880px;margin-bottom:34px}.hiop-lab .eyebrow{color:#8fb0ff!important}.hiop-lab h2{color:#fff!important;font-size:clamp(36px,4.7vw,64px);line-height:1.01;margin:8px 0 16px;letter-spacing:-.045em}.hiop-lab .sub{color:#b9c7dd!important;font-size:18px;line-height:1.65;max-width:860px}
.hiop-lab-shell{border:1px solid #263a5c;border-radius:30px;overflow:hidden;background:radial-gradient(circle at 56% 40%,rgba(36,87,255,.15),transparent 36%),linear-gradient(180deg,#081322,#07101d);box-shadow:0 34px 90px rgba(0,0,0,.32)}
.hiop-lab-toolbar{display:grid;grid-template-columns:1.2fr 1fr auto;gap:14px;align-items:end;padding:24px;border-bottom:1px solid #1d2d47;background:rgba(5,12,24,.72);backdrop-filter:blur(16px)}
.hiop-field label{display:block;font:600 10px/1.3 'IBM Plex Mono',monospace;letter-spacing:.14em;text-transform:uppercase;color:#8fb0ff;margin-bottom:8px}.hiop-field select{width:100%;appearance:none;border:1px solid #31496d;border-radius:12px;background:#0c192c;color:#eef4ff;padding:12px 14px;font:600 13px Inter,Arial,sans-serif;outline:none}.hiop-field select:focus{border-color:#5f8dff;box-shadow:0 0 0 3px rgba(61,112,255,.16)}
.hiop-run{border:1px solid #5f8dff;border-radius:12px;background:#1e58e8;color:#fff;padding:12px 18px;font:700 12px 'IBM Plex Mono',monospace;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;min-height:43px}.hiop-run:hover{background:#2a66ff}.hiop-run:disabled{opacity:.55;cursor:wait}
.hiop-lab-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:0}.hiop-viz{position:relative;min-height:560px;overflow:hidden;background-image:linear-gradient(rgba(110,145,204,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(110,145,204,.055) 1px,transparent 1px);background-size:38px 38px}.hiop-viz:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 50% 48%,rgba(42,102,255,.11),transparent 36%)}
.hiop-flow{position:absolute;inset:42px 34px 52px;z-index:2}.hiop-flow svg{width:100%;height:100%;overflow:visible}.lab-link{fill:none;stroke:#263a5c;stroke-width:2.1;vector-effect:non-scaling-stroke}.lab-energy{fill:none;stroke:url(#labEnergy);stroke-width:3;stroke-linecap:round;vector-effect:non-scaling-stroke;filter:url(#labGlow);opacity:.95}.lab-dot{filter:url(#labGlow)}
.lab-node{position:absolute;width:154px;min-height:94px;border:1px solid #334a70;border-radius:17px;background:rgba(12,26,46,.96);padding:15px;z-index:4;box-shadow:0 14px 32px rgba(0,0,0,.26);transition:.28s ease}.lab-node .k{font:600 9px 'IBM Plex Mono',monospace;letter-spacing:.15em;text-transform:uppercase;color:#86a9ff;margin-bottom:7px}.lab-node b{display:block;color:#f7f9ff;font-size:15px;line-height:1.18}.lab-node span{display:block;color:#9fb0c8;font-size:11px;line-height:1.4;margin-top:6px}.lab-node.active{transform:translateY(-4px);border-color:#6e95ff;box-shadow:0 0 0 1px rgba(87,133,255,.18),0 18px 48px rgba(24,82,255,.22)}.lab-node.pass{border-color:#3c9f86}.lab-node.warn{border-color:#8f6bc0}.lab-node.deny{border-color:#c55f6b}.lab-node.core{background:linear-gradient(180deg,rgba(23,72,169,.98),rgba(11,39,88,.98));border-color:#5f8dff;box-shadow:0 0 56px rgba(36,93,255,.18)}
.lab-intent{left:3%;top:41%}.lab-model{left:27%;top:18%}.lab-context{left:27%;top:63%}.lab-hiop{left:51%;top:39%;width:178px}.lab-human{left:74%;top:17%}.lab-action{left:74%;top:59%}.lab-evidence{right:2%;top:39%;width:154px}
.hiop-orbit{position:absolute;left:50%;top:50%;width:225px;height:225px;border:1px solid rgba(76,125,255,.32);border-radius:50%;transform:translate(-43%,-50%);z-index:1}.hiop-orbit:before,.hiop-orbit:after{content:"";position:absolute;inset:18px;border:1px solid rgba(91,145,255,.22);border-radius:50%}.hiop-orbit:after{inset:42px;border-color:rgba(91,145,255,.16)}
.hiop-side{border-left:1px solid #1d2d47;background:rgba(5,12,24,.82);padding:24px;display:flex;flex-direction:column;gap:18px}.hiop-side .panel{border:1px solid #233755;border-radius:16px;background:rgba(8,18,33,.76);padding:16px}.hiop-side .label{font:600 9px 'IBM Plex Mono',monospace;letter-spacing:.15em;text-transform:uppercase;color:#7fa3ff;margin-bottom:8px}.hiop-status{font-size:25px;font-weight:800;letter-spacing:-.03em;color:#fff}.hiop-status.allow{color:#66e0bc}.hiop-status.approval{color:#c4a1ff}.hiop-status.deny{color:#ff8e9b}.hiop-side p{color:#aebbd0!important;font-size:13px;line-height:1.55;margin:7px 0 0}.hiop-receipt{font:500 11px/1.65 'IBM Plex Mono',monospace;color:#c6d6f0;white-space:pre-wrap;word-break:break-word}.hiop-public-note{font-size:12px;line-height:1.55;color:#92a3bd}.hiop-public-note strong{color:#fff}
.hiop-key{display:flex;gap:8px;flex-wrap:wrap}.hiop-key span{border:1px solid #263a5c;border-radius:999px;padding:6px 9px;color:#9fb0c8;font:600 9px 'IBM Plex Mono',monospace;letter-spacing:.06em}.hiop-key .allow{border-color:#2f7868;color:#66e0bc}.hiop-key .approval{border-color:#654d84;color:#c4a1ff}.hiop-key .deny{border-color:#81434b;color:#ff9aa5}
@media(max-width:980px){.hiop-lab-grid{grid-template-columns:1fr}.hiop-side{border-left:0;border-top:1px solid #1d2d47;display:grid;grid-template-columns:repeat(3,1fr)}.hiop-viz{min-height:620px}.hiop-lab-toolbar{grid-template-columns:1fr 1fr}.hiop-run{grid-column:1/-1}.lab-evidence{right:1%}}
@media(max-width:720px){.hiop-lab{padding:68px 0}.hiop-lab-toolbar{grid-template-columns:1fr}.hiop-run{grid-column:auto}.hiop-viz{min-height:760px;overflow-x:auto}.hiop-flow{min-width:940px}.hiop-side{grid-template-columns:1fr}.hiop-lab-shell{border-radius:22px}}
@media(prefers-reduced-motion:reduce){.lab-node{transition:none}}
