/* Styles for the 01 Embedding, 03 RAG and 06 Agent demo pages. */
/* ---- 01 Embedding ---- */
.emb-experiment .ontology-board svg{height:440px}
.emb-grid{opacity:0;transition:opacity .6s var(--ease)}
.emb-grid.is-shown{opacity:1}
.emb-grid.is-shown.is-soft{opacity:.45}
.emb-grid line{stroke:#e0e0d8;stroke-width:1}
.emb-ring{fill:none;stroke-width:1;stroke-dasharray:2 5;opacity:.55}
.emb-groups{opacity:0;transition:opacity .5s var(--ease)}
.emb-groups.is-shown{opacity:1}
.emb-group-label{font-size:11px;text-anchor:middle;dominant-baseline:central;paint-order:stroke;stroke:var(--paper);stroke-width:4px}
.emb-point{cursor:pointer;transition:transform .9s var(--ease),opacity .4s;outline:none}
.emb-point circle{transition:r .3s,fill .4s}
.emb-label{font-size:13px;fill:#34362e;dominant-baseline:auto;paint-order:stroke;stroke:var(--paper);stroke-width:4px}
.emb-point.is-neutral circle{fill:#b9b9b0}
.emb-point.is-dim{opacity:.28}
.emb-point.is-focus circle{r:7}
.emb-point.is-focus .emb-label{font-weight:500;fill:var(--ink)}
.emb-point.is-ref circle{r:8;stroke:var(--ink);stroke-width:2}
.emb-point:focus-visible circle{stroke:var(--ink);stroke-width:2}
.emb-ray{stroke:#8f9488;stroke-width:1}
.emb-ray.is-strong{stroke:#34362e;stroke-width:1.4}
.emb-query{opacity:0;transition:opacity .4s,transform .9s var(--ease)}
.emb-query.is-shown{opacity:1}
.emb-query path{fill:#b38138}
.emb-query-label{text-anchor:middle;font-size:13px;font-weight:500;fill:#7a5320;paint-order:stroke;stroke:var(--paper);stroke-width:4px}
.emb-queries{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:12px}
.emb-queries button{border:1px solid var(--line);background:none;color:var(--muted);font-size:12px;padding:8px 11px;min-height:36px;cursor:pointer}
.emb-queries button[aria-pressed=true]{border-color:var(--ink);color:var(--ink)}
.emb-queries[hidden]{display:none}
.ontology-status ul li.emb-vector{font-family:ui-monospace,Menlo,monospace;font-size:11px;line-height:1.8;color:#58584e}
.ontology-status ul li.emb-row{display:flex;justify-content:space-between;color:var(--muted)}
.ontology-status ul li.emb-row.is-top{color:var(--ink)}
.emb-score{font-variant-numeric:tabular-nums}
.ontology-status ul li.emb-head{font-size:11px;color:var(--muted);margin-top:6px}
.ontology-status ul li.emb-keyword{color:#a44338}
.emb-swatch{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--c);margin-right:8px}

/* ---- 03 RAG ---- */
.rag-question{display:flex;gap:14px;align-items:baseline;border-bottom:1px solid var(--line);padding-bottom:16px}
.rag-question span,.rag-answer-label{font-size:10px;color:var(--muted);flex:none}
.rag-question p{font-size:20px;font-weight:500;letter-spacing:-.03em;margin:0}
.rag-answer{margin:18px 0 0;padding:16px 18px;border:1px solid var(--line);background:#eeeee7}
.rag-answer p{font-size:15px;line-height:1.8;margin:6px 0 0}
.rag-answer sup{font-size:10px;color:#56776a;margin:0 2px}
.rag-answer.is-ungrounded,.rag-answer.is-wrong{border-color:#d9b4ac}
.rag-answer.is-ungrounded .rag-answer-label,.rag-answer.is-wrong .rag-answer-label,.rag-warning{color:#a44338}
.rag-answer.is-correct{border-color:#9caa94;background:#e7ece2}
.rag-warning{font-size:12px!important}
.rag-chunks{list-style:none;padding:0;margin:18px 0 0;display:flex;flex-direction:column;gap:8px}
.rag-chunks[hidden]{display:none}
.rag-chunk{border:1px solid var(--line);padding:11px 14px;background:var(--paper);transition:opacity .5s,border-color .4s,background .4s}
.rag-chunk-top{display:flex;gap:10px;align-items:baseline;font-size:13px}
.rag-chunk-top strong{font-weight:500}
.rag-id{font-size:10px;color:var(--muted);font-family:ui-monospace,Menlo,monospace}
.rag-tag{margin-left:auto;font-size:10px;color:var(--muted)}
.rag-chunk p{font-size:12px;line-height:1.7;color:#58584e;margin:5px 0 0}
.rag-scores{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin-top:8px;font-size:10px;color:var(--muted)}
.rag-vec{font-family:ui-monospace,Menlo,monospace}
.rag-bar{display:none;align-items:center;gap:8px}
.rag-bar b{font-weight:400;white-space:nowrap;font-variant-numeric:tabular-nums}
.rag-track{display:block;width:90px;height:4px;background:#e3e3db}
.rag-track i{display:block;width:0;height:100%;background:#839d90;transition:width .6s var(--ease)}
.rag-bar[data-kind=rerank] i{background:#b38138}
.rag-chunks[data-stage="2"] .rag-bar[data-kind=vector],.rag-chunks[data-stage="3"] .rag-bar[data-kind=vector],.rag-chunks[data-stage="4"] .rag-bar[data-kind=vector],.rag-chunks.show-rerank .rag-bar[data-kind=rerank]{display:inline-flex}
.rag-chunks[data-stage="2"] .rag-vec,.rag-chunks[data-stage="3"] .rag-vec,.rag-chunks[data-stage="4"] .rag-vec{display:none}
.rag-chunk.is-out{opacity:.35}
.rag-chunk.is-selected{border-color:var(--ink)}
.rag-chunk.is-selected .rag-tag{color:var(--ink);font-weight:500}
.rag-settings{margin-top:26px;padding-top:4px;opacity:.45;transition:opacity .4s}
.rag-settings.is-active{opacity:1}
.rag-settings label{display:flex;justify-content:space-between;font-size:11px;margin:16px 0 8px}
.rag-settings output{font-variant-numeric:tabular-nums;color:var(--muted)}
.rag-settings input[type=range]{width:100%;accent-color:#56776a;height:24px;margin:0;cursor:pointer}
.rag-settings .rag-toggle{justify-content:flex-start;gap:8px;align-items:center;cursor:pointer}
.rag-toggle input{accent-color:#56776a;width:16px;height:16px;margin:0}

/* ---- 06 Agent ---- */
.ag-loop{display:flex;align-items:center;justify-content:center;gap:12px;padding:6px 0 18px}
.ag-loop span{font-size:13px;border:1px solid var(--line);padding:9px 16px;color:var(--muted);transition:background .35s,color .35s,border-color .35s}
.ag-loop span.is-active{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.ag-loop i{font-style:normal;color:var(--muted);font-size:13px}
.ag-loop .ag-back{margin-left:4px}
.ag-tools{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:0;margin:0 0 18px}
.ag-tools li{font-size:12px;text-align:center;padding:10px 4px;border:1px dashed #c3c3b7;color:var(--muted);transition:all .4s}
.ag-tools li.is-used{border-style:solid;color:#58584e}
.ag-tools li.is-active{border:1px solid #56776a;background:#e1e6dc;color:var(--ink)}
.ag-log{list-style:none;padding:0;margin:0;border-top:1px solid var(--line)}
.ag-step{padding:14px 0;border-bottom:1px solid var(--line);opacity:.55;transition:opacity .4s}
.ag-step.is-current{opacity:1}
.ag-step-name{display:block;font-size:11px;color:var(--muted);margin-bottom:6px}
.ag-line{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:8px;align-items:baseline;font-size:13px;line-height:1.7;margin:3px 0}
.ag-line>span{font-size:10px;color:var(--muted)}
.ag-line code{font-family:ui-monospace,Menlo,monospace;font-size:11.5px;color:#56776a;word-break:break-all}
.ag-goal{display:block;font-size:15px;font-weight:500}
.ag-pill{font-style:normal;font-size:10px;padding:2px 7px;border:1px solid #b38138;color:#9b6729;white-space:nowrap}
.ag-pill.is-ok{border-color:#9caa94;color:#56776a}
.ag-final{margin:10px 0 0;padding:10px 12px;background:#e7ece2;font-size:14px;line-height:1.7}
.ag-step.is-current .ag-line{animation:ag-in .5s var(--ease) both}
.ag-step.is-current .ag-line:nth-of-type(2){animation-delay:.7s}
.ag-step.is-current .ag-line:nth-of-type(3){animation-delay:1.4s}
.ag-step.is-current .ag-final{animation:ag-in .5s var(--ease) 1.9s both}
@keyframes ag-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.ag-step.is-current .ag-line,.ag-step.is-current .ag-final{animation:none}}
.ag-meter{margin-top:26px}
.ag-meter-head{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);margin-bottom:8px}
.ag-meter-head strong{font-weight:500;color:var(--ink);font-variant-numeric:tabular-nums}
.ag-meter-bar{height:6px;background:#e3e3db}
.ag-meter-bar i{display:block;height:100%;width:0;background:#56776a;transition:width .8s var(--ease)}
.ag-confirm{width:100%;margin-top:18px;min-height:44px;border:1px solid #b38138;background:#f1e6d4;color:#6e4a1c;font-size:12px;cursor:pointer}
.ag-confirm:hover{background:#ead9be}
.ag-confirm[hidden]{display:none}
.article-entering .emb-experiment,.article-entering .rag-experiment,.article-entering .ag-experiment{animation:reader-arrive .9s var(--ease) both}

@media(max-width:700px){
.emb-experiment .ontology-board svg{height:380px}
.rag-settings,.ag-meter,.ag-confirm{grid-row:3;margin-top:0}
.rag-experiment .ontology-status{grid-row:4}
.ag-experiment .ag-confirm{grid-row:4}
.ag-experiment .ontology-status{grid-row:5}
.rag-question p{font-size:17px}
.rag-chunk{padding:10px 12px}
.ag-loop{gap:6px}
.ag-loop span{padding:7px 10px;font-size:12px}
.ag-tools{grid-template-columns:repeat(2,minmax(0,1fr))}
.ag-line{grid-template-columns:30px minmax(0,1fr);font-size:12.5px}
.ag-pill{grid-column:2;justify-self:start}
}
