/* Homepage mind map. Labels stay at their native size as branches open. */






.bubble-map{position:relative;min-width:0;--map-quiet:#a0aaa4}
.bubble-map [hidden]{display:none!important}
.bubble-map button{font:inherit;color:var(--ink);touch-action:manipulation}
.bubble-map-intro{position:absolute;top:0;right:0;display:flex;align-items:center;gap:12px;z-index:4}
.bubble-map-intro button{background:none;border:0;padding:6px 0;min-height:32px;font-size:11px;color:var(--map-quiet)}
.bubble-map-intro button:hover{color:var(--ink)}
.bubble-map-intro [data-bubble-size]{display:grid;place-items:center;width:28px}
.bubble-map-intro svg,.bubble-map-arrow svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.5}
.bubble-map-stage{height:420px;overflow:hidden;position:relative}
.bubble-map-canvas{position:relative;width:100%;isolation:isolate}
.bubble-map-nodes{display:block;max-width:none;overflow:visible}
.bubble-map-lines{position:absolute;inset:0;z-index:-1;pointer-events:none}
.bubble-bubble{overflow:visible}
.bubble-node{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;width:100%;height:100%;padding:4px;border:1px solid #ffffff22;border-radius:50%;background:radial-gradient(ellipse at 35% 25%,#242829,#191c1d);line-height:1.2;text-align:center;cursor:pointer;transition:background .15s,border-color .15s}
.bubble-map .bubble-node:hover{border-color:#ffffff85;background:#292c2d}
.bubble-node:focus-visible{outline:2px solid var(--red-text);outline-offset:4px}
.bubble-node-label{min-width:0;overflow-wrap:normal}
.bubble-node-0{font-size:14px!important}
.bubble-node-0 img{width:31px;height:30px;object-fit:contain}
.bubble-node-icon{width:18px;height:18px;flex:none;stroke:currentColor;fill:none;stroke-width:1.3;stroke-linejoin:round;stroke-linecap:round;color:#aab4ad}
.bubble-map:not(.is-story) .bubble-node-1 .bubble-node-icon,.bubble-map:not(.is-story) .bubble-node-2 .bubble-node-icon{display:none}
.bubble-node-context{font-size:10px;line-height:1;color:#9baaa0}
.bubble-node-context:empty{display:none}
.bubble-node-0[data-bubble-node=aegis]{border-color:#ffffff55;background:radial-gradient(ellipse at 35% 25%,#2b3030,#1d2122)}
.bubble-node-1{font-size:12px!important}
.bubble-node-2{font-size:11px!important;color:#c1c9c3!important}
.bubble-map .bubble-node.is-linked{border-color:#c9585266}
.bubble-map .bubble-node.is-selected{border-color:#ed7770;background:#2b2022}
.bubble-edge{stroke:#929d942a;stroke-width:1;fill:none;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round}
.bubble-edge-active{stroke:#b96b647d;stroke-width:1}
.bubble-edge-integration{stroke:#c581797d;stroke-width:1}
.bubble-edge-primary{stroke:#c581797d;stroke-width:1.1}
.bubble-edge{transition:stroke .09s,stroke-width .09s}
.bubble-edge.is-transmitting{stroke:#ee9588;stroke-width:1.6}
.bubble-edge-signal{fill:none;stroke:#f1b0a3;stroke-width:1.8;stroke-linecap:round;vector-effect:non-scaling-stroke;pointer-events:none}
.bubble-map .bubble-node.is-arriving.is-linked{border-color:#df8a80;background:#30282a}
.bubble-map .bubble-node.is-arriving{border-color:#ed9e91;background:#33272a}
.bubble-document-context{font-size:10px;line-height:1.15;color:#aab6af}
.bubble-document-context:empty{display:none}
.bubble-node[data-bubble-node=quill]:has(.bubble-document-context:not(:empty)) .bubble-node-icon{display:none}
.bubble-node[data-bubble-node=github],.bubble-node[data-bubble-node=model-api]{border-style:dashed}
.bubble-map[data-scene=separate] .bubble-node[data-bubble-node=aegis]{opacity:.28}
.bubble-map[data-scene=separate] .bubble-node[data-bubble-node=aegis]:is(:hover,:focus-visible){opacity:1}
.bubble-map[data-scene=separate] .bubble-edge{stroke-dasharray:4 5}
.bubble-map[data-scene=separate] .bubble-node[data-bubble-node=quill] .bubble-node-icon{display:none}
.bubble-map-detail .bubble-map-example{display:flex;gap:10px;align-items:baseline;font-size:12px;min-height:24px;margin-top:8px;color:#c9ceca}
.bubble-map-example span:first-child{font-size:10px;flex:none;min-width:40px;color:#d38b80}
.bubble-particle rect{fill:#191d1c;stroke:#f1b5ad;stroke-width:1.3}
.bubble-particle path{fill:none;stroke:#f1b5ad;stroke-width:1}
.bubble-map.is-story .bubble-node{padding:6px;gap:4px}
.bubble-map.is-story .bubble-node-2{font-size:11px!important}
.bubble-map-controls{display:flex;align-items:center;gap:15px;min-height:36px;margin-top:2px}
.bubble-map-count{font-size:11px;color:#8b968f;font-variant-numeric:tabular-nums}
.bubble-map-controls button{min-height:28px;border:0;background:none;padding:3px 0;color:var(--map-quiet);font-size:11px}
.bubble-map-controls button:hover{color:var(--ink)}
.bubble-map-controls [data-bubble-play]{min-width:72px;text-align:left}
.bubble-map-seek{appearance:none;min-width:40px;width:100%;height:28px;margin:0 4px;padding:0;flex:1;background:transparent;cursor:pointer;color:var(--red-text);border:0;border-radius:0}
.bubble-map-seek::-webkit-slider-runnable-track{height:2px;background:#ffffff1c;border-radius:1px}
.bubble-map-seek::-webkit-slider-thumb{appearance:none;width:6px;height:6px;margin-top:-2px;background:#d6655e;border:0;border-radius:50%;transition:background .15s}
.bubble-map-seek:hover::-webkit-slider-thumb,.bubble-map-seek:focus-visible::-webkit-slider-thumb{background:#ffaaa4}
.bubble-map-seek::-moz-range-track{height:2px;background:#ffffff1c;border:0}
.bubble-map-seek::-moz-range-thumb{width:6px;height:6px;background:#d6655e;border:0;border-radius:50%}
.bubble-map.has-expansion .bubble-node:not(.is-linked):not(.is-selected){border-color:#ffffff16;color:#9da9a0}
.bubble-map.has-expansion .bubble-node:hover{color:var(--ink);border-color:#ffffff85}
.bubble-map-controls .bubble-map-arrow{display:grid;place-items:center;width:28px}
.bubble-map-detail{min-height:122px;padding-top:12px}
.bubble-map-detail h2{font-size:17px;line-height:1.35;font-weight:400!important;letter-spacing:0!important;margin:0 0 7px}
.bubble-map-detail p{font-size:13px;line-height:1.6;color:#b5bfb8;margin:0;max-width:640px}
.bubble-map-detail .bubble-map-note{font-size:11px;color:#939f96;line-height:1.55;margin-top:7px}
.bubble-map-note:empty{display:none}
.bubble-map-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.bubble-map:not(.is-ready) :is(.bubble-map-intro,.bubble-map-stage,.bubble-map-controls){display:none}
.bubble-map-dialog{color:var(--ink);background:#141718;border:1px solid #ffffff25;padding:24px;width:min(1400px,calc(100vw - 32px));max-width:none;height:calc(100svh - 32px);max-height:none;overflow:hidden}
.bubble-map-dialog::backdrop{background:#080a0be8}
.bubble-map-dialog .bubble-map{height:100%;display:flex;flex-direction:column}
.bubble-map-dialog .bubble-map-stage{height:auto;flex:1;min-height:120px}
.bubble-map-dialog .bubble-map-detail{min-height:110px;flex:none}
@media(max-width:1100px){.bubble-map-stage{height:400px}}
@media(max-width:900px){.bubble-map{max-width:780px;width:100%;justify-self:center}.bubble-map-stage{height:410px}}
@media(max-width:500px){.bubble-map-stage{height:340px}.bubble-map-detail{min-height:155px}.bubble-map-dialog{width:calc(100vw - 12px);height:calc(100svh - 12px);padding:12px}.bubble-map-dialog .bubble-map-detail{min-height:0;height:175px;overflow:auto}}
@media(max-width:500px){.bubble-map.has-branches .bubble-map-stage{height:520px}.bubble-map.has-many .bubble-map-stage{height:760px}.bubble-map-dialog:has(.has-branches){overflow:auto}.bubble-map-dialog .bubble-map.has-branches{height:auto}.bubble-map-dialog .has-branches .bubble-map-stage{flex:none}.bubble-map-dialog .has-branches .bubble-map-detail{height:auto;min-height:110px;overflow:visible}}
@media(max-width:360px){.bubble-map.has-many .bubble-map-stage{height:860px}}
@media(max-height:600px){.bubble-map-dialog .bubble-map-stage{min-height:80px}.bubble-map-dialog .bubble-map-detail{min-height:0;height:26svh;max-height:145px;overflow:auto}}
@media(prefers-reduced-motion:reduce){.bubble-map *{transition:none!important}.bubble-particle{display:none}}
@media(max-width:500px){.bubble-map.is-story .bubble-node-0 img{width:25px;height:24px}.bubble-map.is-story .bubble-node-icon{width:16px;height:16px}.bubble-map.is-story .bubble-node-0{font-size:12px!important}.bubble-map.is-story .bubble-node-context{font-size:9px}}
@media(min-width:901px) and (max-height:820px){.bubble-map-stage{height:clamp(240px,43svh,350px)}.bubble-map-detail{min-height:100px}}
@media(min-width:901px) and (max-height:600px){.bubble-map-stage{height:210px}.bubble-map-detail{min-height:85px}}
@media(min-width:901px){.bubble-map.has-many .bubble-map-stage{min-height:360px}}
@media(min-width:901px) and (max-width:1100px){.home-hero .bubble-map.has-many .bubble-map-stage{min-height:440px}}
@media(min-width:501px) and (max-height:650px){.bubble-map-dialog:has(.has-many){overflow:auto}.bubble-map-dialog .bubble-map.has-many{height:auto}.bubble-map-dialog .has-many .bubble-map-stage{height:420px;min-height:420px;flex:none}}
