:root{color-scheme:dark;--bg:#091011;--panel:#111718;--ink:#e8ebec;--muted:#a2acae;--line:#2b3535;--accent:#aaf56a;--purple:#b5a1d8;font-family:'DM Sans',sans-serif;font-size:14px}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button,input,select{font:inherit;color:inherit}button,select,input{border:1px solid var(--line);border-radius:4px;background:var(--panel);padding:9px 12px}button,summary,select{cursor:pointer}button:hover{border-color:var(--accent)}input{width:100%}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:3px}button,summary,a{touch-action:manipulation}h1,h2,h3,p{margin:0}h1{font-size:28px;line-height:1.2}h2{font-size:18px}h3{font-size:16px}small{font-size:12px}label{display:grid;gap:7px;color:var(--muted);font-size:12px}summary{padding:12px 0;font-weight:600}summary::marker{color:var(--accent)}[hidden]{display:none!important}.skip{position:fixed;left:16px;top:-100px;z-index:100;padding:12px;background:var(--panel)}.skip:focus{top:12px}
.app{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100vh}.sidebar{border-right:1px solid var(--line);padding:24px 16px;min-width:0}.brand{display:flex;align-items:center;gap:12px;color:var(--ink);margin:0 8px 28px}.brand>span{font-size:29px;color:var(--muted)}.brand strong{font-size:13px;letter-spacing:.05em}.brand small{display:block;color:var(--muted);font-size:11px;margin-top:3px}nav{display:grid;border-block:1px solid var(--line);padding:8px 0;gap:4px}nav a{color:var(--muted);padding:10px 8px;border-radius:3px}nav a[aria-current]{color:var(--accent);background:#16201a}.search{position:relative;margin-top:24px}.search input{margin-top:8px}.search-results{position:absolute;z-index:8;background:var(--panel);width:100%;box-shadow:0 2px 8px #0004}.search-results:not(:empty){border:1px solid var(--line)}.search-hit{border:0;border-radius:0;border-bottom:1px solid var(--line);text-align:left;width:100%;font-size:13px;padding:12px}.search-hit small{display:block;color:var(--muted);margin-top:5px}.target-picker{margin-top:16px}.target-picker summary{font-size:13px}.target-picker summary span{color:var(--muted);font-weight:400}.pair{display:grid;grid-template-columns:30px minmax(0,1fr) 26px;gap:9px;align-items:center;width:100%;text-align:left;border:0;border-bottom:1px solid var(--line);background:transparent;border-radius:0;padding:12px 5px}.pair.active{background:#16201a;box-shadow:inset 2px 0 var(--accent)}.pair img{width:30px;height:34px;object-fit:cover}.pair-name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.pair small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.pair b{color:var(--accent);text-align:right}.method-link{display:block;margin-top:24px;font-size:12px}
main{padding:28px clamp(20px,3vw,48px) 32px;min-width:0;max-width:1500px;width:100%;margin:auto}.page-header{margin-bottom:20px}.page-header p{color:var(--muted);font-size:13px;line-height:1.6;margin-top:8px}.view-controls{border-block:1px solid var(--line);margin-bottom:24px}.view-controls>summary{font-size:13px}.control-fields{display:flex;gap:16px;padding:0 0 16px;flex-wrap:wrap}.control-fields label{min-width:145px}.control-fields select{min-height:40px}.empty{padding:40px 0;line-height:1.7;color:var(--muted)}.empty h2{color:var(--ink);margin-bottom:10px}.empty a{display:inline-block;margin-top:12px}.muted{color:var(--muted)}footer{border-top:1px solid var(--line);margin-top:32px;padding-top:16px;color:var(--muted);font-size:12px;line-height:1.8}footer a{margin-right:14px}
.duo{border-bottom:1px solid var(--line);padding:0 0 20px;display:grid;grid-template-columns:minmax(0,1fr) 160px minmax(0,1fr);align-items:center;gap:16px}.player{display:flex;gap:14px;align-items:center;min-width:0}.player.receiver{flex-direction:row-reverse;text-align:right}.portrait{width:100px;height:136px;object-fit:cover;object-position:top}.player h2{font-family:'Oswald',sans-serif;font-size:clamp(22px,2.4vw,34px);line-height:1.15;overflow-wrap:anywhere}.player p{color:var(--muted);font-size:12px;line-height:1.6;margin-top:8px}.position{display:block;font:12px 'DM Sans',sans-serif;color:var(--accent);margin-bottom:7px}.score-block{text-align:center}.score-number{font:600 56px/1 'Oswald',sans-serif;color:var(--accent)}.score-number small{font:14px 'DM Sans',sans-serif;color:var(--muted)}.score-label{font-size:12px;margin-top:8px}.score-status{font-size:12px;line-height:1.5;color:var(--muted);margin-top:6px}.score-explanation{border-bottom:1px solid var(--line)}.score-explanation summary{font-size:13px;color:var(--accent)}.score-detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;padding:12px 0 20px}.score-detail-grid h3{margin-bottom:12px}.score-detail-grid p{display:flex;justify-content:space-between;gap:12px;font-size:12px;line-height:1.6;margin:7px 0;color:var(--muted)}.score-detail-grid b{color:var(--ink);white-space:nowrap}.score-explanation>p{font-size:12px;color:var(--muted);line-height:1.6;margin-bottom:16px}.trend{padding:20px 0;border-bottom:1px solid var(--line)}.section-head{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:12px}.section-head p,.section-note{color:var(--muted);font-size:12px;line-height:1.6}.history{width:100%;height:145px;display:block}.history text{fill:var(--muted);font:12px 'DM Sans',sans-serif}.history line{stroke:var(--line)}.history path{stroke:var(--accent);fill:none;stroke-width:2}.history circle{fill:var(--accent);stroke:var(--bg);stroke-width:2}.history circle:focus{stroke:white}.stats-row{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));border-bottom:1px solid var(--line)}.stat{padding:20px 12px;border-right:1px solid var(--line)}.stat:first-child{padding-left:0}.stat:last-child{border:0}.stat b{display:block;font:500 30px 'Oswald',sans-serif}.stat span{display:block;color:var(--muted);font-size:12px;margin-top:4px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:28px}.metric{display:grid;grid-template-columns:160px 1fr 90px;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid var(--line);font-size:13px}.metric-value{text-align:right;font-variant-numeric:tabular-nums}.metric-value small{display:block;color:var(--muted);font-size:11px;margin-top:4px}.track{height:5px;background:var(--line)}.track i{display:block;height:100%;background:var(--accent)}
.feature{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 24px;align-items:center;padding:8px 0 12px;border-bottom:1px solid var(--line);margin-bottom:24px}
.feature-summary{min-width:0}
.feature-summary h2{font:500 clamp(26px,2.8vw,38px)/1.2 'Oswald',sans-serif;margin:8px 0;overflow-wrap:anywhere}
.feature-summary>p{color:var(--muted);font-size:14px;line-height:1.6}
.feature .feature-photos{display:flex;align-items:center;gap:16px}
.feature img{width:104px;height:136px;flex-shrink:0;object-fit:cover;object-position:top}
.feature .score-block{flex:0 0 auto}
.feature .score-label{color:var(--muted);white-space:nowrap}
.feature .score-explanation{grid-column:1/-1;min-width:0;border-bottom:0}
@media(min-width:761px) and (max-width:960px){.feature{grid-template-columns:1fr}.feature .feature-photos{justify-content:center}}
.rank-controls{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:18px 0}.rank-filters{display:flex;flex-wrap:wrap;gap:12px}.rank-filters label{min-width:85px}.rank-filters select{padding:8px;min-width:0}.rank-summary{margin:10px 0;color:var(--muted);font-size:12px}.table-scroll{overflow-x:auto;max-width:100%;overscroll-behavior-inline:contain}.data-table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px;font-variant-numeric:tabular-nums}.data-table th,.data-table td{padding:13px 10px;text-align:right;border-bottom:1px solid var(--line);white-space:nowrap;background:var(--bg)}.data-table th{font-size:11px;color:var(--muted);font-weight:500}.data-table th button{border:0;background:none;padding:4px;color:inherit;font:inherit}.data-table th button.active{color:var(--accent)}.data-table .identity{text-align:left;min-width:215px;max-width:285px}.data-table .rank{width:38px;text-align:left;color:var(--muted);padding-left:0}.connection-button{background:transparent;border:0;padding:0;text-align:left;display:flex;align-items:center;gap:9px;min-height:36px;max-width:270px}.connection-button img{width:28px;height:34px;object-fit:cover}.connection-button span{overflow:hidden;text-overflow:ellipsis}.connection-button small{display:block;color:var(--muted);font-size:11px;margin-top:4px}.data-table .score{color:var(--accent);font-weight:600}.data-table tbody tr:hover td{background:var(--panel)}.tree .identity{min-width:130px}.tree td,.tree th{padding:12px 7px}.tree .connection-button{font-size:12px}.tree tbody tr.selected td{color:var(--accent)}.changes-note{color:var(--muted);font-size:12px;margin-top:12px;line-height:1.6}.chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:32px}.chart-panel{border-block:1px solid var(--line)}.chart-panel>summary{font-size:16px}.chart-panel p{font-size:12px;line-height:1.6;color:var(--muted);margin:6px 0}.scatter svg{width:100%;display:block;margin:16px 0}.scatter text{fill:var(--muted);font:11px 'DM Sans',sans-serif}.scatter line{stroke:var(--line)}.scatter .average{stroke:#798781;stroke-dasharray:4 4}.scatter .dot{cursor:pointer;outline:none}.scatter .dot:hover circle,.scatter .dot:focus circle{stroke:var(--ink);stroke-width:3}.chart-readout{min-height:42px;color:var(--ink)!important}.chart-panel button{font-size:12px;margin-bottom:16px}dialog{background:var(--panel);color:var(--ink);border:1px solid var(--line);padding:24px;max-width:600px;width:calc(100% - 32px);max-height:85svh}dialog::backdrop{background:#000a}.dialog-head{display:flex;justify-content:space-between;align-items:center;gap:16px}dialog dl{display:grid;grid-template-columns:1fr 1fr;gap:20px}dialog dt{color:var(--accent);font-weight:600;margin-bottom:6px}dialog dd{margin:0;line-height:1.6;font-size:13px;color:var(--muted)}.methodology{max-width:900px;padding:32px 24px;margin:auto;line-height:1.7}.methodology h1{margin:24px 0 12px}.methodology h2{margin:28px 0 10px}.methodology p,.methodology li{color:var(--muted)}.methodology table{width:100%;border-collapse:collapse}.methodology td{padding:8px;border-bottom:1px solid var(--line)}
@media(min-width:761px){.view-controls>summary{display:none}.control-fields{padding-top:16px}.target-picker>summary{cursor:default}}
@media(max-width:1100px){.portrait{width:70px;height:104px}.duo{grid-template-columns:1fr 120px 1fr}.detail-grid{grid-template-columns:1fr}.metric{grid-template-columns:170px 1fr 100px}.chart-grid{grid-template-columns:1fr}}
@media(max-width:760px){.app{display:block}.sidebar{border:0;border-bottom:1px solid var(--line);padding:16px}.brand{margin:0 0 12px}.brand small{display:none}nav{display:flex;padding:0;border:0;gap:16px}nav a{padding:9px 0;font-size:13px}nav a[aria-current]{background:none}.search{margin-top:12px}.search>label{position:absolute;clip-path:inset(50%);height:1px;width:1px;overflow:hidden}.search input{margin:0;min-height:42px}.target-picker{margin:0}.target-picker summary{padding-bottom:0}.target-picker[open] summary{padding-bottom:12px}#pairList{display:flex;overflow:auto}.pair{min-width:190px}.method-link{display:none}main{padding:20px 16px 28px}.page-header{margin-bottom:12px}h1{font-size:24px}.page-header p{font-size:12px}.view-controls{margin-bottom:20px}.control-fields{gap:12px}.control-fields label{min-width:calc(50% - 6px);flex:1}.control-fields label:last-child{width:100%}.duo{grid-template-columns:minmax(0,1fr) 90px minmax(0,1fr);gap:8px}.player,.player.receiver{display:block;text-align:left}.player.receiver{text-align:right}.portrait{width:58px;height:72px;margin-bottom:8px}.player h2{font-size:22px}.player p{font-size:11px}.position{font-size:11px}.score-number{font-size:42px}.score-number small{font-size:11px}.score-status{font-size:11px}.score-detail-grid{grid-template-columns:1fr;gap:12px}.stats-row{grid-template-columns:repeat(3,1fr)}.stat{padding:14px 10px}.stat:nth-child(3){border-right:0}.stat:nth-child(-n+3){border-bottom:1px solid var(--line)}.stat:nth-child(4){padding-left:0}.stat b{font-size:26px}.metric{grid-template-columns:120px minmax(35px,1fr) 75px;gap:10px;font-size:12px}.feature{grid-template-columns:1fr;gap:12px;padding:4px 0 8px}.feature-summary h2{font-size:26px}.feature-summary>p{font-size:13px}.feature .feature-photos{justify-content:center;gap:16px}.feature img{width:80px;height:104px}.rank-controls{align-items:stretch;flex-direction:column}.rank-filters{display:grid;grid-template-columns:1fr 1fr;gap:12px}.rank-filters label{min-width:0}.rank-controls>button{align-self:flex-start}.data-table th,.data-table td{padding:12px 8px}.leaderboard{min-width:790px}.leaderboard .rank{position:sticky;left:0;z-index:2;width:32px;min-width:32px;padding-left:4px}.leaderboard .identity{position:sticky;left:32px;z-index:2;min-width:154px;max-width:154px;width:154px}.leaderboard .score{position:sticky;left:186px;z-index:2;min-width:52px;box-shadow:1px 0 var(--line)}.leaderboard .connection-button{max-width:138px;white-space:normal;font-size:12px}.leaderboard .connection-button img{display:none}.tree .identity{min-width:120px}.tree{min-width:440px}.history{height:135px}.section-head{align-items:flex-start}.section-head p{text-align:right}.chart-grid{margin-top:24px}dialog dl{grid-template-columns:1fr}footer{font-size:11px}}
.rank-controls{display:block}.rank-control-body{display:flex;align-items:end;justify-content:space-between;gap:16px}.rank-controls>summary{font-size:13px}
.detail-grid>section{min-width:0}
.score-detail-grid p{align-items:flex-start;font-size:13px}.score-detail-grid p>span{min-width:0}.score-detail-grid p small,.score-penalties small{display:block;font-size:12px;line-height:1.6;margin-top:5px;color:var(--muted)}.raw-profile-heading{margin-top:24px}.raw-metric{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--line);color:var(--muted);font-size:13px}.raw-metric b{color:var(--ink);font-weight:400;font-variant-numeric:tabular-nums}.metric-value small{font-size:12px}
.weekly-score-detail>.section-head strong,.score-equation strong{white-space:nowrap}
.history .history-hit{fill:transparent;stroke:transparent;stroke-width:12;vector-effect:non-scaling-stroke;pointer-events:all}.history .history-marker{pointer-events:none}.history-point{cursor:pointer;outline:none}.history-point:focus .history-marker,.history-point:hover .history-marker,.history-point[aria-expanded="true"] .history-marker{stroke:var(--ink);stroke-width:3;r:6px}.weekly-score-detail{border-top:1px solid var(--line);margin-top:20px;padding-top:20px}.weekly-score-detail>.section-head{align-items:flex-start}.weekly-score-detail>.section-head p{margin-top:7px;text-align:left}.weekly-score-detail button{flex:0 0 auto;min-height:40px}.score-detail-grid h3 span{display:block;margin-top:5px;color:var(--muted);font-size:12px;font-weight:400}.score-penalties{display:flex;gap:24px;flex-wrap:wrap}.score-penalties p,.score-context{font-size:12px;line-height:1.65;color:var(--muted)}.score-penalties b{color:var(--ink);margin-left:8px}.score-equation{font-size:14px;line-height:1.7;margin:14px 0!important;color:var(--ink)!important}.score-equation span{color:var(--muted);font-size:12px}.score-context{margin-bottom:12px}.weekly-score-detail .score-detail-grid{padding-bottom:14px}
@media(max-width:760px){.weekly-score-detail h2{font-size:17px}.weekly-score-detail .score-detail-grid{gap:18px}.score-penalties{display:grid;gap:8px}.weekly-score-detail .score-detail-grid p{font-size:12px}}
.score-ring{--score-progress:0%;position:relative;width:108px;height:108px;padding:0;margin:auto;border:0;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--score-color) var(--score-progress),var(--line) 0);box-shadow:0 0 0 1px var(--line)}.score-ring-inner{width:88px;height:88px;background:var(--panel);border-radius:50%;display:flex;flex-direction:column;justify-content:center;align-items:center}.score-ring .score-number{font-size:38px;line-height:1;color:var(--score-color)}.score-ring .score-caption{font-size:10px;color:var(--muted);margin-top:4px}.score-ring:focus-visible{outline-offset:5px}
@media(max-width:760px){.score-ring{width:82px;height:82px}.score-ring-inner{width:66px;height:66px}.score-ring .score-number{font-size:29px}.score-ring .score-caption{font-size:9px}}
@media(prefers-reduced-motion:no-preference){.score-ring.is-loading{animation:score-arrive 1.25s cubic-bezier(.16,.9,.25,1) both}@keyframes score-arrive{0%{opacity:0;transform:scale(.58) rotate(-80deg);filter:blur(4px)}65%{opacity:1;transform:scale(1.08) rotate(7deg);filter:none}100%{opacity:1;transform:scale(1) rotate(0);filter:none}}}
@media(min-width:761px){.rank-controls>summary{display:none}}
@media(max-width:760px){.rank-controls{border-block:1px solid var(--line);margin:12px 0}.rank-control-body{display:flex;flex-direction:column;align-items:stretch;padding-bottom:16px}.rank-control-body>button{align-self:flex-start}.trend>.section-head h2{white-space:nowrap;font-size:16px}.trend>.section-head p{font-size:11px}.player h2{font-size:21px}}
@media(prefers-reduced-motion:no-preference){button,a,input,select{transition:background .15s,border-color .15s,color .15s}}
