:root{--ink:#151c2c;--muted:#728096;--border:#e3e8f1;--border-strong:#cdd6e4;--paper:#f5f7fb;--surface:#fff;--nav:#0d1424;--nav2:#141e33;--blue:#526af1;--blue-soft:#ecf0ff;--teal:#0c988a;--teal-soft:#e8f7f3;--amber:#b87520;--amber-soft:#fff5e7;--red:#c65262;--red-soft:#fff0f2;--shadow:0 12px 42px rgba(18,35,64,.055);--mono:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;--sans:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans SC","PingFang SC",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.58 var(--sans);-webkit-font-smoothing:antialiased}button,a{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}a:hover{text-decoration:none}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:3px solid #8393ff;outline-offset:2px}::selection{background:#c8d3ff;color:#142457}.app-shell{display:flex;min-height:100vh}.sidebar{width:246px;flex:0 0 246px;position:sticky;top:0;height:100vh;background:var(--nav);color:#f8faff;display:flex;flex-direction:column;padding:27px 14px 19px;z-index:40}.side-brand{display:flex;align-items:center;gap:12px;padding:0 14px 47px}.brand-mark{position:relative;width:34px;height:34px;border:1px solid #667cff;background:#1a2852;border-radius:11px}.brand-mark span{position:absolute;width:7px;height:7px;border-radius:50%;background:#a5b4ff;box-shadow:0 0 10px #a4b6ff66}.brand-mark span:first-child{left:8px;top:8px}.brand-mark span:nth-child(2){right:7px;top:14px;background:#85e0cb}.brand-mark span:nth-child(3){left:10px;bottom:6px;background:#e5b86f}.brand-copy strong{display:block;letter-spacing:-.025em;font-size:16px;font-weight:760}.brand-copy small{display:block;font:9px var(--mono);letter-spacing:.11em;color:#8796b1;margin-top:1px}.side-section-label{font:10px var(--mono);letter-spacing:.11em;color:#6e7f9a;padding:0 14px 14px}.side-nav{display:flex;flex-direction:column;gap:5px}.nav-item{border:1px solid transparent;background:transparent;color:#91a0ba;text-align:left;padding:11px 11px;border-radius:10px;display:flex;align-items:center;gap:12px;min-height:47px;transition:.18s}.nav-item>span:last-child{display:block;min-width:0}.nav-item:hover{background:#1c2940;color:#fff}.nav-item.active{background:#263253;color:#fff;border-color:#425176;box-shadow:inset 3px 0 #8da0ff}.nav-item b{display:block;font-size:12px;font-weight:660;line-height:1.2}.nav-item small{display:block;font-size:11px;color:#9daec8;margin-top:2px;white-space:nowrap}.nav-code{font:12px var(--mono);display:grid;place-items:center;background:#1c2a40;border:1px solid #32405a;border-radius:8px;width:33px;height:33px;flex:0 0 auto;color:#b5c4e1}.active .nav-code{background:#6378eb;color:#fff;border-color:#8797ff}.nav-symbol{font-size:21px;color:#8d9fea;width:33px;text-align:center}.nav-divider{height:1px;background:#2a344a;margin:10px 8px}.side-bottom{margin-top:auto;padding:0 7px}.mocked-state{display:flex;gap:9px;align-items:flex-start;border:1px solid #34405d;background:#17233b;padding:12px 10px;border-radius:10px}.mocked-state .pulse{width:7px;height:7px;background:#85bff2;border-radius:50%;margin-top:5px;flex:0 0 auto}.mocked-state b{font:9px var(--mono);letter-spacing:.03em;color:#cbd7ea}.mocked-state small{font-size:10px;color:#8094b4;display:block;line-height:1.6;margin-top:4px}.side-bottom p{margin:17px 6px 0;color:#586985;font:10px/1.75 var(--mono)}.main-shell{min-width:0;flex:1;min-height:100vh;display:flex;flex-direction:column}.topbar{height:70px;flex:0 0 70px;background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(22px,3.3vw,60px);border-bottom:1px solid var(--border);gap:12px}.topbar-left,.topbar-right{display:flex;align-items:center;gap:16px;min-width:0}.breadcrumb-label,.breadcrumb-slash,#breadcrumbCurrent{font:10px var(--mono);letter-spacing:.10em;white-space:nowrap}.breadcrumb-label{color:#8693a6}.breadcrumb-slash{color:#bec8d6}#breadcrumbCurrent{font-weight:650;color:#243553}.demo-pill{border:1px solid #ffdbad;background:#fff9ee;color:#98651e;font:10px var(--mono);padding:8px 11px;border-radius:100px;white-space:nowrap}.demo-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#eca457;margin-right:5px}.top-doc-link{font-size:12px;font-weight:660;color:#4156ba;white-space:nowrap}.top-doc-link:hover{color:#202f87}.view{padding:0 clamp(22px,3.3vw,60px) 48px;flex:1;min-width:0;max-width:1780px;width:100%;margin:0 auto}.footer{display:flex;justify-content:space-between;gap:12px;color:#9ba7b6;font:10px var(--mono);padding:16px clamp(22px,3.3vw,60px) 28px;margin-top:auto}.mobile-only{display:none}.icon-btn{border:1px solid var(--border);background:#fff;border-radius:8px;padding:6px 11px}
.page-header{padding:38px 0 27px;display:flex;justify-content:space-between;align-items:end;gap:24px}.eyebrow{font:11px var(--mono);letter-spacing:.17em;color:var(--blue);font-weight:700;text-transform:uppercase}.eyebrow.light{color:#a1c7ff}.page-header h1{font-size:clamp(27px,2.6vw,43px);line-height:1.16;letter-spacing:-.045em;margin:8px 0 10px;font-weight:780}.page-header p{max-width:820px;color:#68778e;margin:0;font-size:13px;line-height:1.8}.page-header .shortnote{white-space:nowrap;color:#718198;font:11px var(--mono)}.panel{background:var(--surface);border:1px solid var(--border);border-radius:15px;box-shadow:var(--shadow);min-width:0;overflow:hidden}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:17px 20px;border-bottom:1px solid var(--border);min-height:58px}.panel-head h2,.panel-head h3{margin:0;font-size:14px;font-weight:740;letter-spacing:-.012em}.panel-head p{margin:2px 0 0;color:var(--muted);font-size:11px}.panel-body{padding:18px 20px}.panel-label{font:10px var(--mono);color:#8190a5;letter-spacing:.11em}.panel-caption{color:#7b889b;font-size:11px;line-height:1.7}.pill{display:inline-flex;gap:5px;align-items:center;padding:5px 9px;border-radius:50px;font-size:10px;font-weight:700;background:#f2f5fb;color:#64738d;border:1px solid #e4eaf4;white-space:nowrap}.pill.blue{background:var(--blue-soft);color:#4258c7;border-color:#dce2ff}.pill.red{background:var(--red-soft);color:#b34655;border-color:#f7dce0}.pill.teal{background:var(--teal-soft);color:#08786d;border-color:#cbebe2}.pill.amber{background:var(--amber-soft);color:#a56a25;border-color:#f6e0bf}.text-muted{color:var(--muted)}.text-mono{font-family:var(--mono)}.two-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.36fr);gap:18px}.three-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.mini-divider{height:1px;background:var(--border);margin:14px 0}.action-btn{border:1px solid #d3daed;border-radius:8px;background:#fff;padding:8px 12px;color:#344568;font-size:12px;font-weight:650;white-space:nowrap}.action-btn:hover{border-color:#a8b5e2;background:#f7f9ff}.action-btn.primary{color:#fff;background:#405bdd;border-color:#405bdd}.action-btn.primary:hover{background:#3049cb}.controls{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.seg{background:#eff3f8;border:1px solid #e4eaf2;padding:3px;border-radius:9px;display:flex;gap:3px;flex-wrap:wrap}.seg button{background:transparent;border:0;border-radius:6px;padding:7px 11px;color:#76849a;font-size:11px;font-weight:680}.seg button.active{background:#fff;color:#344dc3;box-shadow:0 1px 5px #1c31571a}.link-text{color:#425ccf;font-weight:690}.link-text:hover{text-decoration:underline}.clickable{cursor:pointer}.sticky-note{margin-top:16px;padding:12px 15px;border:1px dashed #c9d5ee;background:#f8faff;border-radius:10px;font-size:12px;color:#677793}.evidence-foot{margin-top:17px;display:flex;align-items:flex-start;gap:9px;padding:12px 16px;background:#fffdf5;border:1px solid #f0e5c5;border-radius:9px;font-size:12px;color:#806c39}.evidence-foot strong{font-weight:730}
/* overview: editorial landing */
.overview-hero{margin-top:32px;border-radius:20px;background:linear-gradient(110deg,#111b34 0%,#1e2d56 70%,#29355a 100%);padding:clamp(28px,4.2vw,64px);color:#fff;display:grid;grid-template-columns:1.2fr .8fr;gap:32px;overflow:hidden;position:relative}.overview-hero:before{content:"";position:absolute;width:370px;height:370px;border-radius:100%;right:-90px;top:-110px;background:radial-gradient(circle,#5e75da44,transparent 70%);pointer-events:none}.overview-hero h1{font-size:clamp(35px,3.3vw,58px);letter-spacing:-.052em;line-height:1.16;margin:15px 0 20px;max-width:730px}.overview-hero p{font-size:14px;line-height:1.9;max-width:660px;color:#b0bfdb}.overview-actions{display:flex;gap:12px;align-items:center;margin-top:27px;flex-wrap:wrap}.overview-actions button{padding:11px 16px;border-radius:9px;border:1px solid #7e96ff;background:#7188ff;color:#091437;font-weight:780}.overview-actions a{border:1px solid #596a90;padding:11px 16px;border-radius:9px;color:#dce6ff;font-size:12px}.hero-art{height:100%;min-height:270px;position:relative;border:1px solid #435676;border-radius:14px;background:linear-gradient(165deg,#1c3055,#12223b);overflow:hidden}.hero-art svg{display:block;width:100%;height:100%}.hero-art .art-label{position:absolute;bottom:16px;left:19px;color:#97add0;font:10px var(--mono)}.section-inline-heading{display:flex;justify-content:space-between;align-items:end;gap:12px;padding:32px 0 15px}.section-inline-heading h2{font-size:22px;letter-spacing:-.03em;margin:0}.section-inline-heading p{margin:0;color:#7b899e;font-size:12px}.overview-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:13px}.rq-tile{grid-column:span 2;background:#fff;border:1px solid var(--border);border-radius:14px;padding:20px;min-height:226px;cursor:pointer;transition:transform .17s,border .17s,box-shadow .17s;box-shadow:var(--shadow)}.rq-tile:nth-child(4),.rq-tile:nth-child(5){grid-column:span 3}.rq-tile:hover{transform:translateY(-3px);border-color:#9eacf1;box-shadow:0 14px 45px #33487517}.tile-top{display:flex;justify-content:space-between;align-items:center}.rq-tile .tile-id{font:11px var(--mono);font-weight:730;letter-spacing:.1em;color:#566fe8}.rq-tile .tile-arrow{font-size:17px;color:#7788a1}.rq-tile h3{margin:18px 0 4px;font-size:17px;font-weight:780}.rq-tile p{color:#7b889c;font-size:11px;margin:0 0 15px}.tile-diagram{height:67px;display:flex;align-items:center;gap:8px;justify-content:flex-start}.tile-diagram svg{height:66px;width:100%;max-width:310px}.tile-caption{font:10px var(--mono);letter-spacing:.02em;color:#9aabc2;margin-top:4px}.overview-bottom{margin-top:18px;display:grid;grid-template-columns:1fr 1fr;gap:18px}.rule-list{display:grid;gap:12px}.rule-item{display:flex;align-items:flex-start;gap:12px;color:#607188;font-size:12px}.rule-item b{color:#253551}.rule-num{font:11px var(--mono);background:#edf0f9;color:#5469d6;padding:6px;border-radius:8px}
/* RQ1: comparison studio */
.diff-summary{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.diff-summary strong{font:20px var(--mono);color:#23395d}.diff-shell{display:grid;grid-template-columns:1fr 1fr;gap:0;min-height:460px}.diff-pane+.diff-pane{border-left:1px solid var(--border)}.diff-pane-head{padding:13px 16px;background:#f9fbff;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;gap:9px}.diff-pane-head b{font-size:11px;letter-spacing:.02em}.diff-pane-head small{font:10px var(--mono);color:#8a98ab}.tree-list{padding:15px 15px 19px}.tree-line{display:flex;gap:10px;align-items:center;width:100%;border:1px solid transparent;padding:8px 9px;text-align:left;border-radius:8px;background:transparent;color:#263750;min-height:38px;font-size:12px}.tree-line:hover{background:#f3f6ff}.tree-line.selected{background:#eef2ff;border-color:#b9c8ff}.tree-line.error{background:#fff3f4;border-color:#f7dce0}.tree-line.missing{border-style:dashed;border-color:#f0b6be;background:#fff7f8}.tree-line.extra{background:#fff7ec;border-color:#f0dfc2}.tree-line .tree-indent{display:block;flex:0 0 auto;width:calc(var(--indent,0)*19px)}.tree-line .tree-caret{font-family:var(--mono);color:#9aacc1;width:12px}.tree-line .tree-icon{font-size:12px;width:19px;height:19px;display:grid;place-items:center;background:#eaf0fa;border-radius:5px;color:#4762a7}.tree-line .tree-icon.tool{background:#e8f7f2;color:#168575}.tree-line .tree-icon.session{background:#eaeafa;color:#645bc8}.tree-line .tree-icon.mcp{background:#fff1e4;color:#bd7f35}.tree-line .tree-name{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.tree-line small{font:10px var(--mono);color:#71829b}.tree-line .issue-dot{width:7px;height:7px;background:#d46270;border-radius:50%}.diff-bottom{display:grid;grid-template-columns:1.15fr .85fr;gap:18px;margin-top:17px}.property-row{display:flex;justify-content:space-between;gap:13px;padding:9px 0;border-bottom:1px solid #f0f3f8;font-size:12px}.property-row span:first-child{color:#8290a4}.property-row b{font:11px var(--mono);max-width:62%;text-align:right;overflow-wrap:anywhere}.diff-chip{font:10px var(--mono);color:#586fd1;border-radius:6px;background:#edf1ff;padding:4px 6px}.diff-guideline{display:flex;gap:9px;align-items:center;color:#7d8da3;font-size:11px;padding:9px 18px 16px}.line-legend{display:inline-block;width:9px;height:9px;border-radius:2px;background:#efb4bd}
/* RQ2: tracks, matrix and graph */
.attribution-root{background:#111b2c;border:1px solid #2b3a55;border-radius:15px;color:#eef4ff;overflow:hidden;box-shadow:0 20px 45px #1f304929}.attribution-head{padding:17px 22px;display:flex;justify-content:space-between;align-items:center;gap:16px;border-bottom:1px solid #344056;background:#17233a}.attribution-head h2{font-size:14px;margin:0;color:#e4ecfa}.attribution-head small{font:10px var(--mono);color:#8296b9}.attribution-head .seg{background:#25344f;border-color:#35455f}.attribution-head .seg button{color:#9aaed1}.attribution-head .seg button.active{background:#41557c;color:#fff;box-shadow:none}.stage-layout{display:grid;grid-template-columns:minmax(0,1fr) 292px;min-height:550px}.stage-main{min-width:0;overflow:auto;padding:20px 22px 24px}.stage-aside{background:#16233b;border-left:1px solid #354157;padding:22px;min-width:0}.stage-label{font:10px var(--mono);color:#8ca0c0;letter-spacing:.13em}.stage-aside h3{font-size:17px;line-height:1.35;margin:10px 0 12px}.stage-aside p{color:#b3c0d7;font-size:11px;line-height:1.8}.dark-key-value{border-top:1px solid #34445e;padding:9px 0;display:flex;justify-content:space-between;gap:9px;font:11px var(--mono)}.dark-key-value span{color:#8ea1bf}.dark-key-value b{font-weight:550;color:#e0eafa;max-width:65%;text-align:right;overflow-wrap:anywhere}.dark-badge{display:inline-block;border:1px solid #58729b;background:#2b4165;color:#ccdbfa;border-radius:5px;padding:4px 8px;font:10px var(--mono)}.dark-badge.candidate{color:#ffd58f;background:#443923;border-color:#766340}.dark-badge.unknown{color:#ffb8bf;background:#47313c;border-color:#72525c}.dark-note{margin-top:17px;border:1px solid #3a4865;padding:11px;border-radius:8px;font-size:11px;color:#aebed9;background:#1c2b44}.tracks{min-width:610px;position:relative}.track-axis{display:grid;grid-template-columns:126px repeat(6,1fr);align-items:center;height:33px;color:#8fa1c1;font:10px var(--mono);border-bottom:1px solid #354359}.track-axis span{text-align:center}.track-axis span:first-child{text-align:left}.track-title{margin:17px 0 8px;font:10px var(--mono);color:#8da1c6;letter-spacing:.12em}.track-row{display:grid;grid-template-columns:126px minmax(0,1fr);min-height:54px;align-items:center;border-bottom:1px solid #27354b}.track-row label{font:11px var(--mono);color:#cad6e8;white-space:nowrap}.lane{height:39px;position:relative;background:repeating-linear-gradient(to right,transparent,transparent calc(16.666% - 1px),#35435a calc(16.666% - 1px),#35435a 16.666%)}.lane-bar{position:absolute;top:9px;height:21px;border-radius:5px;border:1px solid #a4baf0;background:#5275cc9b;color:#fff;font:10px var(--mono);display:flex;align-items:center;justify-content:center;white-space:nowrap;overflow:hidden;cursor:pointer;padding:0 5px}.lane-bar.active,.lane-bar:hover{outline:2px solid #d7e3ff;outline-offset:2px}.lane-bar.teal{background:#118a80c7;border-color:#66d9cb}.lane-bar.amber{background:#8c6735bb;border-color:#e7b967}.lane-bar.violet{background:#7666c6c4;border-color:#b4a7ee}.lane-bar.unknown{background:#874a57ac;border-color:#e3a3b1;border-style:dashed}.lane-hint{margin:13px 0 0;font-size:11px;color:#8da2c3}.matrix-grid{overflow:auto}.attr-matrix{border-collapse:collapse;width:100%;min-width:560px;color:#d6e2f7;font-size:11px}.attr-matrix th,.attr-matrix td{border:1px solid #34425b;text-align:center;padding:10px 7px}.attr-matrix th{font:10px var(--mono);font-weight:650;color:#a2b4d0;background:#1b2b45}.attr-matrix td:first-child{text-align:left;font:11px var(--mono);color:#d0dcf1;background:#1a293e}.attr-matrix button{height:22px;width:25px;border:0;border-radius:5px;display:inline-grid;place-items:center;font:11px var(--mono)}.attr-matrix button.certain{background:#238f82;color:#fff}.attr-matrix button.candidate{background:#a17d3b;color:#fff}.attr-matrix button.excluded{background:#26364e;color:#8298b9}.attr-matrix button.unknown{background:#823f53;color:#ffc6cf}.attr-matrix tr:hover td{background:#233451}.graph-stage{max-width:100%;overflow:hidden}.graph-stage svg{width:100%;height:auto;display:block}.graph-node{cursor:pointer;transition:opacity .2s}.graph-node:hover rect,.graph-node.selected rect{stroke:#f8fbff!important;stroke-width:2.8!important}.graph-edge{fill:none;stroke-width:2.2;stroke-linecap:round;marker-end:url(#edge-arrow)}.graph-edge.dashed{stroke-dasharray:6 6}.graph-legend{display:flex;gap:13px;flex-wrap:wrap;color:#a7bada;font:10px var(--mono);margin-top:4px}.graph-legend b{height:7px;width:22px;border-radius:4px;display:inline-block;margin-right:6px}
/* RQ3: data integrity analysis */
.integrity-shell{background:#141b29;color:#e8eef9;border:1px solid #26344b;border-radius:15px;overflow:hidden}.integrity-head{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:17px 21px;border-bottom:1px solid #374258}.integrity-head h2{font-size:14px;margin:0}.integrity-head small{font:10px var(--mono);color:#8ca0c0}.integrity-shell .seg{background:#263249;border-color:#334258}.integrity-shell .seg button{color:#a4b2ce}.integrity-shell .seg button.active{background:#425273;color:#fff}.integrity-layout{display:grid;grid-template-columns:minmax(0,1fr) 315px;min-height:435px}.integrity-main{padding:23px;overflow:auto}.integrity-aside{background:#1b273b;border-left:1px solid #374359;padding:22px}.integrity-aside h3{font-size:19px;margin:9px 0}.integrity-aside p{color:#b2bed5;font-size:12px;line-height:1.9}.evidence-scale{display:grid;grid-template-columns:136px repeat(12,minmax(27px,1fr));align-items:center;min-width:600px;color:#8fa1bd;font:10px var(--mono);margin-bottom:12px}.evidence-scale>span{text-align:center}.evidence-scale>span:first-child{text-align:left}.evidence-raster{min-width:600px;display:grid;gap:10px}.evidence-lane{display:grid;grid-template-columns:136px repeat(12,minmax(27px,1fr));gap:4px;align-items:center}.evidence-lane .lane-name{font:11px var(--mono);color:#c8d6ee}.evidence-cell{border:1px solid #33455e;background:#30445d;height:30px;border-radius:4px;cursor:pointer;display:grid;place-items:center;color:transparent}.evidence-cell:hover,.evidence-cell.selected{outline:2px solid #f6fbff;outline-offset:1px}.evidence-cell.seen{background:#269f90;border-color:#4cbaa8}.evidence-cell.loss{background:#a75160;border-color:#d47f8e;color:#fff}.evidence-cell.filtered{background:#6960a8;border-color:#8e87d5}.evidence-cell.uncovered{background:repeating-linear-gradient(130deg,#2e4059,#2e4059 5px,#516077 5px,#516077 10px);border-color:#7185a5}.evidence-cell.recovered{background:#b68a3b;border-color:#e5b968}.evidence-cell.empty{background:#1e293c;border-color:#344052}.evidence-key{display:flex;gap:15px;align-items:center;flex-wrap:wrap;font:10px var(--mono);color:#c1cde0;margin-top:20px}.evidence-key span{display:flex;align-items:center;gap:6px}.swatch{height:9px;width:9px;display:inline-block;border-radius:2px;background:#269f90}.swatch.loss{background:#a75160}.swatch.filtered{background:#6960a8}.swatch.recovered{background:#b68a3b}.swatch.uncovered{background:#7b859a}.integrity-info{margin-top:23px;background:#24334d;border:1px solid #41536d;border-radius:10px;padding:14px}.integrity-info b{font-size:11px;color:#c8dcff}.integrity-info p{color:#9aafcb;font-size:11px;margin:8px 0 0}.confidence-road{margin-top:18px;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.confidence-road span{padding:10px;border-radius:7px;text-align:center;font:10px var(--mono);color:#9aacc8;border:1px solid #3a4a64}.confidence-road span.active{color:#ffdfa5;border-color:#b58346;background:#59462d}.integrity-case{margin-top:16px;display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.integrity-case .panel{box-shadow:none}.integrity-case strong{font-size:15px}.integrity-case p{font-size:11px;color:#78869b}
/* RQ4: performance experiment studio */
.perf-hero{display:grid;grid-template-columns:1fr 1fr 1fr;gap:15px;margin-bottom:16px}.perf-kpi{background:#fff;border:1px solid var(--border);border-radius:13px;padding:17px 19px}.perf-kpi .metric{font:27px var(--mono);font-weight:740;letter-spacing:-.045em;color:#172340;margin-top:6px}.perf-kpi .metric small{font:12px var(--mono);color:#9aa5b7;margin-left:3px}.perf-kpi p{margin:5px 0 0;color:#8190a3;font-size:11px}.perf-overview{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:17px}.chart-holder{min-height:250px;overflow:hidden}.chart-holder svg{width:100%;height:auto;display:block}.perf-rows{display:grid;gap:13px;margin:11px 0}.perf-row{display:grid;grid-template-columns:105px 1fr 63px;align-items:center;gap:12px;font-size:11px}.perf-row label{font-family:var(--mono);color:#53647d}.perf-row .bar-bg{height:12px;background:#edf1f8;border-radius:3px;overflow:hidden}.perf-row .bar-fill{height:100%;background:#8a9ad1;border-radius:3px}.perf-row .bar-fill.active{background:#5a70e6}.perf-row .bar-fill.amber{background:#d59b59}.perf-row span:last-child{text-align:right;font:11px var(--mono)}.perf-bottom{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.6fr);gap:17px;margin-top:16px}.perf-table{width:100%;border-collapse:collapse;font-size:11px}.perf-table th,.perf-table td{border-bottom:1px solid var(--border);padding:11px 8px;text-align:left}.perf-table th{color:#8592a5;font:10px var(--mono);font-weight:600}.perf-table td:last-child{text-align:right;font:11px var(--mono)}.perf-table tr:hover td{background:#f8faff}.perf-selected{background:#f1f4ff}.heatmap{display:grid;grid-template-columns:102px repeat(8,minmax(20px,1fr));gap:5px;align-items:center;font:10px var(--mono)}.heatmap span{font-size:10px;color:#75849a}.heat-cell{height:23px;border-radius:4px;display:grid;place-items:center;font-size:9px;color:#31415d}.heatmap-key{margin-top:14px;font-size:10px;color:#8997a8}
/* RQ5: an investigation, not a dashboard */
.case-switch{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:16px}.case-switch button{display:flex;align-items:center;gap:10px;border:1px solid var(--border);border-radius:11px;padding:12px 17px;background:#fff;color:#5c6d86;text-align:left}.case-switch button:hover{border-color:#bbc6e8}.case-switch button.active{background:#1c2a45;color:#fff;border-color:#1c2a45}.case-switch button b{font:11px var(--mono)}.case-stage{background:#fbfaf7;border:1px solid #e8e4dc;border-radius:15px;overflow:hidden}.case-head{display:flex;justify-content:space-between;align-items:center;padding:22px 25px;border-bottom:1px solid #e5e1d9;gap:16px}.case-head h2{font-size:20px;margin:3px 0 4px}.case-head p{font-size:12px;color:#877d72;margin:0}.case-overline{font:10px var(--mono);letter-spacing:.14em;color:#a17c50}.storyline{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:24px 24px 18px;position:relative}.storyline:before{content:"";position:absolute;top:20px;left:14%;right:14%;height:2px;background:#d6caba}.story-step{border:1px solid #e3dcd1;background:#fff;border-radius:11px;margin:0 7px;padding:15px;min-height:177px;cursor:pointer;position:relative;box-shadow:0 5px 19px #4a41300a}.story-step.active{border-color:#af9264;box-shadow:0 0 0 2px #d9c6a7,0 9px 20px #4a413015}.story-step .story-index{border-radius:50%;width:30px;height:30px;display:grid;place-items:center;color:#fff;background:#aa8a64;font:10px var(--mono);margin-bottom:13px}.story-step .story-time{display:block;color:#9b896f;font:10px var(--mono);margin-bottom:9px}.story-step b{font-size:13px;line-height:1.4;display:block}.story-step p{font-size:11px;color:#93887a;line-height:1.55;max-height:60px;overflow:hidden;margin:7px 0 0}.story-detail{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr);gap:17px;padding:0 24px 25px}.case-graph{background:#fff;border:1px solid #e5ded4;border-radius:11px;overflow:hidden;min-height:258px}.case-graph svg{width:100%;height:auto;display:block}.case-aside{background:#fff;border:1px solid #e5ded4;border-radius:11px;padding:20px}.case-aside h3{margin:7px 0 10px;font-size:16px}.case-aside p{font-size:12px;color:#756d62;line-height:1.9}.case-evidence{font:11px var(--mono);color:#887f72;border-top:1px solid #ece7df;padding-top:9px;overflow-wrap:anywhere}.case-confidence{display:flex;gap:8px;flex-wrap:wrap;margin-top:15px}.case-confidence span{font:10px var(--mono);border:1px solid #e0dacb;padding:5px 9px;border-radius:6px;color:#988972}.case-confidence .observed{border-color:#9acbbb;color:#217c69;background:#e8f6f2}.case-confidence .derived{border-color:#e5c68f;color:#9d742f;background:#fff7e7}.case-confidence .hypo{border-style:dashed}
/* research/library page */
.research-quote{background:#151f35;border-radius:13px;padding:24px;color:#f2f6ff;font-size:18px;font-weight:670;line-height:1.7;letter-spacing:-.02em}.research-quote small{display:block;margin-top:13px;font:10px var(--mono);color:#96a9cb}.source-list{display:grid;gap:0}.source-row{display:grid;grid-template-columns:140px 1fr 90px;align-items:center;gap:14px;padding:15px 0;border-bottom:1px solid var(--border)}.source-row:last-child{border:0}.source-row b{font-size:12px}.source-row p{margin:0;color:#7d8ba0;font-size:11px}.source-row a{font-size:11px;color:#4b65d2;text-align:right}.source-row a:hover{text-decoration:underline}.doc-banner{padding:20px;border:1px solid #d4dcfa;background:linear-gradient(120deg,#f5f7ff,#e8efff);border-radius:12px;display:flex;align-items:center;justify-content:space-between;gap:16px}.doc-banner h3{font-size:15px;margin:0 0 7px}.doc-banner p{font-size:11px;color:#7080a1;margin:0}.doc-banner a{padding:10px 14px;background:#405bd8;color:#fff;border-radius:8px;font-size:11px;font-weight:680;white-space:nowrap}
/* responsive */
@media(max-width:1320px){.two-columns,.perf-overview,.perf-bottom{grid-template-columns:1fr}.stage-layout{grid-template-columns:minmax(0,1fr) 260px}.integrity-layout{grid-template-columns:minmax(0,1fr) 270px}.story-step{padding:12px}.view{padding-left:30px;padding-right:30px}}
@media(max-width:1050px){.sidebar{width:218px;flex-basis:218px}.topbar{padding:0 24px}.view{padding-left:24px;padding-right:24px}.overview-hero{grid-template-columns:1fr}.hero-art{min-height:180px;max-height:220px}.overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.rq-tile,.rq-tile:nth-child(4),.rq-tile:nth-child(5){grid-column:span 1}.stage-layout,.integrity-layout{grid-template-columns:1fr}.stage-aside,.integrity-aside{border-left:0;border-top:1px solid #364459}.storyline{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.storyline:before{display:none}.story-detail{grid-template-columns:1fr}.shortnote{display:none}}
@media(max-width:740px){.sidebar{position:fixed;transform:translateX(-103%);transition:transform .18s;width:246px;max-width:86vw}.sidebar.open{transform:translateX(0)}.mobile-shade{position:fixed;inset:0;background:#0d1424a1;z-index:30}.mobile-only{display:inline-flex}.topbar{height:61px;flex-basis:61px;padding:0 15px}.breadcrumb-label,.breadcrumb-slash{display:none}.topbar-right{gap:8px}.top-doc-link{font-size:11px}.demo-pill{font-size:8px;padding:6px}.view{padding:0 15px 32px}.page-header{padding:29px 0 21px}.page-header h1{font-size:29px}.page-header p{font-size:12px}.overview-hero{margin-top:18px;padding:23px;gap:17px}.overview-hero h1{font-size:34px}.overview-hero p{font-size:12px}.hero-art{display:none}.section-inline-heading{padding-top:24px}.overview-grid,.overview-bottom,.diff-bottom,.three-columns,.perf-hero,.perf-overview,.perf-bottom,.integrity-case{grid-template-columns:1fr}.rq-tile{min-height:193px}.diff-shell{grid-template-columns:1fr}.diff-pane+.diff-pane{border-left:0;border-top:1px solid var(--border)}.diff-pane-head{padding:10px 13px}.tree-list{padding:10px}.panel-head{padding:14px}.panel-body{padding:15px}.stage-main{padding:13px}.stage-aside,.integrity-aside{padding:18px}.integrity-main{padding:15px}.integrity-head,.attribution-head{flex-wrap:wrap}.storyline{margin:15px;grid-template-columns:1fr}.story-step{min-height:0}.story-detail{padding:0 14px 17px}.case-head{padding:18px}.source-row{grid-template-columns:1fr}.source-row a{text-align:left}.doc-banner{display:block}.doc-banner a{display:inline-block;margin-top:14px}.footer{padding:14px 15px 22px;flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
