@import"https://fonts.googleapis.com/css2?family=Merriweather:wght@700;800&display=swap";:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#f1e6d6;color:#1f241f}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:92px}body{margin:0}button{cursor:pointer;font:inherit}a{color:#256955}h1,h2,p{margin:0}h1{max-width:880px;font-size:34px;font-weight:820;line-height:1.08}h2{font-size:19px;font-weight:800;line-height:1.2}.app-shell{min-height:100vh;background:linear-gradient(180deg,#f4ebdefa,#eee2d0f5),linear-gradient(135deg,rgba(174,80,42,.08),transparent 32%),linear-gradient(315deg,rgba(37,105,85,.09),transparent 34%)}.workspace{width:min(1440px,100%);margin:0 auto;padding:28px}.app-nav{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:24px;border:1px solid rgba(191,174,151,.72);border-radius:8px;background:#f9f4eceb;padding:10px 12px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 8px 24px #604a3014}.app-brand{display:inline-flex;align-items:center;gap:10px;color:#17221f;font-size:15px;font-weight:850;text-decoration:none}.brand-mark{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid #256955;border-radius:8px;background:#fff;overflow:hidden}.brand-logo{display:block;width:30px;height:auto}.app-nav-links{display:flex;flex-wrap:wrap;gap:8px}.app-nav-links a{display:inline-flex;align-items:center;justify-content:center;min-height:34px;border:1px solid #cfc0aa;border-radius:6px;background:#fffaf2;color:#3f443b;padding:0 12px;font-size:13px;font-weight:800;text-decoration:none}.app-nav-links a:hover,.app-nav-links a:focus-visible{border-color:#256955;background:#eef4ec;color:#174c3e;outline:none}.app-nav-links a[aria-current=page]{border-color:#256955;background:#e6f2ec;color:#174c3e}.topbar{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:8px 0 20px}.eyebrow{margin:0 0 7px;color:#67736e;font-size:12px;font-weight:800;letter-spacing:0;text-transform:uppercase}.lede{max-width:840px;margin-top:12px;color:#52605b;font-size:16px;line-height:1.48}.source-card,.metric-pill{min-width:210px;border:1px solid #d6c8b4;border-radius:8px;background:#fffaf2;padding:12px 14px;text-align:right}.source-card span,.metric-pill span,.stat-strip span{display:block;color:#64716d;font-size:12px;font-weight:800;letter-spacing:0;text-transform:uppercase}.source-card strong,.metric-pill strong{display:block;margin-top:6px;font-size:15px}.source-card small{display:block;margin-top:4px;color:#64716d;font-size:12px;font-weight:750}.notice{margin-bottom:16px;border:1px solid #dfb386;border-radius:6px;background:#fff7ec;color:#713d0b;padding:12px 14px}.stat-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:18px}.stat-strip div{min-width:0;min-height:84px;border:1px solid #d6c8b4;border-radius:8px;background:#fffaf2;padding:13px 14px}.stat-strip strong{display:block;margin-top:10px;font-size:20px;line-height:1.08}.stat-strip small{display:block;margin-top:4px;color:#64716d;font-size:12px;font-weight:750}.analysis-grid{display:grid;grid-template-columns:minmax(0,1fr);align-items:start;gap:18px}.main-stack{display:grid;gap:18px}.panel{border:1px solid #d6c8b4;border-radius:8px;background:#fffaf2f2;padding:18px}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.transition-tools{display:flex;align-items:center;gap:10px}.view-toggle{display:inline-flex;overflow:hidden;border:1px solid #cbd5ce;border-radius:6px;background:#fff}.view-toggle button{min-width:72px;min-height:36px;border:0;border-radius:0;background:transparent;color:#4e5d58;padding:0 12px;font-size:13px;font-weight:800}.view-toggle button+button{border-left:1px solid #cbd5ce}.view-toggle button[aria-pressed=true]{background:#e6f2ec;color:#174c3e}.state-grid{display:grid;grid-template-columns:repeat(8,minmax(96px,1fr));gap:8px}.state-card{display:grid;align-items:center;justify-items:center;gap:8px;min-height:86px;border:1px solid #d7dfd9;border-radius:8px;background:#fbfcfa;color:#1c2824;padding:9px 8px;text-align:center}.state-card[aria-current=true]{border-color:#236f5d;background:#eaf4ef;box-shadow:inset 0 0 0 1px #236f5d}.state-card span{color:#5c6964;font-size:12px;font-weight:700}.state-card strong{display:grid;place-items:center;min-width:58px;height:22px;border:1px solid #c7d1ca;border-radius:6px;background:#fff;color:#17221f;font-size:13px}.state-diamond{width:42px;height:42px;overflow:visible}.diamond-base{fill:#fff;stroke:#93a099;stroke-width:1.2;vector-effect:non-scaling-stroke}.diamond-base.occupied{fill:#d9483e;stroke:#b62624}.diamond-base.plate{fill:#eef2ee}.transition-table-wrap{overflow:auto}.transition-table{width:100%;min-width:680px;border-collapse:collapse}.transition-table th{color:#68746f;font-size:12px;font-weight:800;text-align:left;text-transform:uppercase}.transition-table td,.transition-table th{border-bottom:1px solid #e3e8e4;padding:10px 8px}.transition-table td{color:#17221f;font-size:14px;font-weight:650}.table-note,.small-copy{color:#64716d;font-size:13px;line-height:1.48}.table-note{margin-top:10px}.mass-bar{display:block;width:150px;height:9px;border-radius:999px;background:linear-gradient(90deg,#236f5d var(--mass),#e1e8e3 var(--mass))}.flow-panel{overflow:hidden}.flow-scroll{position:relative;min-height:220px;overflow:auto;border:1px solid #e1e7e3;border-radius:8px;background:linear-gradient(90deg,#236f5d0f,#b626240d),#fbf7ef}.flow-svg{display:block;min-width:980px;width:100%}.flow-node rect{fill:#fff;stroke:#cbd5ce}.flow-node text:first-of-type{fill:#17221f;font-size:14px;font-weight:850}.flow-node text:last-of-type{fill:#5b6863;font-size:12px;font-weight:750}.flow-band{fill:url(#flowBand);opacity:.62;stroke:#3f4642;stroke-width:1;cursor:pointer;vector-effect:non-scaling-stroke}.flow-band:hover{opacity:.78}.flow-source-stack-frame{fill:#fff;stroke:#236f5d;stroke-width:1}.flow-source-stack-segment{fill:#236f5d;opacity:.46}.flow-destination.selectable{cursor:pointer}.flow-destination.selectable:hover .flow-node rect,.flow-destination.selectable:focus .flow-node rect,.flow-destination.selectable:focus-visible .flow-node rect{fill:#eaf4ef;stroke:#236f5d}.flow-destination.selectable:focus,.flow-destination.selectable:focus-visible{outline:none}.flow-hitbox{fill:transparent;pointer-events:all}.flow-start-card{position:absolute;top:50%;left:120px;z-index:4;display:grid;align-items:center;justify-items:center;gap:10px;width:111px;min-height:117px;border:1px solid #d7dfd9;border-radius:8px;background:#fbfcfa;padding:13px 12px;box-shadow:inset 0 0 0 1px #236f5d14;pointer-events:none;transform:translate(-50%,-50%)}.flow-start-card .state-diamond{width:63px;height:63px}.flow-start-card strong{display:grid;place-items:center;width:39px;height:33px;border:1px solid #c7d1ca;border-radius:6px;background:#fff;color:#17221f;font-size:18px}.destination-button{border:0;background:transparent;color:#236f5d;padding:0;font-weight:800;text-align:left}.destination-button:hover,.destination-button:focus-visible{color:#174c3e;text-decoration:underline}.matrix-scroll{overflow:auto;border:1px solid #e1e7e3;border-radius:8px;background:#fbf7ef;padding:10px}.transition-matrix{display:grid;grid-template-columns:82px repeat(24,34px);grid-template-rows:82px repeat(24,34px);grid-auto-rows:34px;gap:3px;min-width:980px;width:max-content;margin:0 auto;align-items:stretch}.matrix-row{display:contents}.matrix-corner,.matrix-col-head,.matrix-row-head{display:flex;align-items:center;justify-content:center;min-width:0;border:1px solid #d8ded9;border-radius:5px;background:#fffaf2;color:#5d6964;font-size:10px;font-weight:850}.matrix-corner{position:sticky;left:0;z-index:4}.matrix-col-head{position:sticky;top:0;z-index:3;writing-mode:vertical-rl;text-orientation:mixed;white-space:nowrap}.matrix-row-head{position:sticky;left:0;z-index:2;background:#fffaf2;cursor:pointer}.matrix-row[data-selected=true] .matrix-row-head{border-color:#236f5d;background:#e6f2ec;color:#174c3e}.matrix-row[data-selected=true] .matrix-cell{outline:2px solid rgba(35,111,93,.5);outline-offset:0}.matrix-cell{position:relative;min-width:34px;min-height:34px;border:1px solid rgba(105,116,111,.22);border-radius:5px;background:var(--cell-color);padding:0}.matrix-cell[data-zero=true]{background:#fffaf2}.matrix-cell[data-disallowed=true]{background:repeating-linear-gradient(135deg,rgba(99,105,101,.22) 0,rgba(99,105,101,.22) 1px,transparent 1px,transparent 6px),#e2ded6;cursor:default}.matrix-cell:hover,.matrix-cell:focus-visible{border-color:#17221f;outline:none;box-shadow:0 0 0 2px #17221f2e}.matrix-tooltip{position:absolute;bottom:calc(100% + 7px);left:50%;z-index:10;display:none;width:max-content;max-width:180px;border:1px solid #cfc0aa;border-radius:6px;background:#fffaf2;color:#17221f;padding:6px 8px;font-size:12px;font-weight:800;line-height:1.2;pointer-events:none;transform:translate(-50%);box-shadow:0 8px 18px #604a3024}.matrix-cell:hover .matrix-tooltip,.matrix-cell:focus-visible .matrix-tooltip{display:block}.validation-list{display:grid;gap:10px}.validation-row{border:1px solid #d7dfd9;border-left-width:5px;border-radius:8px;background:#fbfcfa;padding:12px}.validation-row[data-status=pass]{border-left-color:#236f5d}.validation-row[data-status=warn]{border-left-color:#d49b2a}.validation-row[data-status=fail]{border-left-color:#b62624}.validation-row strong,.validation-row span{display:block}.validation-row strong{margin-bottom:5px;font-size:14px}.validation-row span{color:#5b6863;font-size:13px;line-height:1.45}.methodology-band{display:grid;grid-template-columns:.9fr 1.1fr;gap:18px;margin-top:18px;border:1px solid #d6c8b4;border-radius:8px;background:#fffaf2;padding:20px}.pipeline-steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;grid-column:1 / -1}.pipeline-steps span{border:1px solid #cbd5ce;border-radius:6px;background:#f8faf7;color:#35443f;padding:10px 12px;font-size:12px;font-weight:800;text-align:center}.methodology-band p{color:#4e5c57;font-size:14px;line-height:1.58}.loading-panel{color:#52605b;font-weight:750}.replay-page{display:grid;gap:18px}.replay-topbar{padding-top:8px}.replay-controls{display:flex;align-items:end;justify-content:space-between;gap:18px}.replay-filter-grid{display:grid;grid-template-columns:120px 220px minmax(320px,1fr);gap:12px;flex:1}.replay-filter-grid label{display:grid;gap:7px}.replay-filter-grid label span{color:#64716d;font-size:12px;font-weight:800;letter-spacing:0;text-transform:uppercase}.replay-filter-grid select{min-height:42px;border:1px solid #cfc0aa;border-radius:6px;background:#fffaf2;color:#1f241f;padding:0 12px;font:inherit;font-weight:750}.replay-filter-grid select:disabled{opacity:1;background:#f4eee4;color:#59645f}.replay-availability-note{grid-column:1 / -1;color:#64716d;font-size:13px;font-weight:750;line-height:1.4}.replay-mini-stats,.replay-selected-strip{display:flex;flex-wrap:wrap;gap:8px}.replay-mini-stats div,.replay-selected-pill{min-width:128px;border:1px solid #d6c8b4;border-radius:8px;background:#fffaf2;padding:10px 12px;text-align:right}.replay-mini-stats span,.replay-selected-pill span{display:block;color:#64716d;font-size:11px;font-weight:850;letter-spacing:0;text-transform:uppercase}.replay-mini-stats strong,.replay-selected-pill strong{display:block;margin-top:5px;color:#17221f;font-size:15px}.replay-selected-pill.home{background:#eef4ec}.replay-selected-pill.wp{border-color:#236f5d;background:#e6f2ec}.replay-chart-panel{overflow:hidden}.replay-chart-heading{display:grid;grid-template-columns:minmax(320px,1fr) auto auto;align-items:center}.replay-game-title-block{text-align:right}.replay-game-title-block p{margin-top:5px;color:#64716d;font-size:13px;font-weight:700}.replay-hover-anchor{display:flex;justify-content:flex-end}.compact-state-card.replay-hover-state-card{width:auto;min-width:146px;min-height:74px;padding:8px 10px}.replay-hover-state-main{display:flex;align-items:center;gap:10px}.replay-hover-game-facts{display:grid;justify-items:end;gap:6px;min-width:56px}.replay-hover-inning,.replay-hover-outs{display:flex;align-items:center;justify-content:center;gap:5px;width:52px;min-height:24px;border:1px solid #c7d1ca;border-radius:6px;background:#fff;font-weight:850}.replay-hover-outs{color:#17221f;font-size:12px}.replay-selected-play-line{display:flex;gap:10px;align-items:baseline;margin:-4px 0 12px;border:1px solid #e2d5c1;border-radius:6px;background:#fffaf2;padding:10px 12px}.replay-selected-play-line span{color:#64716d;font-size:12px;font-weight:850;letter-spacing:0;text-transform:uppercase}.replay-selected-play-line strong{min-width:0;overflow:hidden;color:#17221f;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.replay-chart-legend{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:10px;color:#5b6863;font-size:12px;font-weight:800}.replay-chart-legend span{display:inline-flex;align-items:center;gap:6px}.replay-chart-legend i{width:18px;height:3px;border-radius:999px}.legend-model{background:#174c3e}.legend-home{background:#236f5d}.legend-away{background:#b62624}.replay-chart-wrap{overflow-x:auto;border:1px solid #e1e7e3;border-radius:8px;background:#fbf7ef}.replay-chart{display:block;min-width:980px;width:100%}.replay-plot-bg{fill:#fffaf2b8;stroke:#e3d9ca}.replay-bottom-band{fill:#236f5d0e}.replay-gridline line,.replay-inning-tick line{stroke:#d8ded9;stroke-width:1}.replay-gridline text,.replay-inning-tick text,.replay-axis-label{fill:#68746f;font-size:12px;font-weight:800;text-anchor:middle}.replay-gridline text{text-anchor:end}.replay-area-home{fill:#236f5d24}.replay-area-away{fill:#b626241c}.replay-baseline{stroke:#9aa7a0;stroke-dasharray:5 5;stroke-width:1.2}.replay-line{fill:none;stroke:#174c3e;stroke-linecap:round;stroke-linejoin:round;stroke-width:3}.replay-point{fill:#fffaf2;stroke:#174c3e;stroke-width:1.4}.replay-point[aria-current=true]{fill:#d9483e;stroke:#8c1f1c}.replay-hover-lane{fill:transparent;cursor:crosshair;outline:none}.replay-hover-lane:hover,.replay-hover-lane:focus-visible{fill:#174c3e0a}.replay-bottom-grid{display:grid;grid-template-columns:minmax(360px,.78fr) minmax(420px,1.22fr);gap:18px;align-items:start}.swing-table,.event-log{display:grid;gap:8px}.swing-table button,.event-log button{display:grid;width:100%;min-width:0;border:1px solid #dfe5e0;border-radius:8px;background:#fbfcfa;color:#17221f;padding:10px 12px;text-align:left}.swing-table button{grid-template-columns:92px minmax(0,1fr);gap:4px 10px}.swing-table button:hover,.swing-table button:focus-visible,.event-log button:hover,.event-log button:focus-visible,.event-log button.selected{border-color:#236f5d;background:#eaf4ef;outline:none}.swing-table strong{color:#174c3e;font-size:15px}.swing-table span{overflow:hidden;color:#52605b;font-size:13px;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.swing-table code{grid-column:2;overflow:hidden;color:#17221f;font-family:inherit;font-size:13px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.event-log-panel{max-height:620px;overflow:hidden}.event-log{max-height:510px;overflow:auto;padding-right:4px}.event-log button{grid-template-columns:82px minmax(0,1fr) 72px;gap:4px 10px}.event-log span,.event-log em{color:#64716d;font-size:12px;font-style:normal;font-weight:850;text-transform:uppercase}.event-log em{text-align:right}.event-log strong{min-width:0;overflow:hidden;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.event-log code{grid-column:2 / -1;min-width:0;overflow:hidden;color:#35443f;font-family:inherit;font-size:13px;font-weight:750;text-overflow:ellipsis;white-space:nowrap}@media(max-width:1120px){.analysis-grid,.methodology-band,.replay-chart-heading,.replay-bottom-grid{grid-template-columns:1fr}.replay-filter-grid{grid-template-columns:120px minmax(180px,1fr)}.replay-game-select{grid-column:1 / -1}.stat-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.state-grid{grid-template-columns:repeat(4,minmax(86px,1fr))}.replay-chart-heading,.replay-game-title-block,.replay-hover-anchor{text-align:left;justify-content:flex-start}}@media(max-width:720px){.workspace{padding:16px}.app-nav,.topbar,.panel-heading,.transition-tools,.replay-controls{align-items:stretch;flex-direction:column}.app-nav-links{overflow-x:auto}h1{font-size:28px}.source-card{text-align:left}.stat-strip,.pipeline-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.state-grid{grid-template-columns:repeat(4,minmax(68px,1fr))}.replay-mini-stats div,.replay-selected-pill{flex:1;text-align:left}.replay-filter-grid{grid-template-columns:1fr}.replay-game-select{grid-column:auto}.swing-table button,.event-log button{grid-template-columns:1fr}.swing-table code,.event-log code{grid-column:1}}@media(max-width:460px){.stat-strip,.pipeline-steps{grid-template-columns:1fr}.state-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
