.avatar-slot{position:relative;display:grid;place-items:center;overflow:hidden}.avatar-slot>img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border-radius:inherit;object-fit:cover;object-position:top center;opacity:0}.avatar-slot:not(.is-fallback)>img{opacity:1}.avatar-initials{position:relative;-webkit-user-select:none;user-select:none}.controls{display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px 18px;padding:14px 16px;background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius)}.controls .field{display:flex;flex-direction:column;gap:5px;min-width:0}.controls .field.grow{flex:1 1 200px;max-width:320px}.controls .field>span{display:flex;align-items:center;gap:5px;color:var(--text-muted);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.help-tip{position:relative;display:inline-flex}.help-tip-trigger{display:grid;place-items:center;width:16px;height:16px;padding:0;background:transparent;border:1px solid var(--border-strong);border-radius:50%;color:var(--text-muted);font-size:9px;line-height:1;cursor:help;position:relative}.help-tip-trigger:after{content:"";position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px}.help-tip-trigger[aria-expanded=true]{border-color:var(--series-1);color:var(--series-1)}@media(hover:hover){.help-tip-trigger:hover{border-color:var(--series-1);color:var(--series-1)}}.help-tip-bubble{position:absolute;z-index:5;top:calc(100% + 8px);left:0;width:max-content;max-width:min(260px,80vw);padding:8px 10px;background:var(--surface-1);border:1px solid var(--border-strong);border-radius:8px;box-shadow:var(--shadow);color:var(--text-secondary);font-size:12px;font-weight:500;text-transform:none;letter-spacing:normal;white-space:normal}.controls select,.player-search input{height:36px;padding:0 10px;background:var(--page);border:1px solid var(--border-strong);border-radius:8px;color:var(--text-primary);font-size:14px}.controls select{min-width:210px;cursor:pointer}.player-search input{width:100%}.player-search input::placeholder{color:var(--text-muted)}.segmented{display:flex;height:36px;padding:3px;gap:3px;background:var(--page);border:1px solid var(--border-strong);border-radius:8px}.segmented button{display:flex;align-items:center;gap:7px;padding:0 12px;background:transparent;border:0;border-radius:6px;color:var(--text-secondary);font-size:13px;font-weight:550;cursor:pointer;white-space:nowrap}@media(hover:hover){.segmented button:hover:not(:disabled){color:var(--text-primary)}}.segmented button.is-selected{background:var(--surface-1);color:var(--text-primary);box-shadow:var(--shadow)}.segmented button:disabled{opacity:.4;cursor:not-allowed}.segmented .tally{color:var(--text-muted);font-size:11px;font-variant-numeric:tabular-nums}.segmented button.is-selected .tally{color:var(--text-secondary)}.player-search{position:relative}.player-search-results{position:absolute;z-index:6;top:calc(100% + 6px);left:0;right:0;margin:0;padding:6px;list-style:none;max-height:min(62vh,520px);overflow-y:auto;overscroll-behavior:contain;background:var(--surface-1);border:1px solid var(--border-strong);border-radius:10px;box-shadow:var(--shadow-lg)}.player-search-results .result{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:6px;text-align:left;cursor:pointer;font-size:14px;color:var(--text-primary)}.player-search-results .result.is-active{background:var(--series-1-wash)}.player-search-results .group ul{margin:0;padding:0;list-style:none}.player-search-results .group .split{position:sticky;top:-6px;z-index:1;background:var(--surface-1)}.player-search-results .split{display:block;padding:8px 10px 3px;color:var(--text-muted);font-size:10.5px;font-weight:600;letter-spacing:.07em;text-transform:uppercase}.player-search-results>.split:first-child,.player-search-results>.group:first-child .split{padding-top:3px}.player-search-results .split.is-note{text-transform:none;letter-spacing:0;font-weight:500;font-size:12px;color:var(--text-secondary)}.player-search-results .split.is-more{text-transform:none;letter-spacing:0;font-weight:400;font-size:12px;padding:7px 10px 3px;margin-top:4px;border-top:1px solid var(--border)}.player-search-results .who{display:flex;flex-direction:column;align-items:stretch;gap:1px;min-width:0}.player-search-results .avatar{flex:none;width:32px;height:32px;border-radius:50%;background:var(--series-1-wash)}.player-search-results .avatar.is-fallback{color:var(--series-1);font-size:11px;font-weight:600;line-height:1}.player-search-results .name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-search-results .meta{display:flex;align-items:baseline;flex-wrap:wrap;gap:0 6px;color:var(--text-muted);font-size:12px;font-variant-numeric:tabular-nums}.player-search-results .alias{color:var(--text-secondary);white-space:nowrap}.player-search-results .meta .tally,.player-search-results .where{white-space:nowrap}.player-search-results .where{color:var(--text-secondary);font-weight:600}.player-search-empty{position:absolute;z-index:6;top:calc(100% + 6px);left:0;right:0;margin:0;padding:10px 12px;background:var(--surface-1);border:1px solid var(--border-strong);border-radius:10px;box-shadow:var(--shadow-lg);color:var(--text-secondary);font-size:13px}.controls .as-of{margin:0 0 2px auto;color:var(--text-muted);font-size:12px;text-align:right}.controls .as-of .sep{margin:0 6px}@media(max-width:700px){.controls .as-of{margin-left:0;text-align:left}.controls select{min-width:0;width:100%}.controls .field:not(.grow){flex:1 1 100%}}.graph-wrap{position:relative;width:100%;height:clamp(420px,62vh,760px);background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.graph{display:block;cursor:grab;touch-action:none}.graph.is-panning{cursor:grabbing}.graph.is-over-node{cursor:pointer}.link{stroke:var(--baseline);stroke-opacity:.55;stroke-linecap:round;transition:stroke-opacity .15s ease,stroke .15s ease;vector-effect:non-scaling-stroke}.link.is-active{stroke:var(--series-2);stroke-opacity:.95}.link.is-dimmed{stroke-opacity:.1}.node{cursor:pointer}.node .hit{fill:transparent}.node .dot{fill:var(--series-1);stroke:var(--surface-1);stroke-width:2;transition:fill .15s ease,opacity .15s ease}.node.is-active .dot{fill:var(--series-2)}.node.is-partner .dot{fill:var(--series-1)}.node.is-dimmed .dot{opacity:.22}.label{fill:var(--text-secondary);font-size:11px;font-weight:500;text-anchor:middle;paint-order:stroke;stroke:var(--surface-1);stroke-width:3.5px;stroke-linejoin:round;pointer-events:none}.label.is-active{fill:var(--text-primary);font-weight:650}.label.is-dimmed{opacity:.25}.node:focus{outline:none}.node:focus-visible .dot{stroke:var(--series-2);stroke-width:3}.graph-controls{position:absolute;right:12px;bottom:12px;display:flex;gap:6px}.graph-controls button{min-width:34px;height:34px;padding:0 10px;background:var(--surface-1);color:var(--text-secondary);border:1px solid var(--border-strong);border-radius:8px;font-size:15px;line-height:1;cursor:pointer}@media(hover:hover){.graph-controls button:hover{color:var(--text-primary);background:var(--series-1-wash)}}.graph-controls .reset{font-size:13px}.graph-tooltip{position:absolute;transform:translate(-50%,-100%);min-width:168px;padding:10px 12px;background:var(--surface-1);border:1px solid var(--border-strong);border-radius:8px;box-shadow:var(--shadow);pointer-events:none;z-index:5}.graph-tooltip strong{display:block;font-size:13px;color:var(--text-primary);margin-bottom:6px}.graph-tooltip dl{margin:0;display:grid;gap:2px}.graph-tooltip dl div{display:flex;justify-content:space-between;gap:14px}.graph-tooltip dt{color:var(--text-muted);font-size:12px}.graph-tooltip dd{margin:0;color:var(--text-primary);font-size:12px;font-weight:650;font-variant-numeric:tabular-nums}.path-panel{height:100%;display:flex;flex-direction:column;gap:12px;padding:16px 18px 18px;background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius);overflow-y:auto}.path-panel header{display:flex;align-items:center;justify-content:space-between;gap:10px}.path-panel h2{margin:0;font-size:15px;font-weight:650;color:var(--text-primary)}.path-panel .close{border:0;background:transparent;color:var(--text-muted);font-size:20px;line-height:1;padding:2px 6px;cursor:pointer;border-radius:6px}@media(hover:hover){.path-panel .close:hover{color:var(--text-primary);background:var(--series-1-wash)}}.path-panel .ends{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.path-panel .ends>li{display:flex;flex-direction:column;gap:3px;position:relative}.path-panel .lab{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.path-panel .ends .nm{font-size:14px;font-weight:600;color:var(--text-primary)}.path-panel .chosen{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.path-panel .chosen button{border:0;background:transparent;color:var(--series-1);font-size:12px;cursor:pointer;padding:0;text-decoration:underline;text-underline-offset:2px;flex:none}.path-panel input{width:100%;padding:7px 10px;font:inherit;font-size:14px;color:var(--text-primary);background:var(--page);border:1px solid var(--border-strong);border-radius:8px}.path-panel .suggestions{position:absolute;z-index:6;top:calc(100% + 4px);left:0;right:0;margin:0;padding:4px;list-style:none;max-height:260px;overflow-y:auto;background:var(--surface-1);border:1px solid var(--border-strong);border-radius:9px;box-shadow:var(--shadow-lg)}.path-panel .suggestions li{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:6px 9px;border-radius:6px;cursor:pointer;font-size:13.5px;color:var(--text-primary)}.path-panel .suggestions li.is-active{background:var(--series-1-wash)}.path-panel .suggestions .tally{color:var(--text-muted);font-size:12px;font-variant-numeric:tabular-nums;flex:none}.path-panel .answer{display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--border);padding-top:12px}.path-panel .verdict{margin:0;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.path-panel .verdict strong{font-size:16px;font-weight:700;color:var(--text-primary)}.path-panel .verdict .sub{font-size:12.5px;color:var(--text-muted)}.path-panel .chain{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.path-panel .chain>li{display:flex;flex-direction:column}.path-panel .chain .link{padding:3px 0 3px 17px;margin-left:15px;border-left:2px solid var(--series-1);font-size:12px;color:var(--text-secondary);font-variant-numeric:tabular-nums}.path-panel .chain .link b{color:var(--text-primary);font-weight:650}.path-panel .chain>li>button{display:flex;align-items:center;gap:9px;width:100%;padding:4px 6px;border:0;border-radius:7px;background:transparent;text-align:left;cursor:pointer;color:inherit;font:inherit}@media(hover:hover){.path-panel .chain>li>button:hover{background:var(--series-1-wash)}}.path-panel .chain .avatar{flex:none;width:30px;height:30px;border-radius:50%;background:var(--series-1-wash)}.path-panel .chain .avatar.is-fallback{color:var(--series-1);font-size:10px;font-weight:600;line-height:1}.path-panel .chain .who{display:flex;flex-direction:column;gap:0;min-width:0}.path-panel .chain .who .nm{font-size:13.5px;font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.path-panel .chain .who .meta{font-size:11.5px;color:var(--text-muted);font-variant-numeric:tabular-nums}.path-panel .chain>li.end .who .nm{color:var(--series-2)}.path-panel .chain>li.end .avatar{background:var(--series-2-wash);box-shadow:0 0 0 2px var(--series-2)}.path-panel .chain>li.end .avatar.is-fallback{color:var(--series-2)}.path-panel .islands{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--text-secondary)}.path-panel .islands p{margin:0}.path-panel .islands .nm{color:var(--text-primary);font-weight:600}.path-panel .islands b{color:var(--text-primary);font-weight:650;font-variant-numeric:tabular-nums}.path-panel .foot,.path-panel .hint{margin:0;font-size:12px;line-height:1.45;color:var(--text-muted)}.path-panel .hint{border-top:1px solid var(--border);padding-top:12px}.portrait-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:grid;place-items:center;padding:24px;background:#060606b8;animation:portrait-in .14s ease-out}@keyframes portrait-in{0%{opacity:0}}.portrait-lightbox figure{margin:0;display:flex;flex-direction:column;align-items:center;gap:12px;width:min(420px,100%,60vh)}.portrait-shot{position:relative;width:100%;overflow:hidden;border-radius:12px;box-shadow:var(--shadow-lg);line-height:0}.portrait-lo{display:block;width:100%;height:auto}.portrait-hi{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .18s ease-out}.portrait-shot.is-sharp .portrait-hi{opacity:1}.portrait-shot.no-placeholder .portrait-hi{position:static;height:auto}@media(prefers-reduced-motion:reduce){.portrait-hi{transition:none}}.portrait-missing{display:grid;place-items:center;width:100%;aspect-ratio:1;border-radius:12px;background:#ffffff14;color:#ffffff8c;font-size:72px;font-weight:650;letter-spacing:.02em}.portrait-lightbox figcaption{display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center;max-width:420px}.portrait-lightbox figcaption strong{color:#fff;font-size:17px;font-weight:650;letter-spacing:-.01em;text-wrap:balance}.portrait-lightbox figcaption span{color:#ffffffb3;font-size:13px}.portrait-close{position:absolute;top:14px;right:14px;width:36px;height:36px;display:grid;place-items:center;border-radius:50%;border:1px solid rgba(255,255,255,.28);background:#ffffff1a;color:#fff;font-size:22px;line-height:1;cursor:pointer}.portrait-close:focus-visible{outline:2px solid #fff;outline-offset:2px}@media(hover:hover){.portrait-close:hover{background:#fff3}}.portrait-trigger{position:absolute;top:0;right:0;bottom:0;left:0;padding:0;border:0;border-radius:inherit;background:none;cursor:zoom-in}.portrait-trigger:focus-visible{outline:2px solid var(--series-1);outline-offset:2px}@media(hover:hover){.portrait-trigger:hover{box-shadow:0 0 0 1px var(--series-1)}}.tournament-panel{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;display:flex;flex-direction:column;background:var(--surface-1);border-radius:var(--radius);box-shadow:var(--shadow-lg);overflow:hidden}.tournament-panel>header{display:flex;align-items:flex-start;gap:10px;padding:12px 14px 10px;border-bottom:1px solid var(--gridline);flex:none}.tournament-panel .who{min-width:0;display:flex;flex-direction:column;gap:3px}.tournament-panel h3{margin:0;font-size:16px;font-weight:700;letter-spacing:-.01em;text-wrap:balance}.tournament-panel h3 .season{color:var(--text-secondary);font-weight:500}.tournament-panel .meta{margin:0;display:flex;flex-wrap:wrap;gap:8px;font-size:12px;color:var(--text-muted)}.tournament-panel .meta .badge{background:var(--track);border-radius:5px;padding:0 6px;color:var(--text-secondary)}.tournament-panel .close{margin-left:auto;flex:none;width:28px;height:28px;display:grid;place-items:center;border-radius:7px;border:1px solid var(--border);background:transparent;color:var(--text-secondary);font-size:18px;line-height:1;cursor:pointer}@media(hover:hover){.tournament-panel .close:hover{border-color:var(--border-strong);color:var(--text-primary)}}.tournament-panel .note{margin:0;padding:16px 14px;color:var(--text-secondary);font-size:13.5px}.tournament-panel .bands{list-style:none;margin:0;padding:8px 14px;overflow-y:auto;flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.tournament-panel .band{display:grid;grid-template-columns:52px 1fr;gap:8px;padding:6px 0;align-items:start}.tournament-panel .band+.band{border-top:1px solid var(--gridline)}.tournament-panel .place{margin:0;padding-top:1px;font-size:12.5px;font-weight:650;font-variant-numeric:tabular-nums;color:var(--text-secondary);white-space:nowrap}.tournament-panel .band.podium .place{color:var(--text-primary)}.tournament-panel .place .medal{margin-right:2px}.tournament-panel .teams{list-style:none;margin:0;padding:0;min-width:0;display:flex;flex-direction:column;gap:3px}.tournament-panel .team{display:flex;align-items:baseline;gap:7px;min-width:0;font-size:13px;border-radius:5px}.tournament-panel .team.is-mine{background:var(--series-2-wash);box-shadow:0 0 0 4px var(--series-2-wash)}.tournament-panel .fed{flex:none;width:46px;font-size:11px;letter-spacing:.03em;color:var(--text-muted)}.tournament-panel .pair{min-width:0}.tournament-panel .pair .sep{color:var(--text-muted)}.tournament-panel .pair button{border:0;background:none;padding:0;font:inherit;color:var(--series-1);cursor:pointer;text-align:left}@media(hover:hover){.tournament-panel .pair button:hover{text-decoration:underline}}.tournament-panel .pair strong{font-weight:650}.tournament-panel .pair .unlinked{color:var(--text-secondary)}.player-card{position:relative;display:flex;flex-direction:column;gap:18px;padding:18px;background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);height:100%;overflow-y:auto}.player-card header{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:start}.player-photo{width:68px;height:68px;border-radius:50%;background:var(--series-1-wash);border:1px solid var(--border)}.player-photo.is-fallback{color:var(--series-1);font-size:22px;font-weight:650;letter-spacing:.02em}.player-card .who{min-width:0}.player-card h2{margin:0 0 2px;font-size:19px;line-height:1.25;font-weight:650;overflow-wrap:anywhere}.player-card header .alias{margin:1px 0 0;color:var(--text-secondary);font-size:14px}.player-card .country{margin:0;display:flex;align-items:center;gap:7px;flex-wrap:wrap;color:var(--text-secondary);font-size:13px}.player-card .close{width:30px;height:30px;background:transparent;border:1px solid var(--border);border-radius:8px;color:var(--text-secondary);font-size:19px;line-height:1;cursor:pointer}@media(hover:hover){.player-card .close:hover{color:var(--text-primary);background:var(--series-1-wash)}}.vitals{margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 10px;padding:14px 0;border-top:1px solid var(--gridline);border-bottom:1px solid var(--gridline)}.vitals dt{color:var(--text-muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em}.vitals dd{margin:2px 0 0;color:var(--text-primary);font-size:16px;font-weight:600}.vitals dd .sub,.vitals .birth-place{display:block;margin-top:1px;font-size:13px;font-weight:500;color:var(--text-secondary)}.tl-filters{display:flex;flex-wrap:wrap;gap:5px;margin:0 0 10px}.tl-filters button{padding:3px 10px;border:1px solid var(--gridline);border-radius:999px;background:var(--surface-1);color:var(--text-secondary);font:inherit;font-size:12px;cursor:pointer}@media(hover:hover){.tl-filters button:hover{color:var(--text-primary);border-color:var(--border-strong)}}.tl-filters button.on{background:var(--series-1-wash);border-color:transparent;color:var(--series-1);font-weight:600}.tl-filters button:focus-visible{outline:2px solid var(--series-1);outline-offset:2px}.timeline.is-filtered .total{display:none}.timeline.is-filtered .season{cursor:default}.timeline.is-filtered .season .caret{visibility:hidden}.partners{display:flex;flex-direction:column;flex:1 1 auto}.partners-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0 0 8px}.partners h3{margin:0;display:flex;align-items:baseline;gap:8px;min-width:0;font-size:13px;font-weight:650}.partners ul{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:minmax(0,1fr);align-content:start;gap:2px;flex:1 1 0;overflow-y:auto;min-height:150px}.partners li button{width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:7px 8px;background:transparent;border:0;border-radius:6px;text-align:left;cursor:pointer}@media(hover:hover){.partners li button:hover{background:var(--series-1-wash)}}.partners .name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.partners .meta{display:flex;align-items:center;gap:10px;flex-shrink:0}.partners .tally{min-width:26px;padding:1px 6px;border-radius:999px;background:var(--series-1-wash);color:var(--text-primary);font-size:11px;font-weight:650;font-variant-numeric:tabular-nums;text-align:center}.partners .best{flex-shrink:0;min-width:24px;text-align:right;color:var(--text-secondary);font-size:11px;font-weight:700;font-variant-numeric:tabular-nums}.partners .best.is-podium{color:var(--series-1)}.partners .span{color:var(--text-muted);font-size:11px;font-variant-numeric:tabular-nums}.partners .empty{margin:0;color:var(--text-secondary);font-size:13px}.away{flex-shrink:0;margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}.away h4{margin:0 0 4px;color:var(--text-muted);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.away ul{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:minmax(0,1fr);gap:2px;flex:none;overflow-y:visible;max-height:none;min-height:0}.away li button,.away li .unlinked{width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:5px 8px;background:transparent;border:0;border-radius:6px;text-align:left;font:inherit;color:inherit}.away li button{cursor:pointer}@media(hover:hover){.away li button:hover{background:var(--series-1-wash)}}.away li .unlinked{cursor:default;color:var(--text-secondary)}.away .fed{font-size:12px;line-height:1;white-space:nowrap}.away .moved-to{margin-left:1px;color:var(--text-muted);font-size:10px}.view-switch{display:flex;gap:2px;flex:1;padding:2px;border-radius:7px;background:var(--track)}.view-switch button{flex:1;padding:6px 10px;border:0;border-radius:5px;background:transparent;color:var(--text-secondary);font:inherit;font-size:13px;font-weight:600;cursor:pointer}@media(hover:hover){.view-switch button:hover{color:var(--text-primary)}}.view-switch button[aria-pressed=true]{background:var(--series-1-wash);color:var(--series-1)}.timeline{margin:0;padding:0;list-style:none;flex:1 1 0;min-height:150px;overflow-y:auto}.timeline>li{display:grid;grid-template-columns:4.1em minmax(0,1fr);gap:0 4px;align-items:start}.timeline>li+li{margin-top:4px;padding-top:4px;border-top:1px solid var(--border)}.timeline .season{display:flex;flex-direction:column;align-items:start;gap:1px;margin:0;padding:5px 4px 3px 2px;background:transparent;border:0;border-radius:6px;font:inherit;text-align:left;cursor:pointer}@media(hover:hover){.timeline .season:hover{background:var(--series-1-wash)}}.timeline .year-row{display:flex;align-items:center;gap:3px}.timeline .caret{width:0;height:0;flex-shrink:0;border-left:4px solid currentColor;border-top:3.5px solid transparent;border-bottom:3.5px solid transparent;color:var(--text-muted);transition:transform .12s ease}.timeline .season[aria-expanded=true] .caret{color:var(--series-1);transform:rotate(90deg)}@media(hover:hover){.timeline .season:hover .caret{color:var(--series-1)}}@media(hover:hover){.timeline .season:hover .year{color:var(--text-primary)}}.timeline .season[aria-expanded=true] .year{color:var(--series-1)}@media(prefers-reduced-motion:reduce){.timeline .caret{transition:none}}.timeline .year{font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--text-secondary)}.timeline .total{color:var(--text-muted);font-size:10px;font-variant-numeric:tabular-nums}.timeline ul{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:minmax(0,1fr);gap:2px;overflow-y:visible;flex:none;min-height:0}.timeline li button{width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:5px 8px;background:transparent;border:0;border-radius:6px;text-align:left;cursor:pointer}@media(hover:hover){.timeline li button:hover{background:var(--series-1-wash)}}.events{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:minmax(0,1fr);gap:6px;overflow-y:visible;flex:none}.events>li{padding:4px 8px 5px;border-radius:6px;background:var(--track)}.events .event{margin:0;display:flex;justify-content:space-between;align-items:baseline;gap:8px}.events .where{flex:none;line-height:1;font-size:12px}.events .name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600}.events button.name{border:0;background:none;padding:0;font:inherit;font-size:12px;font-weight:600;color:inherit;text-align:left;cursor:pointer}@media(hover:hover){.events button.name:hover{text-decoration:underline;text-underline-offset:2px}}.events .finish{flex-shrink:0;font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--text-secondary)}.events .finish.podium{color:var(--text-primary)}.events .finish .medal{margin-right:3px;font-size:11px;vertical-align:-.5px}.events .event-meta{margin:2px 0 0;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;color:var(--text-muted);font-size:11px}.events .badge{padding:0 5px;border:1px solid var(--border);border-radius:999px;font-weight:600}.events .with{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-secondary)}.events-note{margin:0;padding:5px 8px;color:var(--text-muted);font-size:12px}.card-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.find-path{flex:none;display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border:1px solid var(--border-strong);border-radius:999px;background:transparent;color:var(--text-secondary);font:inherit;font-size:12.5px;font-weight:600;line-height:1.4;cursor:pointer;transition:background .12s ease,color .12s ease,border-color .12s ease}.find-path:before{content:"⇢";font-size:13px;line-height:1;color:var(--series-1)}@media(hover:hover){.find-path:hover{background:var(--series-1-wash);border-color:var(--series-1);color:var(--text-primary)}}.find-path:focus-visible{outline:2px solid var(--series-1);outline-offset:2px}.profile-link{flex:none;font-size:13px;font-weight:600;text-decoration:none}@media(hover:hover){.profile-link:hover{text-decoration:underline}}.stat-tiles{display:flex;flex-wrap:wrap;gap:12px}.tile{display:flex;flex-direction:column;gap:3px;padding:14px 16px;background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius);flex:1 1 140px;min-width:0}.tile .label{color:var(--text-muted);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.tile .value{color:var(--text-primary);font-size:26px;font-weight:650;line-height:1.15}.tile.is-hero{background:var(--series-1-wash);border-color:transparent}.tile.is-hero .value{font-size:48px;letter-spacing:-.02em}.tile .detail{color:var(--text-secondary);font-size:12px}@media(min-width:700px){.tile{flex-basis:180px}}@media(max-width:560px){.tile.is-hero .value{font-size:38px}}.table-view{max-height:460px;overflow:auto;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-1)}.table-view table{width:100%;border-collapse:collapse;font-size:13px}.table-view thead th{position:sticky;top:0;z-index:1;padding:0;background:var(--surface-1);border-bottom:1px solid var(--baseline);text-align:left;font-weight:600;white-space:nowrap}.table-view thead th:last-child{padding:9px 12px;color:var(--text-muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em}.table-view thead button{width:100%;display:flex;align-items:center;gap:5px;padding:9px 12px;background:transparent;border:0;color:var(--text-muted);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;cursor:pointer}.table-view th.num button{justify-content:flex-end}@media(hover:hover){.table-view thead button:hover{color:var(--text-primary)}}.table-view .arrow{width:8px;color:var(--series-1)}.table-view tbody tr{cursor:pointer;border-bottom:1px solid var(--gridline)}.table-view tbody tr:last-child{border-bottom:0}@media(hover:hover){.table-view tbody tr:hover{background:var(--series-1-wash)}}.table-view tbody tr.is-selected{background:var(--series-2-wash)}.table-view td{padding:8px 12px;color:var(--text-primary)}.table-view td.num{text-align:right;font-variant-numeric:tabular-nums}.table-view td.muted{color:var(--text-secondary)}.table-view .empty{margin:0;padding:24px 12px;color:var(--text-secondary);text-align:center}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);clip:rect(0,0,0,0);white-space:nowrap;border:0}.app{max-width:1720px;margin:0 auto;padding:28px 20px 56px;display:flex;flex-direction:column;gap:18px}.masthead{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.masthead h1{margin:0 0 4px;font-size:clamp(22px,3.2vw,30px);font-weight:680;letter-spacing:-.02em;line-height:1.15}.masthead p{margin:0;max-width:62ch;color:var(--text-secondary);font-size:14px}.theme-toggle{flex-shrink:0;width:38px;height:38px;background:var(--surface-1);border:1px solid var(--border-strong);border-radius:8px;color:var(--text-secondary);font-size:16px;line-height:1;cursor:pointer}@media(hover:hover){.theme-toggle:hover{color:var(--text-primary);background:var(--series-1-wash)}}main{display:flex;flex-direction:column;gap:22px;transition:opacity .18s ease}main.is-loading{opacity:.55}.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:10px}.section-head h2{margin:0;font-size:16px;font-weight:650}.section-head .muted{margin:0;color:var(--text-muted);font-size:13px}.relayout{flex-shrink:0;height:32px;padding:0 12px;background:var(--surface-1);border:1px solid var(--border-strong);border-radius:8px;color:var(--text-secondary);font-size:13px;cursor:pointer}@media(hover:hover){.relayout:hover{color:var(--text-primary);background:var(--series-1-wash)}}.legend{margin:5px 0 0;display:flex;flex-wrap:wrap;gap:6px 18px;color:var(--text-muted);font-size:12px}.legend .key{display:inline-flex;align-items:center;gap:6px}.legend .filtered{padding:1px 8px;border-radius:999px;background:var(--series-2-wash);color:var(--text-secondary)}.key-dot{fill:var(--series-1)}.key-line{stroke:var(--baseline);stroke-linecap:round}.graph-section{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}.graph-section .section-head{grid-column:1 / -1;margin-bottom:0}.card-slot{min-width:0}@media(min-width:940px){.graph-section:has(.card-slot){grid-template-columns:minmax(0,1fr) 340px}}@media(max-width:939px){.card-slot{height:auto!important}}.graph-empty{display:grid;place-items:center;height:320px;background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-secondary)}footer{margin-top:8px;padding-top:16px;border-top:1px solid var(--gridline);color:var(--text-muted);font-size:12px}footer p{margin:0 0 4px}footer .caveat{max-width:78ch}.error-panel{margin-top:60px;padding:26px;background:var(--surface-1);border:1px solid var(--border-strong);border-radius:var(--radius)}.error-panel h1{margin:0 0 8px;font-size:20px}.error-panel p{margin:0;color:var(--text-secondary)}.tournament-page{max-width:760px;margin:0 auto;padding:28px 20px 72px;display:flex;flex-direction:column;gap:20px}.tournament-page>nav{font-size:13px}.tournament-page>nav a{color:var(--text-secondary);text-decoration:none}@media(hover:hover){.tournament-page>nav a:hover{color:var(--series-1);text-decoration:underline}}.tournament-page>header{display:flex;flex-direction:column;gap:8px}.tournament-page h1{margin:0;font-size:clamp(24px,4vw,32px);font-weight:700;letter-spacing:-.02em;line-height:1.1;text-wrap:balance}.tournament-page h1 .season{color:var(--text-secondary);font-weight:500}.tournament-page .facts{margin:0;display:flex;flex-wrap:wrap;gap:6px 14px;font-size:13.5px;color:var(--text-muted)}.tournament-page .facts .badge{background:var(--track);border-radius:5px;padding:0 7px;color:var(--text-secondary)}.tournament-page h2{margin:0 0 10px;font-size:15px;font-weight:650;letter-spacing:.01em;color:var(--text-secondary)}.tournament-page .note{margin:0;color:var(--text-secondary);font-size:14px}.tournament-page .bands{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.tournament-page .band{display:grid;grid-template-columns:68px 1fr;gap:12px;padding:9px 0;align-items:start;border-top:1px solid var(--gridline)}.tournament-page .band:first-child{border-top:0}.tournament-page .place{margin:0;padding-top:1px;font-size:13.5px;font-weight:650;font-variant-numeric:tabular-nums;color:var(--text-secondary);white-space:nowrap}.tournament-page .band.podium .place{color:var(--text-primary)}.tournament-page .place .medal{margin-right:3px}.tournament-page .teams{list-style:none;margin:0;padding:0;min-width:0;display:flex;flex-direction:column;gap:4px}.tournament-page .team{display:flex;align-items:baseline;gap:9px;min-width:0;font-size:14.5px}.tournament-page .fed{flex:none;width:52px;font-size:12px;letter-spacing:.03em;color:var(--text-muted)}.tournament-page .pair{min-width:0}.tournament-page .pair .sep{color:var(--text-muted)}.tournament-page .pair button{border:0;background:none;padding:0;font:inherit;color:var(--series-1);cursor:pointer;text-align:left}@media(hover:hover){.tournament-page .pair button:hover{text-decoration:underline}}.tournament-page .pair .unlinked{color:var(--text-secondary)}.tournament-page .editions .blurb{margin:-6px 0 12px;font-size:13.5px;color:var(--text-secondary);max-width:62ch}.tournament-page .years{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.tournament-page .edition{display:grid;grid-template-columns:96px 1fr;gap:12px;padding:10px 0;border-top:1px solid var(--gridline);align-items:start}.tournament-page .edition.is-here{background:var(--series-2-wash);box-shadow:0 0 0 6px var(--series-2-wash);border-radius:3px}.tournament-page .edition .which{margin:0;display:flex;flex-direction:column;gap:1px}.tournament-page .edition .year{font-size:15px;font-weight:650;font-variant-numeric:tabular-nums;color:var(--series-1);text-decoration:none}.tournament-page .edition.is-here .year{color:var(--text-primary)}@media(hover:hover){.tournament-page .edition a.year:hover{text-decoration:underline}}.tournament-page .edition .draw{font-size:11.5px;color:var(--text-muted)}.tournament-page .top{list-style:none;margin:0;padding:0;min-width:0;display:flex;flex-direction:column;gap:2px}.tournament-page .top li{display:grid;grid-template-columns:22px 1fr auto;gap:8px;align-items:baseline;font-size:13.5px;min-width:0}.tournament-page .top .rank{font-size:12px;color:var(--text-muted);font-variant-numeric:tabular-nums}.tournament-page .top .who{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tournament-page .top .fed{width:auto;font-size:11.5px}.tournament-page .top .none{display:block;color:var(--text-muted);font-size:13px}:root{color-scheme:light;--surface-1: #fcfcfb;--page: #f9f9f7;--text-primary: #0b0b0b;--text-secondary: #52514e;--text-muted: #898781;--gridline: #e1e0d9;--baseline: #c3c2b7;--border: rgba(11, 11, 11, .1);--border-strong: rgba(11, 11, 11, .18);--track: rgba(11, 11, 11, .06);--series-1: #2a78d6;--series-2: #eb6834;--series-1-wash: rgba(42, 120, 214, .1);--series-2-wash: rgba(235, 104, 52, .12);--good: #0ca30c;--shadow: 0 1px 2px rgba(11, 11, 11, .06), 0 8px 24px rgba(11, 11, 11, .08);--shadow-lg: 0 2px 4px rgba(11, 11, 11, .08), 0 16px 48px rgba(11, 11, 11, .16);--font: system-ui, -apple-system, "Segoe UI", sans-serif;--radius: 10px}@media(prefers-color-scheme:dark){:root:where(:not([data-theme=light])){color-scheme:dark;--surface-1: #1a1a19;--page: #0d0d0d;--text-primary: #ffffff;--text-secondary: #c3c2b7;--text-muted: #898781;--gridline: #2c2c2a;--baseline: #383835;--border: rgba(255, 255, 255, .1);--border-strong: rgba(255, 255, 255, .2);--track: rgba(255, 255, 255, .08);--series-1: #3987e5;--series-2: #d95926;--series-1-wash: rgba(57, 135, 229, .14);--series-2-wash: rgba(217, 89, 38, .16);--good: #0ca30c;--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 8px 24px rgba(0, 0, 0, .5);--shadow-lg: 0 2px 4px rgba(0, 0, 0, .5), 0 16px 48px rgba(0, 0, 0, .7)}}:root[data-theme=dark]{color-scheme:dark;--surface-1: #1a1a19;--page: #0d0d0d;--text-primary: #ffffff;--text-secondary: #c3c2b7;--text-muted: #898781;--gridline: #2c2c2a;--baseline: #383835;--border: rgba(255, 255, 255, .1);--border-strong: rgba(255, 255, 255, .2);--track: rgba(255, 255, 255, .08);--series-1: #3987e5;--series-2: #d95926;--series-1-wash: rgba(57, 135, 229, .14);--series-2-wash: rgba(217, 89, 38, .16);--good: #0ca30c;--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 8px 24px rgba(0, 0, 0, .5);--shadow-lg: 0 2px 4px rgba(0, 0, 0, .5), 0 16px 48px rgba(0, 0, 0, .7)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--page);color:var(--text-primary);font-family:var(--font);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}:where(button,select,input){font:inherit;color:inherit}:where(a){color:var(--series-1)}:where(a,button,select,[tabindex]):focus-visible{outline:2px solid var(--series-1);outline-offset:2px;border-radius:4px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
