:root{color-scheme:light;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-width:320px;min-height:100vh}*{box-sizing:border-box;margin:0;padding:0}:root{--paper: #f0f0f0;--sheet: #ffffff;--ink: #1c1c1c;--ink-soft: #3a3a3a;--muted: #6e6e6e;--faint: #9a9a9a;--rule: #e2e2e2;--rule-strong: #c8c8c8;--orange: #f15a24;--blue: #008fd5;--red: #fc4f30;--green: #6d904f;--gold: #c4922a;--sans: "Libre Franklin", "Helvetica Neue", Helvetica, Arial, sans-serif;--mono: "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace}body{font-family:var(--sans);background:var(--paper);color:var(--ink);line-height:1.45}button,input{font-family:inherit}:focus-visible{outline:2px solid var(--orange);outline-offset:2px}.shell{width:min(1120px,calc(100% - 40px));margin:0 auto;padding-bottom:28px}.masthead{background:var(--sheet);border-bottom:1px solid var(--rule-strong)}.masthead-inner{max-width:1120px;margin:0 auto;padding:16px 20px 0;display:flex;align-items:flex-end;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:10px;background:none;border:0;padding:0 0 12px;cursor:pointer;color:inherit;text-align:left}.brand-mark{width:12px;height:12px;background:var(--orange);flex-shrink:0}.brand-text{display:flex;flex-direction:column;gap:2px}.brand-kicker,.kicker{font-family:var(--mono);font-size:.68rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.brand-name{font-size:1.35rem;font-weight:700;letter-spacing:-.03em;line-height:1}.nav{display:flex;gap:22px}.nav button{background:none;border:0;padding:8px 0 14px;color:var(--muted);font-size:.95rem;font-weight:600;letter-spacing:-.01em;cursor:pointer}.nav button:hover,.nav button.active{color:var(--ink)}.nav button.active{font-weight:700}.accent-bar{height:4px;margin-bottom:28px;background:var(--orange)}.toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:18px}.toolbar-copy{min-width:0}h1{font-size:1.85rem;font-weight:700;letter-spacing:-.035em;line-height:1.1;margin-top:4px}.dek{max-width:38rem;margin-top:8px;color:var(--ink-soft);font-size:.98rem}.status{margin-top:8px;font-family:var(--mono);font-size:.72rem;letter-spacing:.02em;color:var(--muted)}.status-error{color:var(--red)}.date-toggle{display:flex;flex-shrink:0;border:1px solid var(--rule-strong);background:var(--sheet)}.date-toggle-btn{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:118px;padding:8px 14px;background:var(--sheet);border:0;border-right:1px solid var(--rule);color:var(--ink-soft);cursor:pointer;text-align:left}.date-toggle-btn:last-child{border-right:0}.date-toggle-btn:hover{background:#fafafa}.date-toggle-btn.active{background:var(--ink);color:#fff}.date-label{font-size:.88rem;font-weight:600;line-height:1.1}.date-value{font-family:var(--mono);font-size:.65rem;letter-spacing:.03em;opacity:.75}.games-list{background:var(--sheet);border:1px solid var(--rule-strong)}.game+.game{border-top:1px solid var(--rule)}.game-row{width:100%;display:grid;grid-template-columns:92px 1fr auto;align-items:center;gap:12px;padding:13px 16px;background:transparent;border:0;color:inherit;text-align:left;cursor:pointer}.game-row:hover,.game.is-open .game-row{background:#fafafa}.game-time{font-family:var(--mono);font-size:.75rem;color:var(--muted)}.matchup{display:flex;align-items:baseline;gap:8px;font-size:1.05rem;font-weight:600;letter-spacing:.04em}.team.away{color:var(--ink-soft);font-weight:500}.at{font-family:var(--mono);font-size:.68rem;font-weight:400;letter-spacing:.04em;text-transform:uppercase;color:var(--faint)}.game-action{font-family:var(--mono);font-size:.68rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.game.is-open .game-action{color:var(--orange)}.game-body{padding:4px 16px 16px;background:#fafafa;border-top:1px solid var(--rule)}.teams{display:grid;grid-template-columns:1fr 1fr;gap:16px}.team-block{background:var(--sheet);border:1px solid var(--rule);padding:12px 12px 4px;min-width:0}.team-head h2{font-size:.95rem;font-weight:700;letter-spacing:-.02em}.matchup-note{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:3px 0 10px;color:var(--muted);font-size:.78rem}.matchup-note strong{color:var(--ink);font-weight:600}.matchup-quality{font-family:var(--mono);font-size:.62rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase}.matchup-quality.soft{color:var(--green)}.matchup-quality.tough{color:var(--red)}.matchup-quality.average{color:var(--muted)}.team-empty{padding-bottom:12px;color:var(--muted);font-size:.85rem}.table-scroll{overflow-x:auto}.player-table{width:100%;border-collapse:collapse;font-size:.82rem}.player-table th{font-family:var(--mono);font-size:.62rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);text-align:left;padding:0 8px 7px;border-bottom:2px solid var(--ink);white-space:nowrap}.player-table th.sortable{cursor:pointer}.player-table th.sortable:hover{color:var(--ink)}.player-table td,.player-table tbody th{padding:8px;border-bottom:1px solid var(--rule);font-weight:500;font-variant-numeric:tabular-nums;vertical-align:top}.player-table tbody tr:last-child td,.player-table tbody tr:last-child th{border-bottom:0}.player-table tbody tr:hover td:not(.edge),.player-table tbody tr:hover th{background:#fafafa}.player-table .num{text-align:right}.player-table tbody th{text-align:left;text-transform:none;letter-spacing:0;font-family:var(--sans);font-size:.82rem;color:var(--ink)}.player-main{font-weight:600;letter-spacing:-.01em}.player-meta{display:flex;flex-wrap:wrap;gap:4px 8px;margin-top:2px;font-family:var(--mono);font-size:.66rem;font-weight:400;letter-spacing:.01em;color:var(--muted)}.player-meta .hot{color:var(--green)}.player-meta .cold{color:var(--red)}.player-meta .pp{color:var(--gold)}.player-meta .toi{color:var(--blue)}.more-skaters{display:block;width:100%;margin:2px 0 8px;padding:8px 8px 4px;background:none;border:0;border-top:1px solid var(--rule);font-family:var(--mono);font-size:.66rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);text-align:left;cursor:pointer}.more-skaters:hover{color:var(--ink)}.lines-note{grid-column:1 / -1;margin:0 0 10px;font-family:var(--mono);font-size:.68rem;color:var(--muted)}.teams-wrap{display:grid;gap:16px}.tag{font-family:var(--mono);font-size:.62rem;font-weight:600;letter-spacing:.02em;line-height:1}.tag-up,.toi-up,.toi-up-strong{color:var(--green)}.tag-down,.toi-down,.toi-down-strong{color:var(--red)}.tag-pp,.pp-elite,.pp-good{color:var(--gold)}.pp-some{color:var(--faint)}.toi-cell{color:var(--ink-soft);font-variant-numeric:tabular-nums}.board-stats dd.over{color:#3f6b2c}.board-stats dd.under{color:#c5361f}.projection{color:var(--blue);font-weight:700}.line-input{width:52px;padding:3px 4px;border:0;border-bottom:1px solid var(--rule-strong);background:transparent;color:var(--ink);font-family:var(--mono);font-size:.75rem;text-align:right}.line-input:focus{outline:none;border-bottom-color:var(--orange)}.edge.over{background:#e7f0df;color:#3f6b2c;font-weight:700}.edge.under{background:#fde7e2;color:#c5361f;font-weight:700}.board{list-style:none;background:var(--sheet);border:1px solid var(--rule-strong)}.board-row{display:grid;grid-template-columns:28px 1fr auto;gap:14px;align-items:start;padding:16px 18px}.board-row+.board-row{border-top:1px solid var(--rule)}.board-rank{font-family:var(--mono);font-size:.85rem;font-weight:500;color:var(--faint);padding-top:3px}.rank-1 .board-rank{color:var(--orange);font-weight:600}.board-name{font-size:1.05rem;font-weight:700;letter-spacing:-.02em}.rank-1 .board-name{font-size:1.35rem}.board-meta{margin-top:2px;font-family:var(--mono);font-size:.7rem;color:var(--muted)}.board-reasons{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:8px;font-family:var(--mono);font-size:.68rem;color:var(--muted)}.reason.soft,.reason.hot{color:var(--green)}.reason.tough{color:var(--red)}.reason.pp{color:var(--gold)}.reason.toi{color:var(--blue)}.board-stats{display:grid;grid-template-columns:repeat(3,64px);gap:8px;margin:0}.board-stats dt{font-family:var(--mono);font-size:.6rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.board-stats dd{margin:2px 0 0;font-size:1.05rem;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.record{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px 32px;margin-bottom:28px;padding:14px 0 16px;border-top:2px solid var(--ink);border-bottom:1px solid var(--rule-strong)}.record-main{display:grid;gap:2px}.record-label,.record-split dt{font-family:var(--mono);font-size:.62rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.record-score{font-size:2.4rem;font-weight:700;line-height:1.05;letter-spacing:-.03em;font-variant-numeric:tabular-nums}.record-pct{font-family:var(--mono);font-size:.72rem;color:var(--orange)}.record-split{display:flex;gap:28px;margin:0}.record-split dd{margin:2px 0 0;font-size:1.15rem;font-weight:600;font-variant-numeric:tabular-nums}.results-sheet{background:var(--sheet);border:1px solid var(--rule-strong)}.result-day+.result-day{border-top:1px solid var(--rule)}.result-day summary{display:grid;grid-template-columns:64px 64px 1fr auto 14px;align-items:center;gap:12px;padding:12px 16px;cursor:pointer;list-style:none}.result-day summary::-webkit-details-marker{display:none}.result-day summary:after{content:"+";font-family:var(--mono);color:var(--muted);text-align:right}.result-day[open] summary:after{content:"–"}.result-day summary:hover{background:#fafafa}.result-day-date,.result-day-split{font-family:var(--mono);font-size:.7rem;color:var(--muted);white-space:nowrap}.result-day-score{font-weight:700;font-variant-numeric:tabular-nums}.result-day-marks{display:flex;gap:3px}.result-mark{width:9px;height:9px;background:var(--rule-strong)}.result-mark.result-win{background:#3f6b2c}.result-mark.result-loss{background:#c5361f}.result-day .table-scroll{padding:0 10px 6px;border-top:1px solid var(--rule)}.result-day .player-table th[scope=col]{padding-top:10px}.results-team{display:block;font-family:var(--mono);font-size:.66rem;font-weight:400;color:var(--muted)}.results-table td{white-space:nowrap}.result-win{color:#3f6b2c;font-weight:700}.result-loss{color:#c5361f;font-weight:700}.result-push{color:var(--muted)}.disclaimer{margin-top:12px;font-family:var(--mono);font-size:.68rem;color:var(--muted)}.method{max-width:760px}.method .dek{font-size:1.05rem;line-height:1.5}.weights{width:100%;margin:28px 0 8px;border-collapse:collapse;background:var(--sheet);border:1px solid var(--rule-strong)}.weights caption{caption-side:top;padding:0 0 8px;text-align:left;font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.weights th,.weights td{padding:10px 14px;border-top:1px solid var(--rule);text-align:left;font-weight:500}.weights th{width:34%;font-size:.92rem}.weights .num{width:64px;text-align:right;font-family:var(--mono);font-size:.8rem;font-weight:600}.weight-track{width:46%}.weight-fill{display:block;height:8px;background:var(--blue)}.weight-note{color:var(--muted);font-size:.85rem}.method-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:32px}.method h2{font-size:.72rem;font-family:var(--mono);font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding-bottom:8px;border-bottom:2px solid var(--ink);margin-bottom:4px}.method h2+.marks,.method-grid section h2:not(:first-child){margin-top:22px}.glossary{display:flex;flex-direction:column}.glossary div{padding:10px 0;border-bottom:1px solid var(--rule)}.glossary dt{font-weight:700;font-size:.9rem;letter-spacing:-.01em}.glossary dd{margin:2px 0 0;color:var(--ink-soft);font-size:.88rem}.marks{list-style:none}.marks li{display:flex;align-items:baseline;gap:8px;padding:8px 0;border-bottom:1px solid var(--rule);color:var(--ink-soft);font-size:.88rem}.marks .tag{flex-shrink:0;min-width:2.6rem}.filters{display:flex;flex-wrap:wrap;gap:6px 16px;margin:0 0 18px;padding:0;border:0;min-inline-size:0}.filters legend,.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.filters button{background:none;border:0;border-bottom:2px solid transparent;padding:4px 0;color:var(--muted);font-family:var(--mono);font-size:.68rem;letter-spacing:.05em;text-transform:uppercase;cursor:pointer}.filters button:hover,.filters button.active{color:var(--ink)}.filters button.active{border-bottom-color:var(--orange)}.trends-section,.picks-section{margin-bottom:32px}.trends-section h2,.picks-section h2{font-size:.72rem;font-family:var(--mono);font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding-bottom:8px;border-bottom:2px solid var(--ink)}.plot-note{max-width:44rem;margin:8px 0 12px;color:var(--muted);font-family:var(--mono);font-size:.68rem}.plot-frame{position:relative;max-width:720px;background:#e6e6e6;border:1px solid var(--rule)}.plot-frame svg,.barbell svg{display:block;width:100%;height:auto;font-family:var(--mono)}.plot-frame svg{touch-action:manipulation}.plot-bg{fill:#e6e6e6}.plot-hit{fill:transparent;cursor:pointer}.normal-line{fill:none;stroke:var(--muted);stroke-width:1.5;stroke-dasharray:5 4;pointer-events:none}.normal-label{fill:var(--muted);font-size:11px;pointer-events:none}.plot-dot{fill:var(--blue);pointer-events:none}.plot-point.is-active .plot-dot{fill:var(--orange)}.axis-tick,.axis-label,.barbell-axis text{fill:var(--muted);font-size:11px;font-weight:400}.axis-label{letter-spacing:.04em}.plot-tip{position:absolute;z-index:2;min-width:196px;max-width:240px;padding:8px 10px;background:var(--sheet);border:1px solid var(--rule-strong);pointer-events:none}.plot-tip strong,.plot-tip span{display:block}.plot-tip strong{font-size:.86rem;letter-spacing:-.01em}.plot-tip span{margin-top:2px;color:var(--ink-soft);font-family:var(--mono);font-size:.66rem;line-height:1.45}.barbell{max-width:760px}.barbell-row,.barbell-axis{display:grid;grid-template-columns:minmax(148px,210px) minmax(0,1fr);gap:10px;align-items:center}.barbell-axis{padding:0 4px}.barbell-row{width:100%;padding:6px 4px;border:0;border-bottom:1px solid var(--rule);background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.barbell-row.is-active{background:#fafafa}.barbell-who strong{display:block;font-size:.84rem;font-weight:600;letter-spacing:-.01em}.barbell-who span{display:block;margin-top:1px;color:var(--muted);font-family:var(--mono);font-size:.66rem}.barbell-row svg{height:auto;overflow:visible}.barbell-who .barbell-readout{color:var(--ink-soft)}.barbell .spot-hit{fill:transparent}.barbell .spot-label{fill:var(--ink);font-size:11px;font-weight:600}.barbell .range{stroke:#9a9a9a;stroke-width:2}.barbell .end{fill:#9a9a9a}.barbell .mean-tick{stroke:var(--ink);stroke-width:1.5}.barbell .median{fill:var(--blue)}.barbell-row.is-active .median{fill:var(--orange)}.footer{margin-top:40px;padding:14px 0 28px;border-top:1px solid var(--rule-strong);font-family:var(--mono);font-size:.68rem;line-height:1.6;color:var(--muted)}@media(max-width:800px){.teams,.method-grid{grid-template-columns:1fr}.toolbar{flex-direction:column;align-items:stretch}.date-toggle{width:100%}.date-toggle-btn{flex:1;min-width:0}}@media(max-width:640px){.shell{width:min(1120px,calc(100% - 28px))}.masthead-inner{flex-direction:column;align-items:flex-start;gap:0;padding:14px 14px 0}.nav{width:100%;flex-wrap:wrap;gap:4px 18px}h1{font-size:1.55rem}.game-row{grid-template-columns:1fr auto;grid-template-areas:"time action" "matchup action";row-gap:2px}.game-time{grid-area:time}.matchup{grid-area:matchup}.game-action{grid-area:action;align-self:center}.board-row{grid-template-columns:22px 1fr}.board-stats{grid-column:2;margin-top:10px}.barbell-row,.barbell-axis{grid-template-columns:minmax(0,118px) minmax(0,1fr)}.rank-1 .board-name{font-size:1.15rem}.record-split{gap:20px}.record-score{font-size:2rem}.result-day summary{grid-template-columns:52px 48px 1fr 14px;gap:8px;padding:12px}.result-day-marks{display:none}}
