:root{--rail-width:338px;--drawer-width:458px;--radius-panel:18px;--space-page:32px;--motion-fast:160ms;--scroll-thumb:var(--line2);--scroll-track:transparent}
*{scrollbar-color:var(--scroll-thumb) var(--scroll-track);scrollbar-width:thin}
*::-webkit-scrollbar{width:8px;height:8px}
*::-webkit-scrollbar-thumb{background:var(--scroll-thumb);border-radius:8px;border:2px solid transparent;background-clip:padding-box}
*::-webkit-scrollbar-track{background:var(--scroll-track)}
button,a,input,select{ -webkit-tap-highlight-color:transparent }
a{color:var(--focus)}
button{touch-action:manipulation}
[hidden]{display:none!important} /* Native hidden must win over legacy display declarations. */
.skip-link{position:fixed;top:8px;left:12px;z-index:100;transform:translateY(-160%);padding:10px;background:var(--panel-solid);border:1px solid var(--focus);border-radius:10px}
.skip-link:focus{transform:none}
#top{padding:18px 24px 0;gap:24px;background:linear-gradient(var(--bg) 0%,color-mix(in srgb,var(--bg) 96%,transparent) 85%,transparent);border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}
.brand{align-items:center;text-decoration:none;color:var(--ink);gap:10px}
.brand b{font-size:23px;letter-spacing:-.035em}
.radar-mark{position:relative;display:block;width:25px;height:25px;border:1px solid var(--accent);border-radius:50%;background:conic-gradient(from -60deg,transparent 0 80%,color-mix(in srgb,var(--accent) 28%,transparent) 100%)}
.radar-mark:after{content:'';position:absolute;inset:5px;border:1px solid color-mix(in srgb,var(--accent) 55%,transparent);border-radius:50%}
.radar-mark i{position:absolute;left:14px;top:6px;width:4px;height:4px;background:var(--accent);border-radius:50%;box-shadow:0 0 8px var(--accent)}
#primary-nav{display:flex;gap:4px;align-items:center}
#primary-nav button{background:transparent;border:0;color:var(--ink2);font-size:13px;font-weight:500;padding:9px 12px;border-radius:9px;white-space:nowrap}
#primary-nav button:hover{background:var(--card);color:var(--ink)}
#primary-nav button[aria-current=page]{color:var(--ink);background:var(--card)}
.search{max-width:350px;min-width:160px}
.search input{border-radius:11px;background:var(--card);height:39px;padding-right:36px;font-size:13px}
.search input::-webkit-search-cancel-button{display:none}
#clear-search{position:absolute;right:6px;top:5px;width:29px;height:29px;border:0;background:transparent;color:var(--ink2);border-radius:7px;font-size:21px}
#clear-search:hover{color:var(--ink);background:var(--card)}
.tools{gap:7px}
.tools .btn{min-height:36px;border-radius:10px;background:transparent}
.explore-heading{display:flex;align-items:center;width:100%;gap:18px;padding:12px 0 16px}
.explore-label{font:500 10px var(--f-mono);letter-spacing:.12em;color:var(--ink3);white-space:nowrap}
#lenses{background:var(--card);border-color:var(--line);border-radius:11px;padding:3px;gap:2px;flex:none;max-width:100%}
#lenses button{border-radius:8px;font-size:12px;padding:8px 11px}
#lenses button[aria-selected=true]{background:var(--ink);color:var(--bg)}
.snapshot-label{margin-left:auto;color:var(--ink3);font:10px var(--f-mono);white-space:nowrap;display:flex;align-items:center;gap:9px}
.snapshot-label i{width:3px;height:3px;border-radius:50%;background:var(--accent)}
#rail{left:18px;top:calc(var(--tbh) + 18px);bottom:18px;width:var(--rail-width);border-radius:var(--radius-panel);background:color-mix(in srgb,var(--panel-solid) 92%,transparent);box-shadow:0 16px 36px rgba(0,0,0,.12)}
#rail.closed{transform:translateX(calc(-1 * var(--rail-width) - 40px))}
#drawer{right:18px;top:calc(var(--tbh) + 18px);bottom:18px;width:var(--drawer-width);border-radius:var(--radius-panel);background:var(--panel-solid);box-shadow:0 16px 50px rgba(0,0,0,.22)}
#drawer.closed{transform:translateX(calc(var(--drawer-width) + 40px))}
#tabs{padding:5px 10px 0;min-height:44px}
#tabs button{font-size:10px;letter-spacing:.08em;min-height:37px}
.pane{padding:22px 20px 24px;overflow-anchor:none}
.thesis-head h1,.lens-head h1{font-size:31px;line-height:1.1;letter-spacing:-.035em;margin:12px 0 8px}
.thesis-head p,.lens-head p{font-size:13px;line-height:1.55;color:var(--ink2);margin:0 0 18px}
.eyebrow{font-size:9px;letter-spacing:.14em;line-height:1.5}
.radar-stats{padding:15px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:0 0 20px;gap:12px}
.radar-stats b{font-size:26px;letter-spacing:-.04em}
.radar-stats span{font-size:10px;margin-top:4px}
.sector-row{padding:10px 0}
.sector-row-label{font-size:13px;gap:9px}
.sector-row-label b{font:11px var(--f-mono);color:var(--ink2)}
.sector-meter{height:2px;margin:7px 0 0 17px}
.sector-meter i{opacity:.55}
.sector-color{width:7px;height:7px}
.sector-row:hover .sector-meter i{opacity:1}
.sector-row:hover .sector-row-label{color:var(--ink)}
.tree-heading h3,.pane h3{font-size:10px;letter-spacing:.11em}
.tree-heading{margin-top:22px;margin-bottom:7px}
.grade-tag{width:25px;height:25px;display:inline-flex;align-items:center;justify-content:center;border-radius:7px;font:500 12px var(--f-mono);border:1px solid currentColor;flex:none}
.grade-tag.A{color:var(--gA);background:color-mix(in srgb,var(--gA) 7%,transparent)}
.grade-tag.B{color:var(--gB);background:color-mix(in srgb,var(--gB) 7%,transparent)}
.grade-tag.C{color:var(--gC);background:color-mix(in srgb,var(--gC) 7%,transparent)}
.item{padding:9px 6px;gap:10px}
.item b{font-size:13px;font-weight:500}
.item small,.company-vertical{display:block;white-space:normal;font-size:10.5px;color:var(--ink3);line-height:1.4;margin-top:3px}
.company-vertical{color:var(--ink2)}
.view-companies{margin-top:14px;width:100%;justify-content:space-between;border-radius:10px;font-size:12px;min-height:38px}
.radar-key{display:flex;gap:12px;color:var(--ink2);font-size:10px;align-items:center;flex-wrap:wrap}
.radar-key span{display:inline-flex;gap:5px;align-items:center}
.swatchrow span{align-items:flex-start}
.swatchrow span b{white-space:normal;overflow:visible;font-size:10.5px;line-height:1.35}
.swatchrow span .dot{margin-top:3px}
.seg{border-radius:10px;min-height:35px}
.seg button{border-radius:7px;padding:6px 7px;font-size:11px}
.chip{padding:6px 9px;min-height:31px}
.about summary{padding:6px 0}
#caption{bottom:25px;pointer-events:none;max-width:590px;padding:12px 18px;border-radius:12px;background:var(--panel);border:1px solid var(--line)}
.radar-caption-main{display:flex;align-items:center;justify-content:space-between;gap:24px;white-space:nowrap;margin-bottom:7px;font-size:11px}
.radar-caption-main b{font:500 11px var(--f-mono);color:var(--ink)}
.radar-caption-main span{font-size:10px;color:var(--ink3)}
#caption .radar-key{justify-content:space-between;gap:16px}
#zoom{bottom:24px;border-radius:12px;padding:4px;background:var(--panel-solid);border:1px solid var(--line)}
#zoom .btn{border:0;border-radius:7px;background:transparent;min-height:33px}
#zoom .btn:hover{background:var(--card)}
#focusbar{top:calc(var(--tbh) + 22px);z-index:14}
#tip{max-width:320px;border-radius:11px;line-height:1.6}
.content-surface{position:absolute;inset:var(--tbh) 0 0;overflow:auto;overscroll-behavior:contain;background:var(--bg);z-index:12;scrollbar-gutter:stable}
body[data-surface=companies] #cv,body[data-surface=about] #cv,body:not([data-surface=explore]) #rail,body:not([data-surface=explore]) #caption,body:not([data-surface=explore]) #zoom,body:not([data-surface=explore]) #focusbar,body:not([data-surface=explore]) .explore-heading{display:none}
body:not([data-surface=explore]) #top{padding-bottom:18px;background:var(--bg)}
body:not([data-surface=explore]) #top>.search{display:none}
body:not([data-surface=explore]) .tools{margin-left:auto}
body .rp-page{padding-top:32px}
body .rp-page-head{margin-bottom:24px}
body .rp-directory-filters{padding-bottom:20px}
body .rp-results-bar{padding:16px 0}
#load-error{position:absolute;inset:0;z-index:70;background:var(--bg);padding:clamp(24px,10vw,140px)}
#intro{transition:opacity .35s,visibility .35s}
#intro .conf{letter-spacing:.16em;font-size:9px}
.intro-radar{width:88px;height:88px;border-radius:50%;border:1px solid var(--line2);position:relative;background:repeating-radial-gradient(circle,transparent 0 13px,var(--line) 14px 15px),conic-gradient(from 40deg,transparent 0 80%,color-mix(in srgb,var(--accent) 20%,transparent) 100%)}
.intro-radar:after{content:'';width:5px;height:5px;border-radius:50%;background:var(--accent);position:absolute;left:49px;top:24px;box-shadow:0 0 20px var(--accent)}
@media(min-width:901px) and (max-width:1430px){.snapshot-label{display:none}.explore-label{font-size:9px}#top{gap:16px}#lenses{order:initial;flex:initial;justify-content:initial}}
@media(max-width:1160px) and (min-width:901px){.explore-label{display:none}#top{gap:12px;padding:14px 18px 0}.brand b{font-size:21px}#primary-nav button{padding:8px;font-size:12px}.search{flex-basis:180px}.tools{gap:4px}.tools .btn{padding:6px 9px}.explore-heading{justify-content:center}}
@media(max-width:900px){:root{--rail-width:100%;--drawer-width:100%}#top{padding:12px 14px 0;gap:10px}.brand b{font-size:21px}.radar-mark{width:23px;height:23px}.tools{margin-left:auto;gap:5px}.tools .btn{min-height:35px;padding:6px 8px}.tools #btnTour{display:none}#primary-nav{order:2;flex:1 1 100%;gap:4px}#primary-nav button{flex:1;text-align:center;font-size:12px;min-height:37px}.search{order:3;flex:1 1 100%;margin:0;max-width:none}.explore-heading{order:4;margin:0;padding:3px 0 12px;gap:0}.explore-label,.snapshot-label{display:none}#lenses{order:initial;flex:1;justify-content:flex-start;border-radius:10px;scrollbar-width:thin}#lenses button{padding:10px 12px;font-size:12px}.search input{height:37px}#rail{top:auto;left:0;bottom:0;right:0;width:100%;height:53dvh;border-radius:18px 18px 0 0;background:var(--panel-solid);z-index:25}#rail.closed{transform:translateY(105%)}#drawer{top:auto;left:0;right:0;bottom:0;width:100%;height:72dvh;z-index:30;border-radius:18px 18px 0 0}#drawer.closed{transform:translateY(105%)}.pane{padding:20px 20px 28px}#zoom{top:calc(var(--tbh) + 12px);bottom:auto;right:12px;padding:3px;gap:0}#zoom .btn{width:44px;min-height:37px;font-size:12px}#focusbar{top:calc(var(--tbh) + 12px);left:12px;transform:none;right:66px;width:auto;max-width:none;gap:6px;flex-wrap:wrap}#focusbar b{font-size:13px}#focusbar .fine{display:none}#caption{display:none}body:not([data-surface=explore]) #top{padding-bottom:12px}body:not([data-surface=explore]) .search{display:none}#toast{bottom:calc(53dvh + 10px)}}
@media(max-width:360px){.brand b{font-size:19px}#primary-nav button{padding:8px 5px;font-size:11px}.tools .btn{width:34px;padding:5px}#top{padding-left:10px;padding-right:10px}}
@media(max-width:900px){
  body #zoom,body.rail-closed #zoom{left:auto;right:12px;top:calc(var(--tbh) + 12px);bottom:auto;transform:none;width:max-content;height:max-content;flex-direction:row;align-items:center}
  body #rail{max-height:none}
  body #zoom #btnRail{border-top:0;border-left:1px solid var(--line);margin-left:3px;padding-left:0;border-radius:0 7px 7px 0;min-width:58px;width:auto}
  body #focusbar{top:calc(var(--tbh) + 66px);right:12px}
  body[data-surface=explore].rail-closed #caption{display:block;left:12px;right:12px;bottom:12px;width:auto;min-width:0;max-width:none;transform:none;padding:10px 12px;border-radius:11px;background:var(--panel-solid)}
  body[data-surface=explore] #caption .view-caption-main{display:none}
  body[data-surface=explore] #caption .view-caption-count{border:0;margin:0;padding:0;display:block;text-align:center}
  #caption .radar-caption-main{gap:4px 10px;margin-bottom:0;white-space:normal;line-height:1.4;flex-wrap:wrap;justify-content:center}
  #caption .radar-caption-main>span{font-size:11px!important;white-space:normal;color:var(--ink2);flex-basis:100%;max-width:100%}
  #caption .radar-key{display:none}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important} /* Honor the user's reduced-motion setting across inherited animations. */}
@media(forced-colors:active){*{scrollbar-color:auto}button,a,input,select{forced-color-adjust:auto}.grade-tag,.radar-mark{border-color:CanvasText}}
@media print{body{overflow:visible}#app{position:static}.content-surface{position:static;overflow:visible}#top,#rail,#drawer,#zoom,#caption,#tip,#tour,#cv,.skip-link{display:none}.content-surface:not([hidden]){display:block}body{background:#fff;color:#17212e}}

#lenses::-webkit-scrollbar{display:block;height:3px}#lenses::-webkit-scrollbar-thumb{border:0;background:var(--line2)}
