.platform-overview { max-inline-size:1200px; margin:clamp(3rem,6vw,5rem) auto 0; }
.platform-overview * { box-sizing:border-box; }
.po-art { position:relative; }
.po-art picture, .po-art img { display:block; inline-size:100%; }
.po-art img { block-size:auto; aspect-ratio:1942 / 809; }
.po-labels { position:absolute; inset:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:start; padding-block-start:.5rem; }
.platform-overview .po-label { margin:0; color:var(--ink); font-size:clamp(.875rem,1.4vw,1.125rem); line-height:1.4; font-weight:500; text-align:center; }
.po-outcomes { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin-block-start:-.5rem; }
.po-outcomes ul { grid-column:3; display:flex; justify-content:center; flex-wrap:wrap; gap:.35rem 1.25rem; list-style:none; margin:0; padding:0; color:var(--muted); font-size:.875rem; line-height:1.5; }
@media (max-width:639px) {
 .platform-overview { margin-block-start:2.5rem; }
 .po-art img { aspect-ratio:1122 / 1402; }
 .po-labels { display:block; padding:0; }
 .platform-overview .po-label { position:absolute; inset-inline-start:3%; text-align:start; font-size:.875rem; }
 .po-sources { inset-block-start:3%; }
 .po-ontology { inset-block-start:27%; }
 .po-applications { inset-block-start:75%; }
 .po-outcomes { display:block; margin-block-start:0; }
 .po-outcomes ul { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.5rem; text-align:center; font-size:.75rem; }
}
.ontology-explorer { max-inline-size:1200px; margin:clamp(3rem,6vw,5rem) auto 0; --oe-line:#555; --oe-panel:#171717; }
.ontology-explorer *, .ontology-explorer *::before, .ontology-explorer *::after { box-sizing:border-box; }
.ontology-explorer button, .ontology-explorer select { font:inherit; color:inherit; }
.ontology-explorer button { cursor:pointer; }
.ontology-explorer button:disabled { cursor:default; }
.ontology-explorer :is(button,select,summary):focus-visible { outline:2px solid var(--ink); outline-offset:4px; }
.ontology-explorer [hidden] { display:none !important; }
.oe-toolbar { display:flex; align-items:end; gap:1.25rem; padding-block-end:1.25rem; border-block-end:1px solid #333; }
.oe-toolbar label { display:grid; gap:.35rem; font-size:var(--ae-type-small); color:var(--muted); min-inline-size:0; }
.oe-toolbar select { min-block-size:44px; max-inline-size:100%; inline-size:260px; padding:.55rem 2rem .55rem .75rem; background:#171717; border:1px solid #555; border-radius:4px; font-size:16px; color:var(--ink); }
.oe-sample { margin-inline-start:auto; padding-block:.8rem; color:var(--muted); font-size:var(--ae-type-small); white-space:nowrap; }
.oe-sample::before { content:''; display:inline-block; inline-size:5px; block-size:5px; border-radius:50%; background:currentColor; margin-inline-end:.55rem; vertical-align:middle; }
.oe-questions { border-block-end:1px solid #333; }
.oe-questions > summary, .oe-more > summary, .oe-architecture > summary { list-style:none; min-block-size:44px; display:flex; align-items:center; justify-content:space-between; cursor:pointer; font-size:var(--ae-type-small); color:var(--muted); }
.oe-questions > summary::-webkit-details-marker, .oe-more > summary::-webkit-details-marker, .oe-architecture > summary::-webkit-details-marker { display:none; }
.oe-questions[open] > summary > span { transform:rotate(45deg); }
.oe-question-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.5rem; padding:.5rem 0 1.25rem; }
.oe-question { display:block; position:relative; text-align:start; background:none; padding:0 1.25rem 0 0; border:0; color:var(--ink); font-size:var(--ae-type-body-sm); line-height:1.45; min-block-size:60px; }
.oe-question > span { display:block; font-size:12px; color:var(--muted); margin-block-end:.5rem; }
.oe-question > i { position:absolute; inset-inline-end:0; inset-block-start:1.75rem; font-style:normal; color:var(--muted); }
.oe-question:hover { text-decoration:underline; text-underline-offset:4px; }
.oe-more .oe-question-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
.oe-body { display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:2rem; align-items:start; padding-block:1.5rem; }
.oe-stage { min-inline-size:0; }
.oe-context { margin:0; text-align:center; color:var(--muted); font-size:12px; letter-spacing:.01em; line-height:1.5; }
.oe-context-top { padding-block:0 .5rem; }
.oe-context-bottom { padding-block:.5rem 0; }
.oe-map { position:relative; block-size:460px; isolation:isolate; }
.oe-map-lines { position:absolute; inset:0; inline-size:100%; block-size:100%; overflow:visible; }
.oe-map-lines > path { fill:none; stroke:#777; stroke-width:.15; opacity:.25; vector-effect:non-scaling-stroke; }
.oe-map-lines > path:not(.oe-plane):not(.oe-plane-side) { stroke-width:1px; }
.oe-map-lines > path.is-linked { stroke:#c6c6c6; opacity:.9; }
.oe-map-lines > .oe-plane { fill:#1e1e1e; stroke:#494949; stroke-width:.7px; opacity:1; }
.oe-map-lines > .oe-plane-side { fill:#303030; stroke:#494949; stroke-width:.7px; opacity:1; }
.oe-map-lines marker path { fill:none; stroke:#aaa; stroke-width:1; }
.oe-node { position:absolute; transform:translate(-50%,-50%); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; inline-size:108px; min-block-size:76px; padding:4px; border:1px solid transparent; border-radius:4px; background:transparent; opacity:1; transition:opacity 160ms ease-out, background 160ms ease-out; z-index:2; }
.oe-node svg { opacity:.4; inline-size:53px; block-size:56px; overflow:visible; pointer-events:none; }
.oe-node > span { color:#aaa; max-inline-size:100%; overflow-wrap:anywhere; font-size:13px; line-height:1.15; text-align:center; text-shadow:0 1px 3px #000,0 -1px 3px #000; }
.oe-node.is-related svg, .oe-node:hover svg, .oe-node:focus-visible svg { opacity:1; }
.oe-node.is-related > span, .oe-node:hover > span, .oe-node:focus-visible > span { color:var(--ink); }
.oe-node.is-selected { border-color:#777; background:#242424; opacity:1; }
.oe-edge-label { position:absolute; z-index:1; transform:translate(-50%,-50%); color:#c5c5c5; font-size:12px; line-height:1.1; padding:2px 4px; background:#1e1e1e; border-radius:2px; max-inline-size:120px; text-align:center; pointer-events:none; }
.oe-inspector { min-inline-size:0; border:1px solid #464646; border-radius:5px; padding:1.25rem; background:var(--oe-panel); }
.oe-eyebrow { display:block; color:var(--muted); font-size:12px; margin-block-end:.6rem; }
.oe-inspector h3 { margin:0 0 1rem; font-size:24px; font-weight:500; line-height:1.2; letter-spacing:-.02em; overflow-wrap:anywhere; }
.oe-inspector h3:focus { outline:none; }
.oe-inspector h4 { font-size:12px; font-weight:400; margin:1.25rem 0 .5rem; color:var(--muted); }
.oe-fields { margin:0; padding-block-start:.75rem; border-block-start:1px solid #333; }
.oe-fields > div { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.2fr); gap:1rem; padding:.35rem 0; font-size:13px; line-height:1.4; }
.oe-fields dt { color:var(--muted); }
.oe-fields dd { margin:0; text-align:end; overflow-wrap:anywhere; }
.oe-relations, .oe-permissions { border-block-start:1px solid #333; margin-block-start:.65rem; }
.oe-relations summary, .oe-permissions summary { cursor:pointer; min-block-size:44px; display:flex; align-items:center; justify-content:space-between; font-size:13px; list-style:none; }
.oe-relations summary::-webkit-details-marker, .oe-permissions summary::-webkit-details-marker { display:none; }
.oe-relations summary > span { color:var(--muted); }
.oe-permissions summary::after { content:'+'; color:var(--muted); }
.oe-permissions[open] summary::after { content:'−'; }
.oe-relations ul { margin:0; padding:0; list-style:none; }
.oe-relations button { display:flex; flex-wrap:wrap; align-items:center; gap:.4rem; inline-size:100%; min-block-size:44px; text-align:start; border:0; padding:.45rem 0; background:transparent; font-size:13px; }
.oe-relations button > span { color:var(--muted); }
.oe-relations button > i { margin-inline-start:auto; font-style:normal; }
.oe-relations button:hover, .oe-back:hover { text-decoration:underline; }
.oe-permissions ul { margin:0; padding-inline-start:1rem; font-size:13px; line-height:1.5; }
.oe-permissions li + li { margin-block-start:.5rem; }
.oe-permissions p, .oe-action p { margin:.75rem 0 0; font-size:12px; color:var(--muted); line-height:1.5; }
.oe-answer { margin:0; color:#c9c9c9; font-size:15px; line-height:1.65; }
.oe-evidence { display:flex; flex-wrap:wrap; gap:.4rem; }
.oe-evidence button { text-align:start; border:1px solid #494949; border-radius:3px; padding:.45rem .6rem; background:transparent; font-size:12px; min-block-size:44px; max-inline-size:100%; overflow-wrap:anywhere; }
.oe-evidence button span { display:block; color:var(--muted); margin-block-start:.25rem; font-size:11px; }
.oe-preview { display:flex; justify-content:space-between; align-items:center; gap:1rem; background:none; inline-size:100%; min-block-size:48px; border:0; border-block-start:1px solid #444; margin-block-start:1.25rem; padding:.5rem 0; text-align:start; font-size:14px; }
.oe-action dl { margin:0; }
.oe-action dl > div + div { margin-block-start:.75rem; }
.oe-action dt { color:var(--muted); font-size:12px; }
.oe-action dd { margin:.3rem 0 0; font-size:14px; line-height:1.5; }
.oe-back { border:0; padding:0 0 .75rem; min-block-size:44px; background:none; font-size:12px !important; color:var(--muted) !important; text-align:start; }
.oe-architecture { border-block-start:1px solid #333; }
.oe-architecture > summary::after { content:'+'; }
.oe-architecture[open] > summary::after { content:'−'; }
.oe-architecture p { max-inline-size:65ch; color:var(--muted); font-size:15px; line-height:1.65; margin:.5rem 0 1rem; }
.oe-status { position:absolute; inline-size:1px; block-size:1px; clip-path:inset(50%); overflow:hidden; white-space:nowrap; }
.oe-fallback { font-size:14px; line-height:1.6; color:var(--muted); }
.oe-fallback article { border-block-start:1px solid #333; padding-block:1rem; }
.oe-fallback dd { margin:0 0 .5rem; }
[data-ready="true"] .oe-fallback { display:none; }
@media (max-width:1199px) and (min-width:1000px) { .oe-body { grid-template-columns:minmax(0,1fr) 300px; gap:1rem; } .oe-map { block-size:400px; } .oe-node { inline-size:88px; } .oe-node > span { font-size:12px; } .oe-node svg { opacity:.4; inline-size:44px; block-size:46px; } }
@media (max-width:999px) {
 .ontology-explorer { margin-block-start:2.5rem; }
 .oe-toolbar { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.4rem .8rem; padding-block-end:.5rem; }
 .oe-toolbar label:first-child { grid-column:1 / -1; }
 .oe-toolbar select { inline-size:100%; padding-inline:.5rem 1.5rem; }
 .oe-sample { margin:0 0 .65rem; padding:0; font-size:11px; align-self:end; }
 .oe-question-list, .oe-more .oe-question-list { grid-template-columns:1fr; gap:1rem; }
 .oe-question { min-block-size:52px; padding-block:.25rem; }
 .oe-question > span { margin-block-end:.3rem; }
 .oe-body { grid-template-columns:1fr; gap:.5rem; padding-block:.75rem; }
 .oe-stage { max-inline-size:560px; inline-size:100%; margin-inline:auto; }
 .oe-context { font-size:11px; }
 .oe-map { block-size:208px; }
 .oe-node { inline-size:112px; min-block-size:64px; gap:0; padding:3px; }
 .oe-node svg { opacity:.4; inline-size:35px; block-size:37px; }
 .oe-node > span { font-size:12px; }
 .oe-edge-label { display:none; }
 .oe-inspector { padding:.9rem 1rem; }
 .oe-inspector h3 { font-size:21px; margin-block-end:.6rem; }
 .oe-eyebrow { margin-block-end:.35rem; font-size:11px; }
 .oe-fields { padding-block-start:.5rem; }
 .oe-fields > div { padding:.2rem 0; gap:.75rem; font-size:12px; }
 .oe-relations, .oe-permissions { margin-block-start:.35rem; }
 .oe-architecture > summary { font-size:12px; }
 .oe-context-bottom { padding-block:0; }
 .oe-map:has(.oe-node:disabled) { block-size:390px; }
 .oe-map:has(.oe-node:disabled) .oe-node { inline-size:74px; }
}
@media (max-width:359px) { .oe-node { inline-size:92px; } .oe-toolbar select { font-size:15px; } }
@media (prefers-reduced-motion:reduce) { .ontology-explorer * { animation:none !important; transition:none !important; } }
@media (forced-colors:active) { .oe-node { opacity:1; } .oe-node.is-selected { border-color:Highlight; } .oe-map-lines > path { stroke:CanvasText; } .oe-map-lines > .oe-plane { fill:Canvas; } }
@media print { .oe-questions, .oe-toolbar select, .oe-preview { display:none; } .oe-body { display:block; } .oe-map { block-size:380px; } .oe-inspector { break-inside:avoid; } }
