/* Scoped research explorer. Load after the portfolio styles. */
#research.research-explorer{--rx-topic-ink:#63504f;--rx-topic-accent:#a5797a;--rx-topic-wash:#f6ece9;--rx-topic-light:#faf4ef;--rx-topic-line:#dfceca;--rx-ink:#29372f;--rx-muted:#59645d;--rx-line:#d7dcd1;background:#f4f4ec;color:var(--rx-ink);width:100%;margin:0;padding:clamp(64px,7vw,104px) 0;scroll-margin-top:32px;font-family:var(--sans,"Manrope",sans-serif)}
.research-explorer .rx-wrap{width:min(1280px,calc(100% - 128px));margin-inline:auto}
.research-explorer .rx-heading{display:flex;align-items:baseline;justify-content:space-between;gap:24px;margin-bottom:42px}
.research-explorer .rx-heading h2{font:400 clamp(44px,5vw,68px)/1.08 var(--serif,"Cormorant Garamond",Georgia,serif);letter-spacing:-.025em;margin:0}
.research-explorer .rx-heading h2 em{color:var(--rx-topic-ink);font-weight:400}
.research-explorer .rx-heading>p{color:var(--rx-muted);font-size:14px;margin:0}
.research-explorer .rx-layout{display:grid;grid-template-columns:minmax(240px,.75fr) minmax(0,1.4fr);gap:clamp(28px,5vw,80px);border-top:1px solid var(--rx-line);padding-top:30px;align-items:stretch}
.research-explorer .rx-label{font-size:11px;line-height:1.6;letter-spacing:.15em;text-transform:uppercase;color:var(--rx-muted);margin:0 0 16px}
.research-explorer .rx-tabs{display:flex;flex-direction:column;gap:4px}
.research-explorer .rx-tab{appearance:none;display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;min-height:44px;padding:10px 14px;border:1px solid transparent;border-radius:3px;background:transparent;text-align:left;font:400 18px/1.5 var(--sans,"Manrope",sans-serif);color:var(--rx-muted);cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.research-explorer .rx-tab:hover{background:var(--rx-topic-light);color:var(--rx-ink)}
.research-explorer .rx-tab[aria-selected=true]{background:var(--rx-topic-wash);border-color:var(--rx-topic-line);color:var(--rx-topic-ink)}
.research-explorer .rx-tab-mark{flex:none;font-size:19px;opacity:0;transform:translate(-3px,3px);transition:opacity .2s,transform .2s}
.research-explorer .rx-tab[aria-selected=true] .rx-tab-mark{opacity:1;transform:none}
.research-explorer .rx-tab:focus-visible,.research-explorer .rx-panel:focus-visible{outline:2px solid var(--rx-topic-ink);outline-offset:4px}
.research-explorer .rx-panels{min-width:0;display:grid;background:linear-gradient(140deg,var(--rx-topic-light),var(--rx-topic-wash));border:1px solid var(--rx-topic-line);border-radius:3px;position:relative}
.research-explorer .rx-panel{min-width:0;display:flex;flex-direction:column;justify-content:space-between;padding:clamp(24px,3vw,42px);position:relative}
.research-explorer .rx-panel[hidden]{display:none!important}
.research-explorer .rx-art{width:100%;height:clamp(160px,23vw,290px);margin:0 auto 24px;color:var(--rx-topic-accent)}
.research-explorer .rx-art svg{display:block;width:100%;height:100%;overflow:visible}
.research-explorer .rx-art .rx-thread{fill:none;stroke:currentColor;stroke-width:1.45;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.research-explorer .rx-art .rx-faint{opacity:.30}
.research-explorer .rx-art .rx-node{fill:currentColor;stroke:var(--rx-topic-light);stroke-width:2}
.research-explorer .rx-panel:not([hidden]) .rx-thread{stroke-dasharray:none;stroke-dashoffset:0}
.research-explorer .rx-panel:not([hidden]) .rx-node{transform-box:fill-box;transform-origin:center;animation:rx-emerge 1.6s ease both}
.research-explorer .rx-copy{border-top:1px solid var(--rx-topic-line);padding-top:24px}
.research-explorer .rx-copy .rx-label{margin-bottom:12px}
.research-explorer .rx-copy h3{font:400 clamp(34px,3.6vw,54px)/1.06 var(--serif,"Cormorant Garamond",Georgia,serif);letter-spacing:-.025em;margin:0 0 16px;overflow-wrap:break-word;color:var(--rx-topic-ink)}
.research-explorer .rx-description{max-width:39ch;font-size:19px;line-height:1.7;color:var(--rx-muted);margin:0}
@keyframes rx-trace{to{stroke-dashoffset:0}}
@keyframes rx-emerge{from{opacity:0;transform:scale(.3)}to{opacity:1;transform:scale(1)}}
@media(min-width:761px){.research-explorer .rx-panels{min-height:560px}}
@media(max-width:1100px){.research-explorer .rx-wrap{width:calc(100% - 80px)}}
@media(max-width:760px){.research-explorer .rx-wrap{width:calc(100% - 40px)}.research-explorer .rx-heading{display:block;margin-bottom:28px}.research-explorer .rx-heading>p{margin-top:16px}.research-explorer .rx-layout{grid-template-columns:minmax(0,1fr);gap:26px;padding-top:24px}.research-explorer .rx-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.research-explorer .rx-tab{font-size:16px;padding:12px 10px;gap:6px;min-height:56px}.research-explorer .rx-tab span:first-child{min-width:0;overflow-wrap:break-word}.research-explorer .rx-tab-mark{font-size:16px}.research-explorer .rx-art{height:190px;margin-bottom:20px}.research-explorer .rx-panel{padding:24px}.research-explorer .rx-copy h3{font-size:38px}.research-explorer .rx-description{font-size:18px}}
@media(prefers-reduced-motion:reduce){.research-explorer .rx-tab,.research-explorer .rx-tab-mark{transition:none}.research-explorer .rx-panel:not([hidden]) .rx-thread,.research-explorer .rx-panel:not([hidden]) .rx-node{animation:none;stroke-dashoffset:0}}
@media(forced-colors:active){.research-explorer .rx-tab[aria-selected=true]{border:2px solid Highlight}.research-explorer .rx-art{color:CanvasText}.research-explorer .rx-art .rx-node{fill:CanvasText}}

.research-explorer .rx-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.research-explorer .rx-panel:not([hidden]) .rx-art svg{animation:rx-breathe 9s ease-in-out infinite;transform-origin:50% 50%}
@keyframes rx-breathe{0%,100%{transform:translateY(2px) rotate(-1.5deg)}50%{transform:translateY(-7px) rotate(1.5deg)}}
@media(prefers-reduced-motion:reduce){.research-explorer .rx-panel:not([hidden]) .rx-art svg{animation:none}}

.research-explorer .rx-traveler{fill:currentColor;filter:drop-shadow(0 0 3px var(--rx-topic-accent))}
@media(max-width:760px){
 .research-explorer .rx-tabs{display:flex;flex-direction:row;overflow-x:auto;padding:4px 4px 12px;margin:-4px -4px -12px;gap:8px;scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:var(--rx-topic-line) transparent;overscroll-behavior-x:contain}
 .research-explorer .rx-tab{flex:0 0 auto;width:auto;max-width:none;min-height:48px;white-space:nowrap;font-size:16px;padding:10px 15px;scroll-snap-align:center}
 .research-explorer .rx-tab-mark{display:none}
 .research-explorer .rx-layout{gap:24px}
}
@media(prefers-reduced-motion:reduce){.research-explorer .rx-traveler{display:none}}

/* One continuous drawing between topics, including interrupted selections. */
.research-explorer .rx-morph-thread{fill:none;stroke:currentColor;stroke-width:1.45;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.research-explorer .rx-panel[data-morphing=true] .rx-thread,
.research-explorer .rx-panel[data-morphing=true] .rx-node,
.research-explorer .rx-panel[data-morphing=true] .rx-traveler{visibility:hidden}
.research-explorer .rx-panel[data-morphing=true] .rx-art svg{animation-play-state:paused}
.research-explorer .rx-panel:not([hidden]) .rx-copy{animation:rx-copy-in .55s cubic-bezier(.22,1,.36,1) both}
@keyframes rx-copy-in{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:760px){
 .research-explorer .rx-panels{min-height:484px}
 .research-explorer .rx-art{height:180px}
 .research-explorer .rx-copy h3{font-size:clamp(32px,8.4vw,38px)}
 .research-explorer .rx-description{line-height:1.6}
}
@media(prefers-reduced-motion:reduce){.research-explorer .rx-panel:not([hidden]) .rx-copy{animation:none}}
