/* VulZoo diagrams and research interactions. The frame uses exhibit.css. */
[hidden]{display:none!important}
.wordmark{font-size:clamp(76px,7.8vw,112px)}
.hero-art text{font-family:var(--mono)}
.atlas-ring{fill:none;stroke:var(--line);stroke-width:1}
.atlas-link{fill:none;stroke:#8db7a5;stroke-width:1.5}
.atlas-card{fill:var(--paper);stroke:#b6c8bc}
.atlas-label{fill:var(--ink);font-size:12px}
.atlas-small{fill:var(--muted);font-size:10px}
.atlas-key{fill:var(--blue);font-size:10px}
.hero-art .atlas-mobile{display:none}
.atlas-dossier{fill:#e2ebe1;stroke:#93b7a3;stroke-width:1.4}
.research-strip .study{display:flex;gap:13px;align-items:center}
.study-mark{color:var(--orange);font:27px var(--mono)}
.study strong{display:block;font-size:12px}.study span{font-size:11px;color:var(--muted)}
.premise,.explore{padding-bottom:90px}
.premise-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-block:1px solid var(--line)}
.premise-card{padding:27px 28px;min-width:0;border-right:1px solid var(--line)}
.premise-card:first-child{padding-left:0}.premise-card:last-child{padding-right:0;border:0}
.premise-no{font:10px var(--mono);color:var(--muted)}
.premise-card h3{font-size:18px;letter-spacing:-.025em;margin:14px 0}
.premise-card p{font-size:13px;color:var(--muted);line-height:1.9}
.premise-mini{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:23px;font:10px var(--mono);min-height:35px}
.mini-file{border:1px solid #b6c8bc;padding:7px 9px}.mini-file.accent{color:var(--orange);border-color:#d6ac8e}
.mini-thread{width:25px;height:1px;background:var(--blue)}
.workbench{background:var(--night);color:#e9eee9;border:1px solid var(--night);border-radius:4px;overflow:hidden}
.bench-top{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px 28px;border-bottom:1px solid #38434c;font:11px var(--mono);color:#a4b6bc}
.bench-top b{color:var(--mint);font-weight:400}.demo-tag{font:9px var(--mono);padding:4px 7px;border:1px solid #52635f;white-space:nowrap}
.stage-controls{display:flex;align-items:stretch;justify-content:space-between;gap:20px;padding:0 28px;border-bottom:1px solid #38434c}
.stage-selector{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));flex:1;gap:12px}
.stage-btn{display:flex;align-items:center;gap:10px;min-width:0;background:none;color:#9baeb7;text-align:left;padding:19px 0;border-bottom:2px solid transparent;font-size:12px}
.stage-btn span:first-child{display:grid;place-items:center;width:23px;height:23px;flex-shrink:0;border:1px solid #50616b;border-radius:50%;font:10px var(--mono)}
.stage-btn[aria-pressed=true]{color:var(--mint);border-bottom-color:var(--mint)}
.stage-btn[aria-pressed=true] span:first-child{border-color:var(--mint)}
.play-actions{display:flex;gap:12px;align-items:center}.play-actions .btn{min-height:38px;padding:8px 13px;font-size:11px}.reset-btn{background:none;color:#b0c2c6;padding:10px 0;font-size:10px}
.stage-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;min-height:460px}
.graph-area{padding:25px 26px;min-width:0}
.lens-row{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:16px}
.lens-btn{background:none;border:1px solid #50616b;border-radius:2px;padding:7px 11px;font-size:11px;color:#b2c0c4}
.lens-btn[aria-pressed=true]{color:var(--mint);border-color:#7cb6a8;background:#91ded015}
.graph-viewport{overflow-x:auto;overscroll-behavior-x:contain;scrollbar-color:#627c79 #202e37;padding:6px}
.intelligence-graph{width:100%;min-width:650px;max-width:none;height:auto}
.graph-edge{fill:none;stroke:#40535f;stroke-width:1.1;opacity:.25;transition:stroke .3s,opacity .3s}
.graph-edge.is-lit{stroke:var(--mint);opacity:.7;stroke-dasharray:5 8;animation:flow 4s linear infinite}
.graph-edge.is-missing{stroke-dasharray:3 5;opacity:.45}
.graph-node{cursor:pointer;outline:none}
.graph-node rect{fill:#20303c;stroke:#536877;stroke-width:1;transition:fill .3s,stroke .3s,opacity .3s}
.graph-node text{font-family:var(--mono);fill:#aabdc3;font-size:13px;pointer-events:none}
.graph-node .node-sub{font-size:9px;fill:#8ca5b0}
.graph-node.is-lit rect{fill:#254039;stroke:#88c8b9}.graph-node.is-lit text{fill:#c8eade}.graph-node.is-lit .node-sub{fill:#8fc7b8}
.graph-node.is-core rect{fill:#243b58;stroke:#719bd9}.graph-node.is-core text{fill:#c8dcf4}
.graph-node.is-muted{opacity:.38}.graph-node.is-missing rect{fill:#1a2630;stroke:#5e6c75;stroke-dasharray:4 4}.graph-node.is-missing text{fill:#91a0aa}
.graph-node[aria-pressed=true] rect{stroke:var(--orange);stroke-width:2}.graph-node:focus-visible rect{stroke:var(--paper);stroke-width:3}
.graph-node:hover rect{stroke-width:2}.node-led{fill:#91ded0;transform-box:fill-box;transform-origin:center}
.graph-legend{display:flex;gap:16px;flex-wrap:wrap;color:#9cafb6;font-size:10px;margin-top:12px}.graph-legend i{display:inline-block;width:7px;height:7px;background:var(--mint);margin-right:6px}.graph-legend .dim{background:#647782}.graph-legend .missing{background:none;border:1px dashed #8d9fa7}
.scroll-hint{font-size:10px;color:#99acb5;margin-top:10px;display:none}
.graph-aside{background:#1c2933;border-left:1px solid #38434c;padding:29px 25px;min-width:0}
.detail-kind{font:10px var(--mono);color:var(--mint);letter-spacing:.08em}
.graph-aside h3{font-size:22px;letter-spacing:-.025em;margin:16px 0}
.detail-body{font-size:12px;color:#afbec4;line-height:1.95}
.detail-facts{padding:0;list-style:none;margin:20px 0 0;font:10px/1.9 var(--mono);color:#d0dcd9;overflow-wrap:anywhere}
.detail-facts li{padding:9px 0;border-top:1px solid #3a4d57;text-wrap:balance}
.detail-source{font-size:10px;color:#94a8ad;line-height:1.8;margin-top:16px}
.bench-bottom{display:flex;gap:20px;align-items:flex-start;justify-content:space-between;border-top:1px solid #38434c;padding:18px 28px;font-size:11px;color:#a6bcbf;line-height:1.8}
.bench-bottom p{max-width:750px;min-height:40px}.bench-bottom span{color:var(--mint);font:10px/1.8 var(--mono);flex-shrink:0}
.bench-note,.source-note{font-size:10px;color:var(--muted);line-height:1.9;margin-top:18px;text-wrap:balance}
.method-mini{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin-top:25px}
.method-mini>div{background:var(--paper);padding:17px 13px;font-size:11px;color:var(--muted);min-width:0}
.method-mini b{font:11px var(--mono);display:block;color:var(--blue);margin-bottom:7px}
.script-rail{margin-top:24px;border-left:2px solid var(--mint);padding:1px 0 1px 18px}
.script-rail code{font:11px var(--mono);display:block;color:var(--ink);overflow-wrap:anywhere}.script-rail span{font-size:11px;color:var(--muted);display:block;margin:4px 0 17px}.script-rail span:last-child{margin-bottom:0}
.evidence{padding:65px 0;background:var(--evidence);border-block:1px solid #d3d8cd}
.evidence-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:65px;align-items:start}
.evidence-left>p{font-size:13px;color:#627060;line-height:1.95;margin-top:21px;max-width:400px}
.evidence-main{display:flex;align-items:baseline;gap:20px;margin-top:27px}.evidence-main strong{font:500 65px var(--mono);letter-spacing:-.07em;line-height:1.2}.evidence-main span{font-size:12px;color:#657461}
.scope-metrics{display:flex;gap:30px;margin:22px 0}.scope-metrics strong{display:block;font:28px var(--mono);letter-spacing:-.04em}.scope-metrics span{font-size:10px;color:#657461}
.category-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px}
.category-btn{background:transparent;color:#5d6e5b;border:1px solid #b2c0ab;padding:7px 12px;font-size:11px}
.category-btn[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.catalogue-title{font-size:20px;letter-spacing:-.03em}.catalogue-description{font-size:12px;color:#657461;margin-top:10px;min-height:47px;line-height:1.9}
.source-chips{display:flex;gap:7px;flex-wrap:wrap;margin:18px 0 25px}.source-chip{font:10px/1.5 var(--mono);border:1px solid #b9c6b1;padding:5px 9px;color:#5f7259}
.data-table{width:100%;border-collapse:collapse;font-size:12px}.data-table th{font-size:10px;color:#67785f;text-align:left;font-weight:400;border-bottom:1px solid #bac7b1;padding:0 0 10px}.data-table th:last-child,.data-table td:last-child{text-align:right}.data-table td{padding:14px 0;border-bottom:1px solid #c5cfbd}.data-table td:last-child{font:18px var(--mono);letter-spacing:-.035em;padding-left:15px;white-space:nowrap}.data-table td:first-child{max-width:240px;padding-right:15px}
.catalogue-source{display:inline-block;font-size:11px;color:#56664c;margin-top:23px;text-wrap:balance}
.graph-area button:focus-visible,.workbench a:focus-visible{outline-color:var(--mint)}
@media(max-width:1100px){.stage-layout{grid-template-columns:minmax(0,1fr) 255px}.graph-area{padding:22px 18px}.graph-aside{padding:26px 20px}.scroll-hint{display:block}.evidence-grid{gap:40px}.bench-top,.stage-controls{padding-left:22px;padding-right:22px}}
@media(max-width:820px){.hero{min-height:575px;gap:20px}.wordmark{font-size:78px}.hero-title{font-size:28px}.hero-copy{font-size:13px}.research-strip{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:18px;margin-bottom:64px}.research-strip .study{grid-column:1/-1;padding:0 0 15px;border-bottom:1px solid var(--line)}.research-strip>div:nth-child(2){border-left:0;padding-left:0}.research-strip>div{padding:0 16px}.stage-layout{grid-template-columns:1fr}.graph-aside{border-left:0;border-top:1px solid #38434c;display:grid;grid-template-columns:1fr 1fr;gap:0 30px}.detail-kind,.detail-source{grid-column:1/-1}.detail-body{grid-column:1}.detail-facts{grid-column:2;grid-row:2/4;margin:16px 0}.graph-area{padding:24px}.stage-controls{display:block}.stage-selector{gap:20px}.play-actions{padding:13px 0;border-top:1px solid #38434c}.premise-card{padding:25px 19px}.premise-card h3{font-size:16px}.premise-card p{font-size:12px}.evidence-grid{grid-template-columns:1fr;gap:35px}.evidence-left>p{max-width:600px}.evidence-left .source-note{max-width:650px}.scope-metrics{margin-bottom:0}.catalogue-description{min-height:0}}
@media(max-width:620px){.hero{min-height:0;gap:15px}.wordmark{font-size:clamp(74px,18vw,92px);margin-left:-3px}.hero-title{font-size:28px;margin-top:23px}.hero-art{max-width:460px;margin:auto}.research-strip{margin-bottom:58px;padding:19px 0}.strip-number{font-size:27px}.strip-label{font-size:10px}.research-strip>div{padding:0 10px}.premise,.explore{padding-bottom:60px}.premise-grid{grid-template-columns:1fr}.premise-card,.premise-card:first-child,.premise-card:last-child{padding:23px 0;border-right:0;border-bottom:1px solid var(--line)}.premise-card:last-child{border-bottom:0}.premise-card h3{font-size:18px;margin:10px 0}.premise-mini{margin-top:17px;min-height:0}.bench-top{padding:18px 16px;flex-wrap:wrap;gap:10px}.bench-top b{font-size:11px}.stage-controls{padding:0 16px}.stage-selector{gap:10px}.stage-btn{font-size:11px;gap:8px;padding:16px 0}.stage-btn span:first-child{width:20px;height:20px}.graph-area{padding:20px 14px}.lens-btn{padding:7px 9px;font-size:10px}.graph-aside{display:block;padding:23px 22px}.detail-facts{margin-top:20px}.graph-aside h3{font-size:22px}.bench-bottom{padding:17px 20px;display:block}.bench-bottom p{min-height:0}.bench-bottom span{display:block;margin-top:10px}.method{padding-bottom:60px}.method-mini{grid-template-columns:1fr}.method-mini>div{display:flex;gap:14px;align-items:center;padding:12px}.method-mini b{margin:0;min-width:95px}.evidence{padding:50px 0}.evidence-grid{gap:30px}.evidence-left>p{font-size:12px}.evidence-main strong{font-size:60px}.data-table{font-size:11px}.data-table td:last-child{font-size:17px}.category-btn{padding:7px 9px;font-size:10px}.source-chips{margin-bottom:20px}.source-chip{font-size:9px}.catalogue-title{font-size:20px}}
@media(max-width:620px){.hero-art .atlas-desktop{display:none}.hero-art .atlas-mobile{display:block}}
@media(max-width:350px){.wordmark{font-size:72px}.hero-title{font-size:26px}.stage-btn{gap:6px;font-size:10px}.stage-btn span:first-child{width:18px;height:18px;font-size:9px}.lens-row{gap:6px}.lens-btn{padding:7px 8px}.research-strip>div{padding:0 7px}.strip-label{font-size:9px}.data-table td:first-child{padding-right:10px}}
