@import url("/vendor/uplot/uPlot.min.css");

:root { --paper:#f4f0e7; --ink:#18211f; --muted:#6b7168; --line:#c9c2b3; --green:#2d6657; --rust:#b96645; --gold:#c49d42; --blue:#4e7187; --mist:#e5dfd2; --serif:"Songti SC", STSong, "Noto Serif CJK SC", serif; --sans:"PingFang SC", "Hiragino Sans GB", sans-serif; }
* { box-sizing:border-box; }
body { margin:0; color:var(--ink); font-family:var(--sans); background:radial-gradient(circle at 80% 0%, #faf8f0 0, transparent 35rem), var(--paper); }
body::before { content:""; position:fixed; inset:0; opacity:.12; pointer-events:none; background-image:repeating-linear-gradient(0deg, transparent 0 3px, #8b806c 3px 4px); mix-blend-mode:multiply; }
button,select { font:inherit; color:inherit; } button { cursor:pointer; } button:focus-visible,select:focus-visible,a:focus-visible { outline:2px solid var(--rust); outline-offset:3px; }
.shell { position:relative; width:100%; max-width:1920px; margin:auto; padding:0 clamp(28px,5vw,96px) 72px; }
.masthead { display:grid; grid-template-columns:1fr auto; gap:10px clamp(28px,4vw,72px); position:sticky; top:0; z-index:5; padding:32px 0 18px; background:linear-gradient(var(--paper) 76%, rgba(244,240,231,0)); }
.eyebrow,.panel-heading span { font-size:10px; letter-spacing:.15em; font-weight:700; color:var(--green); }
h1,h2,p { margin:0; } h1 { margin-top:3px; font:clamp(30px,4vw,48px)/1.05 var(--serif); letter-spacing:-.06em; } h2 { font:24px var(--serif); }
.controls { align-self:center; display:flex; align-items:center; gap:10px; }.year-picker { border-bottom:1px solid var(--ink); padding:6px 0; font-size:13px; }.year-picker select,.ranking-header select { border:0; background:transparent; font-weight:700; outline:0; }.refresh { border:1px solid var(--ink); padding:8px 12px; background:var(--ink); color:var(--paper); font-size:12px; transition:transform .2s ease, background .2s ease; }.refresh:hover { transform:translateY(-2px); background:var(--green); }.refresh:disabled { opacity:.5; cursor:wait; transform:none; }.sync-line { grid-column:1/-1; font-size:11px; color:var(--muted); }
.tabs { display:flex; gap:28px; border-bottom:1px solid var(--line); overflow:auto; }.tabs a { flex:0 0 auto; padding:15px 1px 11px; color:var(--muted); text-decoration:none; font:17px var(--serif); border-bottom:2px solid transparent; }.tabs a[aria-selected="true"] { color:var(--ink); border-color:var(--rust); }
.panel { padding-top:34px; }.panel-heading { display:flex; justify-content:space-between; align-items:baseline; gap:24px; border-bottom:1px solid var(--line); padding-bottom:11px; }.panel-heading p { color:var(--muted); font-size:12px; text-align:right; }
.metrics { display:grid; grid-template-columns:repeat(4,1fr); margin:22px 0 34px; border-top:1px solid var(--ink); border-bottom:1px solid var(--ink); }.metric { min-height:126px; padding:16px 14px; border-left:1px solid var(--line); display:flex; flex-direction:column; justify-content:space-between; }.metric:first-child { border-left:0; }.metric span { font-size:11px; color:var(--muted); }.metric strong { font:clamp(26px,3vw,40px) var(--serif); letter-spacing:-.05em; }.metric small { font-size:11px; color:var(--green); }
.overview-grid,.pulse-grid { display:grid; grid-template-columns:1.08fr .92fr; gap:28px; }.paper-figure { margin:0; border:1px solid var(--line); padding:20px; background:rgba(255,255,255,.17); }.paper-figure figcaption { display:flex; justify-content:space-between; gap:16px; font-size:12px; color:var(--muted); margin-bottom:24px; }.paper-figure figcaption span { color:var(--ink); font-weight:700; }.month-ribbon,.media-share { min-height:300px; }.ribbon { display:grid; grid-template-columns:repeat(var(--months),1fr); gap:6px; height:172px; align-items:end; }.ribbon button { position:relative; height:var(--height); min-height:4px; border:0; background:var(--green); padding:0; }.ribbon button:hover,.ribbon button.active { background:var(--rust); }.ribbon button.empty { min-height:0; background:transparent; cursor:default; }.ribbon button.empty::after { content:""; position:absolute; inset:auto 0 0; height:1px; background:var(--line); }.ribbon button span { position:absolute; top:calc(100% + 9px); left:50%; transform:translateX(-50%); font-size:10px; color:var(--muted); }.media-share-chart { display:grid; grid-template-columns:190px minmax(0,1fr); align-items:center; gap:28px; min-height:210px; }.media-pie { width:190px; aspect-ratio:1; border-radius:50%; box-shadow:inset 0 0 0 1px rgba(24,33,31,.1); }.media-legend { display:grid; gap:11px; list-style:none; margin:0; padding:0; }.media-legend li { display:grid; grid-template-columns:10px 1fr auto auto; gap:8px; align-items:baseline; font-size:12px; }.media-legend i { width:9px; height:9px; border-radius:50%; }.media-legend strong { font-family:var(--serif); font-size:15px; }.media-legend small { color:var(--muted); min-width:36px; text-align:right; }
.figure-tools { display:flex; justify-content:space-between; gap:20px; align-items:center; margin:20px 0 10px; }.segmented { display:flex; }.segmented button { padding:6px 12px; border:1px solid var(--line); background:transparent; font-size:12px; }.segmented button + button { border-left:0; }.segmented .selected { background:var(--green); color:white; border-color:var(--green); } output { font-size:12px; color:var(--muted); }.pulse-chart { min-height:310px; border:1px solid var(--line); padding:14px 4px 0; overflow:hidden; }.pulse-grid { margin-top:22px; grid-template-columns:1.25fr .75fr; }.media-bars { display:grid; gap:10px; }.media-row { display:grid; grid-template-columns:28px 1fr 52px; gap:8px; align-items:center; font-size:11px; }.media-bar { height:16px; display:flex; background:var(--mist); }.media-bar span { min-width:1px; }.month-note { border-left:2px solid var(--rust); padding:14px 18px; background:rgba(185,102,69,.06); font:15px/1.7 var(--serif); }.month-note strong { display:block; font-size:22px; }.month-note p { font-family:var(--sans); font-size:12px; color:var(--muted); }
.member-layout { display:grid; grid-template-columns:minmax(680px,1fr) clamp(410px,27vw,520px); gap:clamp(24px,2.5vw,46px); margin-top:26px; }.scatter { padding:18px; overflow:hidden; }.scatter svg { width:100%; height:auto; min-height:360px; overflow:hidden; }.gridline { stroke:var(--line); stroke-width:1; }.axis-label,.dot-label { fill:var(--muted); font:12px var(--sans); }.dot { fill:var(--green); fill-opacity:.72; stroke:var(--paper); stroke-width:2; cursor:pointer; transition:fill .15s ease; }.dot:hover,.dot.active { fill:var(--rust); }.ranking-header { margin:34px 0 12px; display:flex; justify-content:space-between; align-items:center; }.ranking-header label { font-size:12px; color:var(--muted); }.ranking-header select { margin-left:7px; color:var(--ink); }.table-wrap { overflow:auto; border-top:1px solid var(--ink); }.table-wrap table { width:100%; min-width:920px; border-collapse:collapse; font-size:12px; }.table-wrap th { text-align:left; color:var(--muted); font-weight:500; white-space:nowrap; }.table-wrap th,.table-wrap td { padding:11px 7px; border-bottom:1px solid var(--line); white-space:nowrap; }.table-wrap tr { cursor:pointer; }.table-wrap tbody tr:hover,.table-wrap tbody tr.selected { background:rgba(45,102,87,.09); }.table-wrap td:not(:nth-child(2)),.table-wrap th:not(:nth-child(2)) { text-align:right; }.member-detail { border:1px solid var(--ink); padding:clamp(20px,2vw,28px); align-self:start; position:sticky; top:152px; background:rgba(250,248,240,.7); }.detail-header { border-bottom:1px solid var(--ink); padding-bottom:12px; }.detail-header span { color:var(--green); font-size:10px; font-weight:700; letter-spacing:.12em; }.member-detail h2 { margin:5px 0 0; font-size:clamp(25px,1.8vw,31px); line-height:1.2; overflow-wrap:anywhere; }.member-stats { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:clamp(20px,2vw,34px); }.member-detail .member-stat { display:flex; justify-content:space-between; gap:8px; border-bottom:1px solid var(--line); padding:11px 0 9px; font-size:12px; }.member-detail .member-stat.wide { grid-column:1/-1; }.member-detail .member-stat strong { font-family:var(--serif); font-size:18px; text-align:right; white-space:nowrap; }.detail-chart-heading { display:flex; justify-content:space-between; align-items:baseline; margin-top:22px; font-size:13px; font-weight:700; }.detail-chart-heading small { color:var(--muted); font-size:11px; font-weight:400; }.member-mini-chart { height:184px; margin-top:8px; overflow:hidden; }.empty-detail { color:var(--muted); font:16px/1.6 var(--serif); }.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }
@media (max-width:1160px) { .member-layout { grid-template-columns:1fr; }.member-detail { position:static; }.member-mini-chart { max-width:680px; } }
@media (max-width:960px) { .overview-grid,.pulse-grid { grid-template-columns:1fr; } }
@media (max-width:760px) { .shell { padding:0 16px 40px; }.masthead { grid-template-columns:1fr; gap:12px; padding-top:18px; }.controls { justify-content:space-between; }.metrics { grid-template-columns:repeat(2,1fr); }.metric:nth-child(3) { border-left:0; border-top:1px solid var(--line); }.metric:nth-child(4) { border-top:1px solid var(--line); }.panel-heading { display:block; }.panel-heading p { margin-top:5px; text-align:left; }.media-share-chart { grid-template-columns:1fr; justify-items:center; }.media-legend { width:100%; }.member-stats { grid-template-columns:1fr; }.member-detail .member-stat.wide { grid-column:auto; }.pulse-chart { min-height:260px; }.tabs { gap:20px; } }
@media (prefers-reduced-motion:no-preference) { .panel:not([hidden]) { animation:enter .35s ease both; } @keyframes enter { from { opacity:0; transform:translateY(7px); } to { opacity:1; transform:none; } } }

/* Member records live in a full-height drawer so the analytical canvas remains full width. */
.member-layout { display:block; }
.member-drawer { position:fixed; z-index:30; top:0; right:0; width:min(560px,42vw); height:100dvh; padding:76px clamp(24px,3vw,44px) 36px; overflow-y:auto; border-left:1px solid var(--ink); background:var(--paper); box-shadow:-24px 0 48px rgba(24,33,31,.14); transform:translateX(104%); visibility:hidden; transition:transform .32s cubic-bezier(.2,.8,.2,1),visibility 0s linear .32s; }
.member-drawer.is-open { transform:translateX(0); visibility:visible; transition:transform .32s cubic-bezier(.2,.8,.2,1); }
.member-drawer #member-detail { display:grid; align-content:start; min-height:800px; padding-bottom:24px; }
.drawer-scrim { position:fixed; z-index:29; inset:0; border:0; padding:0; background:rgba(24,33,31,.18); opacity:0; pointer-events:none; transition:opacity .25s ease; }
.drawer-scrim.is-open { opacity:1; pointer-events:auto; }
.drawer-close { position:absolute; top:20px; left:clamp(24px,3vw,44px); display:flex; align-items:center; gap:8px; border:0; padding:0; color:var(--green); background:transparent; font-size:12px; letter-spacing:.08em; }
.drawer-close::first-letter { font:28px var(--serif); line-height:.7; }
.member-drawer .detail-header { border-bottom:1px solid var(--ink); padding-bottom:14px; }
.member-drawer h2 { margin:6px 0 0; font-size:clamp(27px,2vw,34px); line-height:1.2; overflow-wrap:anywhere; }
.detail-annual-note { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); margin:24px 0 2px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.detail-annual-note div { min-height:78px; padding:13px 14px 11px 0; display:flex; flex-direction:column; justify-content:space-between; gap:5px; border-right:1px solid var(--line); }
.detail-annual-note div + div { padding-left:16px; padding-right:0; border-right:0; }
.detail-annual-note span { color:var(--muted); font-size:12px; }.detail-annual-note strong { font:20px/1.15 var(--serif); letter-spacing:-.02em; }.detail-annual-note strong small { font:12px var(--sans); color:var(--muted); }
.member-drawer .member-stats { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:clamp(22px,3vw,40px); }
.member-drawer .member-stat { display:flex; justify-content:space-between; align-items:baseline; gap:10px; border-bottom:1px solid var(--line); padding:16px 0 13px; font-size:12px; }
.member-drawer .member-stat.wide { grid-column:1/-1; }
.member-drawer .member-stat strong { font-family:var(--serif); font-size:19px; text-align:right; white-space:nowrap; }
.detail-media { margin-top:30px; padding:16px 0 18px; border-top:1px solid var(--ink); border-bottom:1px solid var(--ink); }
.detail-section-heading { display:flex; align-items:baseline; justify-content:space-between; gap:12px; font-size:14px; font-weight:700; }.detail-section-heading small { color:var(--muted); font-size:12px; font-weight:400; }
.detail-media-bar { display:flex; height:18px; margin-top:16px; overflow:hidden; background:var(--mist); }.detail-media-bar span { min-width:1px; }
.detail-media-key { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:11px 20px; list-style:none; margin:16px 0 0; padding:0; }.detail-media-key li { display:grid; grid-template-columns:9px 1fr auto auto; gap:7px; align-items:baseline; font-size:12px; }.detail-media-key i { width:8px; height:8px; border-radius:50%; }.detail-media-key strong { font:17px var(--serif); }.detail-media-key small { color:var(--muted); font-size:11px; min-width:33px; text-align:right; }
.detail-trend { margin-top:30px; }.member-drawer .detail-chart-heading { display:flex; justify-content:space-between; align-items:baseline; margin-top:0; font-size:13px; font-weight:700; }
.member-drawer .detail-chart-heading small { color:var(--muted); font-size:11px; font-weight:400; }
.member-drawer .member-mini-chart { width:100%; height:268px; margin-top:12px; overflow:hidden; }
body.drawer-open { overflow:hidden; }
@media (max-width:760px) { .member-drawer { width:100%; padding:72px 24px 30px; }.member-drawer #member-detail { min-height:auto; }.drawer-close { left:24px; }.member-drawer .member-stats { grid-template-columns:1fr; }.member-drawer .member-stat.wide { grid-column:auto; }.detail-media-key { grid-template-columns:1fr; } }
@media (prefers-reduced-motion:reduce) { .member-drawer,.drawer-scrim { transition:none; } }

/* A roomier Chinese-first reading scale for the large local dashboard. */
body { font-size:16px; }
.eyebrow { font-size:12px; letter-spacing:.13em; }
h1 { font-size:clamp(38px,4.2vw,58px); }
h2 { font-size:28px; }
.controls { gap:14px; }.year-picker { padding:8px 0; font-size:15px; }.refresh { padding:10px 16px; font-size:14px; }.sync-line { font-size:13px; }
.tabs { gap:36px; }.tabs a { padding:18px 2px 14px; font-size:20px; }
.panel { padding-top:30px; }.metrics { margin:12px 0 42px; }.metric { min-height:154px; padding:21px 20px; }.metric span { font-size:14px; }.metric strong { font-size:clamp(34px,3.5vw,54px); }.metric small { font-size:13px; }
.paper-figure { padding:24px; }.paper-figure figcaption { margin-bottom:28px; font-size:14px; }.month-ribbon,.media-share { min-height:340px; }.ribbon { height:194px; }.ribbon button span { font-size:12px; }.media-share-chart { grid-template-columns:220px minmax(0,1fr); min-height:238px; }.media-pie { width:220px; }.media-legend { gap:14px; }.media-legend li { font-size:14px; }.media-legend strong { font-size:18px; }.media-legend small { font-size:12px; }
.figure-tools { margin:10px 0 14px; }.segmented button { padding:8px 16px; font-size:14px; } output { font-size:14px; }.pulse-chart { min-height:340px; }.media-row { grid-template-columns:36px 1fr 62px; font-size:13px; }.media-bar { height:19px; }.month-note { padding:20px 24px; font-size:18px; }.month-note p { font-size:14px; }
.scatter { padding:22px 24px; }.scatter svg { min-height:300px; height:auto; }.axis-label,.dot-label { font-size:14px; }.ranking-header { margin-top:38px; }.ranking-header label { font-size:14px; }.table-wrap table { font-size:14px; }.table-wrap th,.table-wrap td { padding:13px 9px; }
.member-drawer { right:0; width:min(600px,44vw); z-index:100; }.drawer-scrim { z-index:99; }.member-drawer .detail-header span { font-size:12px; }.member-drawer .member-stat { font-size:14px; }.member-drawer .detail-chart-heading { font-size:15px; }.member-drawer .detail-chart-heading small { font-size:12px; }
@media (max-width:760px) { h1 { font-size:38px; }.tabs a { font-size:18px; }.metric { min-height:138px; padding:18px 14px; }.metric strong { font-size:32px; }.media-share-chart { grid-template-columns:1fr; }.media-pie { width:200px; } }

/* Keep the application chrome fixed; only the analytical content scrolls. */
html,body { height:100%; overflow:hidden; }
.shell { height:100dvh; padding-bottom:0; display:flex; flex-direction:column; }
.masthead,.tabs { flex:0 0 auto; }
.masthead { position:relative; }
.content-scroll { flex:1 1 auto; min-height:0; overflow-y:auto; overflow-x:hidden; overscroll-behavior:contain; scrollbar-gutter:stable; padding:0 2px 76px 0; }
.content-scroll::-webkit-scrollbar { width:10px; }.content-scroll::-webkit-scrollbar-thumb { border:3px solid var(--paper); border-radius:10px; background:var(--line); }
.combined-pulse { margin-top:76px; padding-top:34px; border-top:1px solid var(--ink); }
.combined-heading { display:flex; justify-content:space-between; align-items:baseline; gap:20px; margin-bottom:10px; }.combined-heading h2 { font-size:32px; }.combined-heading p { color:var(--muted); font-size:14px; }
.month-detail { display:grid; align-content:start; min-height:432px; padding-left:24px; border-left:2px solid var(--rust); }
.month-detail .month-note { border-left:0; padding:4px 0 0; background:transparent; }
.month-top-members { margin-top:28px; padding-top:20px; border-top:1px solid var(--line); }
.month-top-heading { display:flex; justify-content:space-between; align-items:baseline; gap:12px; }.month-top-heading span { font:20px var(--serif); }.month-top-heading small { color:var(--muted); font-size:12px; }
.month-top-list { display:grid; gap:12px; list-style:none; margin:18px 0 0; padding:0; }.month-top-list li { display:grid; grid-template-columns:30px minmax(0,1fr) 58px; gap:10px; align-items:center; }.month-top-rank { color:var(--rust); font:18px var(--serif); }.month-top-profile { min-width:0; display:grid; gap:6px; }.month-top-profile strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:14px; font-weight:600; }.month-top-profile i { display:block; height:5px; overflow:hidden; background:var(--mist); }.month-top-profile b { display:block; height:100%; background:var(--green); }.month-top-count { text-align:right; font:18px var(--serif); }.month-top-empty { display:block !important; color:var(--muted); font-size:13px; }
@media (max-width:960px) { .month-detail { min-height:0; padding:24px 0 0; border-top:2px solid var(--rust); border-left:0; }.month-top-members { margin-top:24px; } }
@media (max-width:760px) { .content-scroll { padding-right:0; padding-bottom:44px; }.combined-pulse { margin-top:52px; padding-top:26px; }.combined-heading { display:block; }.combined-heading p { margin-top:6px; }.combined-heading h2 { font-size:27px; } }

/* The cumulative conversation record shares the yearbook's visual language. */
.fun-heading,.fun-section-heading { display:flex; align-items:baseline; justify-content:space-between; gap:20px; margin-bottom:16px; }
.fun-heading h2 { font-size:32px; }.fun-heading p,.fun-section-heading p,.fun-note { color:var(--muted); font-size:12px; line-height:1.8; margin-top:8px; }
.fun-section-heading { margin-top:38px; }.fun-section-heading label { font-size:13px; }.fun-section-heading select { max-width:300px; background:transparent; padding:7px; border:1px solid var(--line); }
.fun-pair-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid var(--ink); }
.fun-pair-grid article { padding:22px 22px 22px 0; border-bottom:1px solid var(--line); }.fun-pair-grid article+article { border-left:1px solid var(--line); padding-left:22px; }
.fun-rank { color:var(--rust); font:22px var(--serif); }.fun-pair-grid h3 { font:21px/1.6 var(--serif); overflow-wrap:anywhere; margin:12px 0; }.fun-times { color:var(--muted); }.fun-big { font:36px var(--serif); margin:12px 0; }.fun-big small { font:13px var(--sans); }.fun-pair-grid p:not(.fun-big),.fun-pair-grid small { font-size:12px; color:var(--muted); }
.fun-language-grid { display:grid; grid-template-columns:1fr 1fr; gap:40px; }.fun-language-grid>section { border-top:1px solid var(--ink); padding-top:12px; }.fun-language-grid h3,.fun-peak h3 { font:21px var(--serif); margin:12px 0; }
.fun-terms,.fun-keywords { list-style:none; padding:0; }.fun-terms li { display:flex; gap:20px; border-bottom:1px solid var(--line); padding:18px 0; }.fun-terms strong { font:25px var(--serif); }.fun-terms p { font-size:12px; color:var(--muted); margin-top:8px; }.fun-terms small { display:block; margin:7px 0; color:var(--green); }
.fun-evidence { display:block; border:0; border-bottom:1px solid var(--green); padding:4px 0; color:var(--green); background:transparent; font-size:12px; margin-top:12px; }.fun-empty { padding:28px 0; color:var(--muted); font-size:14px; }
.fun-peak { border-top:1px solid var(--ink); margin-top:40px; padding-bottom:30px; }.fun-keywords li { display:flex; align-items:baseline; flex-wrap:wrap; gap:20px; padding:15px 0; border-bottom:1px solid var(--line); }.fun-keywords strong { font:22px var(--serif); }.fun-keywords span { color:var(--muted); font-size:12px; }
.fun-evidence-box { border-top:2px solid var(--green); padding:24px 0; }.fun-evidence-box blockquote { margin:8px 0 20px; white-space:pre-wrap; overflow-wrap:anywhere; font:17px/1.8 var(--serif); }.fun-evidence-box article p { color:var(--muted); font-size:12px; }
@media(max-width:850px) { .fun-pair-grid,.fun-language-grid { grid-template-columns:1fr; }.fun-pair-grid article+article { border-left:0; padding-left:0; }.fun-heading,.fun-section-heading { flex-wrap:wrap; }.fun-section-heading select { max-width:230px; } }

.fun-participant-table { width:100%; max-width:900px; border-collapse:collapse; font-size:14px; margin:18px 0 30px; }
.fun-participant-table th,.fun-participant-table td { padding:12px 10px; border-bottom:1px solid var(--line); text-align:left; }
.fun-participant-table thead th { color:var(--muted); font-weight:500; }
.fun-participant-table td:first-child { overflow-wrap:anywhere; }
.fun-participant-table th:last-child,.fun-participant-table td:last-child { text-align:right; width:110px; white-space:nowrap; font-variant-numeric:tabular-nums; }
.fun-participant-table tbody td:last-child,.fun-participant-table tfoot td { font:20px var(--serif); }
.fun-participant-table small { font:12px var(--sans); color:var(--muted); }
.fun-participant-table tfoot th,.fun-participant-table tfoot td { border-bottom:0; border-top:1px solid var(--ink); }

.fun-more-partners { margin-top:20px; padding:10px 16px; border:1px solid var(--green); color:var(--green); background:transparent; font-size:14px; }
.fun-more-partners:disabled { opacity:.6; cursor:wait; }
.fun-partner-ranking { max-height:65vh; overflow:auto; border:1px solid var(--line); margin-top:16px; }
.fun-ranking-table { width:100%; min-width:660px; border-collapse:separate; border-spacing:0; font-size:14px; }
.fun-ranking-table caption { text-align:left; padding:15px 12px; font:20px var(--serif); }
.fun-ranking-table th { position:sticky; top:0; background:var(--paper); z-index:1; font-weight:500; color:var(--muted); }
.fun-ranking-table th,.fun-ranking-table td { padding:12px; text-align:right; border-bottom:1px solid var(--line); white-space:nowrap; }
.fun-ranking-table th:nth-child(2),.fun-ranking-table td:nth-child(2) { text-align:left; white-space:normal; min-width:170px; }
.fun-ranking-table .fun-evidence { margin:0 0 0 auto; }

/* Full ranking lives in a modal right drawer, independent of the page scroll. */
.fun-partner-drawer { position:fixed; inset:0 0 0 auto; margin:0; padding:0; width:min(1000px,88vw); max-width:100vw; height:100dvh; max-height:100dvh; color:var(--ink); background:var(--paper); border:0; border-left:1px solid var(--ink); box-shadow:-24px 0 48px rgba(24,33,31,.14); }
.fun-partner-drawer[open] { display:flex; flex-direction:column; }
.fun-partner-drawer::backdrop { background:rgba(24,33,31,.25); }
.fun-partner-drawer-header { flex:0 0 auto; padding:20px 28px; border-bottom:1px solid var(--ink); }
.fun-partner-drawer-header h2 { margin-top:16px; font-size:30px; }
.fun-partner-close { border:0; background:transparent; color:var(--green); padding:8px 0; font-size:14px; cursor:pointer; }
.fun-partner-drawer .fun-partner-ranking { flex:1 1 auto; min-height:0; max-height:none; margin:0; border:0; overscroll-behavior:contain; }
.fun-partner-drawer .fun-ranking-table th,.fun-partner-drawer .fun-ranking-table td { padding:15px 18px; }
.fun-partner-evidence { flex:0 1 auto; max-height:38dvh; overflow:auto; border-top:2px solid var(--green); padding:12px 28px 20px; overscroll-behavior:contain; }
.fun-partner-evidence header { display:flex; justify-content:space-between; align-items:center; gap:16px; }
.fun-partner-evidence h3 { font:21px var(--serif); margin:0; }
.fun-partner-evidence article p { font-size:12px; color:var(--muted); }
.fun-partner-evidence blockquote { margin:8px 0 18px; white-space:pre-wrap; overflow-wrap:anywhere; font:17px/1.7 var(--serif); }
@media (max-width:760px) { .fun-partner-drawer { width:100vw; }.fun-partner-drawer-header { padding:16px 20px; }.fun-partner-drawer-header h2 { font-size:26px; }.fun-partner-evidence { padding:12px 20px; } }
@media (prefers-reduced-motion:no-preference) { .fun-partner-drawer[open] { animation:partner-drawer-enter .25s ease-out; } @keyframes partner-drawer-enter { from { transform:translateX(100%); } to { transform:translateX(0); } } }
