.research{padding:2rem 0 4rem;min-width:0}
.research-nav{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;border-bottom:var(--hair) solid var(--wire);padding-bottom:1rem;margin-bottom:2.5rem;font-size:.9rem;color:var(--soft)}
.research-nav a[aria-current="page"]{color:var(--ink);text-decoration-thickness:2px}
.research h1{font-size:clamp(3rem,8vw,6.5rem);font-weight:300;font-stretch:74%;line-height:.94;letter-spacing:-.028em;margin:1.25rem 0}
.research h2{font-size:clamp(1.5rem,3vw,2.25rem);font-weight:400;font-stretch:88%;line-height:1.15;margin:2rem 0 1rem}
.research .intro{max-width:44rem;color:var(--soft);margin-bottom:2rem}
.research .notice{border-left:3px solid var(--signal);padding:.75rem 1rem;background:var(--signal-wash);margin:1.5rem 0;overflow-wrap:anywhere}
.research .notice p{margin:.25rem 0}
.research [hidden]{display:none}
.filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:1.5rem 0}
.range-brush{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;padding:1rem;border:var(--hair) solid var(--wire);margin:1rem 0 2rem;min-width:0}
.range-brush legend{font:500 .875rem var(--mono);padding:0 .4rem}
.range-brush label{min-width:0}
.range-brush input[type="range"]{padding:0;accent-color:var(--signal);min-height:2rem}
.range-brush output{font:400 .8125rem var(--mono);color:var(--soft)}
.two-charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem}
.two-charts>div{min-width:0}
.sort-label,.breakdown-label{max-width:18rem;margin:1rem 0}
.research-foot{border-top:var(--hair) solid var(--wire);padding:1.5rem 0 3rem;color:var(--soft);font-size:.875rem}
.chart .scroll-plot{overflow-x:auto;overscroll-behavior-inline:contain}
.chart .scroll-plot svg{min-width:600px}
.chart .scroll-plot.heatmap svg{min-width:840px}
.research .scroll{max-width:100%}
.research .tbl td,.research .tbl th{font-family:var(--mono);font-size:.8125rem}
.method-contents{display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;border-block:var(--hair) solid var(--wire);padding:1rem 0;margin:2rem 0}
.method-copy{max-width:48rem;line-height:1.7}
.method-copy section{border-bottom:var(--hair) solid var(--wire);padding-bottom:1.5rem}
.method-copy h3{font-size:1.25rem;font-weight:500;margin:1.5rem 0 .75rem}
.method-copy p{margin:.75rem 0}
.method-copy dt{font-weight:600;margin-top:1.25rem}
.method-copy dd{margin:.25rem 0 1rem;color:var(--soft)}
.method-copy li{margin:.75rem 0}
.method-copy [id]{scroll-margin-top:6rem}
.research .stat-strip{margin:1.5rem 0;grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:760px){.filters,.research .stat-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.two-charts,.range-brush{grid-template-columns:1fr}}
.session-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.session-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:.5rem}
.session-actions button{font-size:.875rem}
.replay-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(17rem,1fr);gap:1.5rem}
.replay-layout>div,.replay-layout aside{min-width:0}
.replay-layout aside h2{margin-top:1rem}
.replay-layout .scrubber{border:var(--hair) solid var(--wire)}
.decision-log{padding-left:1.5rem;font-size:.95rem}
.decision-log li{margin:.75rem 0;padding-left:.25rem}
.decision-log time{font:400 .8125rem var(--mono);color:var(--soft)}
.decision-log p{margin:.25rem 0}
.score-card .fig-plot svg{max-width:240px;margin:auto}
.session-calendar{display:grid;grid-template-columns:repeat(auto-fit,minmax(17rem,1fr));gap:1rem}
.day-calendar{min-width:0;margin:0;border:var(--hair) solid var(--wire);padding:.75rem}
.day-calendar legend{font:500 .875rem var(--mono);padding:0 .5rem}
.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.25rem;text-align:center;font:400 .8125rem var(--mono)}
.calendar-grid>span{padding:.5rem 0}
.calendar-day{font:500 .8125rem var(--mono);border-radius:0;background:transparent;color:var(--ink);padding:.35rem .1rem;min-width:0;border-color:var(--wire)}
.calendar-day span,.calendar-day small{display:block;overflow-wrap:anywhere}
.calendar-day small{font-size:.8125rem}
.calendar-day.positive{border-color:var(--bull);background:var(--bull-wash)}
.calendar-day.negative{border-color:var(--bear);background:var(--bear-wash)}
.calendar-day[aria-pressed="true"]{outline:2px solid var(--focus);outline-offset:1px}
.calendar-missing{color:var(--faint)}
@media(max-width:900px){.replay-layout{grid-template-columns:1fr}.session-calendar{grid-template-columns:1fr}}
.strategy-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem}
.strategy-card{border-top:var(--hair) solid var(--wire);padding:1.25rem 0;min-width:0}
.strategy-card h2{margin:.75rem 0}
.strategy-card p{color:var(--soft)}
.strategy-sessions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.session-card{min-width:0}
.session-card h3{font-size:1rem;font-weight:500}
@media(max-width:900px){.strategy-cards,.strategy-sessions{grid-template-columns:1fr}}
.engine-layout{display:grid;grid-template-columns:minmax(0,3fr) minmax(16rem,1fr);gap:1.5rem;align-items:start}
.engine-layout>div,.engine-panel{min-width:0}
.engine-panel{position:sticky;top:5rem;border-top:var(--hair) solid var(--wire);padding:1rem 0}
.engine-panel h2{margin:0 0 1rem}
.engine-panel .kv{grid-template-columns:1fr;gap:.25rem}
.engine-panel .kv dd{margin:0 0 .75rem}
.chart .schematic-plot svg{min-width:900px}
.schematic-edge,.schematic-box{stroke:var(--wire);fill:none;stroke-width:var(--hair);vector-effect:non-scaling-stroke}
.schematic-box{fill:var(--bg)}
.schematic-edge.active,.schematic-node.active .schematic-box{stroke:var(--signal)}
.schematic-node{cursor:pointer}
.schematic-node:focus-visible{outline:2px solid var(--focus);outline-offset:6px}
.schematic-label{font:500 14px var(--mono);fill:var(--ink)}
.engine-outline{border-top:var(--hair) solid var(--wire);padding:1rem 0;margin-top:1.5rem}
.engine-outline summary{cursor:pointer;font-weight:600}
.engine-outline ol{padding-left:1.5rem}
.engine-outline li{padding:.5rem 0 1rem;border-bottom:var(--hair) solid var(--wire-faint)}
.engine-outline h3{font-size:1.1rem;margin:.5rem 0}
@media(max-width:900px){.engine-layout{grid-template-columns:1fr}.engine-panel{position:static}}
