:root{--paper:#f3efe6;--paper-2:#e8e2d4;--card:#fffdf8;--ink:#1c211e;--muted:#5d665f;--line:#d6cfbf;--board:#1e4634;--board-2:#163527;--board-ink:#f3eedf;--board-dim:#7f9c8b;--accent:#c8102e;--accent-ink:#fff;--light-ball:#5fd38a;--light-strike:#ff6b57;--light-out:#ffc44d;--hot:#e0472f;--cold:#2f6fd6;--spots:#138a6a;--dot-ball:#2f9e57;--dot-strike:#d93a2b;--dot-foul:#d99a13;--dot-play:#2f62c9;--g-green:#2f9e57;--g-yellow:#d6a300;--g-orange:#e0702a;--g-red:#d23b3b;--zone-line:#1c211e;--zone-cell:#ffffff8c;--chase:#1c211e0d;--radius:14px;--shadow:0 1px 0 #0000000a, 0 6px 20px -12px #00000040;--display:"Barlow Condensed", "Arial Narrow", system-ui, sans-serif;--body:"Barlow", system-ui, -apple-system, "Segoe UI", sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#0e1411;--paper-2:#141c18;--card:#17211c;--ink:#e7ece8;--muted:#9aa69e;--line:#2a3631;--board:#133524;--board-2:#0f2a1c;--board-ink:#efe9d8;--board-dim:#6f8d7c;--accent:#ff4a5c;--accent-ink:#1a0004;--zone-line:#dfe6e1;--zone-cell:#ffffff0a;--chase:#ffffff09;--dot-ball:#3fbf6e;--dot-strike:#ff5a48;--dot-foul:#f0b429;--dot-play:#5b8cff;--shadow:0 1px 0 #ffffff05, 0 8px 24px -14px #000c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--paper:#0e1411;--paper-2:#141c18;--card:#17211c;--ink:#e7ece8;--muted:#9aa69e;--line:#2a3631;--board:#133524;--board-2:#0f2a1c;--board-ink:#efe9d8;--board-dim:#6f8d7c;--accent:#ff4a5c;--accent-ink:#1a0004;--zone-line:#dfe6e1;--zone-cell:#ffffff0a;--chase:#ffffff09;--dot-ball:#3fbf6e;--dot-strike:#ff5a48;--dot-foul:#f0b429;--dot-play:#5b8cff;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0}body{background:var(--paper);color:var(--ink);font-family:var(--body);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;font-size:16px;line-height:1.45}button{font:inherit;color:inherit}a{color:inherit}.app{max-width:1120px;margin:0 auto;padding:0 16px 32px}.header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 0 10px;display:flex}.brand{align-items:center;gap:10px;text-decoration:none;display:inline-flex}.brand-name{font-family:var(--display);letter-spacing:.04em;text-transform:uppercase;font-size:26px;font-weight:800;line-height:1}.brand-mark .ball{fill:var(--card);stroke:var(--board);stroke-width:2px}.brand-mark .seam{fill:none;stroke:var(--accent);stroke-width:2px;stroke-dasharray:2.5 2}.nav{background:var(--paper-2);border-radius:999px;gap:4px;padding:4px;display:flex}.nav button{cursor:pointer;color:var(--muted);background:0 0;border:0;border-radius:999px;padding:6px 12px;font-size:14px;font-weight:600}.nav button.is-active{background:var(--card);color:var(--ink);box-shadow:var(--shadow)}.banner{justify-content:space-between;align-items:baseline;gap:12px;margin:6px 0 10px;display:flex}.banner-title{color:var(--muted);font-size:14px;font-weight:600}.banner-sit{font-family:var(--display);text-transform:uppercase;letter-spacing:.06em;color:var(--accent);white-space:nowrap;font-size:15px;font-weight:700}.scoreboard{background:linear-gradient(180deg, var(--board), var(--board-2));color:var(--board-ink);border-radius:var(--radius);box-shadow:var(--shadow);font-family:var(--display);grid-template-columns:1fr auto auto;grid-template-areas:"teams inning state""meta meta meta";align-items:center;gap:4px 16px;padding:12px 16px 10px;display:grid}.sb-teams{grid-area:teams;gap:4px;min-width:0;display:grid}.sb-row{opacity:.8;grid-template-columns:3.2em 1fr auto;align-items:baseline;gap:8px;display:grid}.sb-row.is-batting{opacity:1}.sb-row.is-batting .sb-abbr:after{content:"";background:var(--light-out);vertical-align:middle;border-radius:50%;width:6px;height:6px;margin-left:6px;display:inline-block}.sb-abbr{letter-spacing:.04em;font-size:22px;font-weight:800}.sb-name{color:var(--board-dim);text-transform:uppercase;letter-spacing:.06em;text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:600;overflow:hidden}.sb-runs{text-align:center;font-variant-numeric:tabular-nums;background:#00000038;border-radius:6px;min-width:1.4em;padding:2px 6px;font-size:30px;font-weight:800;line-height:1}.sb-inning{grid-area:inning;align-items:center;gap:2px;font-size:30px;font-weight:800;display:flex}.sb-arrow{color:var(--light-out);font-size:14px}.sb-state{grid-area:state;align-items:center;gap:12px;display:flex}.bases .base{fill:#0000;stroke:var(--board-dim);stroke-width:2px}.bases .base.is-on{fill:var(--light-out);stroke:var(--light-out)}.sb-counts{gap:3px;display:grid}.sb-counts>div{align-items:center;gap:6px;display:flex}.sb-label{color:var(--board-dim);width:10px;font-size:13px;font-weight:700}.lights{gap:4px;display:inline-flex}.light{background:#0000004d;border-radius:50%;width:10px;height:10px;box-shadow:inset 0 0 0 1px #ffffff14}.lights-ball .is-on{background:var(--light-ball);box-shadow:0 0 8px var(--light-ball)}.lights-strike .is-on{background:var(--light-strike);box-shadow:0 0 8px var(--light-strike)}.lights-out .is-on{background:var(--light-out);box-shadow:0 0 8px var(--light-out)}.sb-meta{font-family:var(--body);color:var(--board-dim);letter-spacing:.02em;grid-area:meta;font-size:12px}.wp{grid-template-columns:auto auto 1fr;grid-template-areas:"label value delta""bar bar bar";align-items:baseline;gap:2px 10px;margin:12px 2px 14px;display:grid}.wp-label{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;grid-area:label;font-size:13px;font-weight:600}.wp-value{font-family:var(--display);font-variant-numeric:tabular-nums;grid-area:value;font-size:24px;font-weight:800}.wp-delta{font-variant-numeric:tabular-nums;grid-area:delta;font-size:14px;font-weight:700}.wp-delta.is-up{color:var(--g-green)}.wp-delta.is-down{color:var(--g-red)}.wp-bar{background:var(--paper-2);border-radius:999px;grid-area:bar;height:6px;overflow:hidden}.wp-bar>span{background:var(--board);border-radius:inherit;height:100%;transition:width .4s;display:block}.layout{flex-direction:column;gap:14px;display:flex}.col{display:contents}.result{order:0}.matchup{order:1}.last-pitch{order:2}.pitches{order:3}.zone-wrap{order:4}.call-bar{order:5}.pbp{order:6}@media (width>=900px){.col{align-content:start;gap:14px;min-width:0;display:grid}.layout{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:24px;display:grid}.col-log{position:sticky;top:12px}}.matchup{grid-template-columns:1fr 1fr;gap:10px;display:grid}@media (width<=520px){.matchup{gap:8px}.matchup .card{padding:10px 11px}.matchup .card-name{font-size:19px}.matchup .card-stats{gap:2px 8px;font-size:12.5px}.matchup .card-kicker{font-size:10.5px}.matchup .card-note{margin-top:6px;font-size:12px}.sb-name{display:none}.sb-row{grid-template-columns:1fr auto}.strikezone svg{max-height:52vh}}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);min-width:0;padding:12px 14px}.card-kicker{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:12px;font-weight:600}.card-name{font-family:var(--display);margin:2px 0 6px;font-size:24px;font-weight:700;line-height:1.1}.card-stats{color:var(--muted);flex-wrap:wrap;gap:4px 12px;font-size:14px;display:flex}.card-stats b{color:var(--ink);font-variant-numeric:tabular-nums}.card-stats-sub{margin-top:2px}.card-note{color:var(--muted);margin-top:8px;font-size:13px}.card-batter{border-left:4px solid var(--accent)}.zone-wrap{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:10px 10px 6px}.overlay-tabs{justify-content:center;gap:4px;margin-bottom:4px;display:flex}.overlay-tabs button{border:1px solid var(--line);color:var(--muted);cursor:pointer;background:0 0;border-radius:999px;padding:3px 10px;font-size:13px;font-weight:600}.overlay-tabs button.is-active{background:var(--ink);color:var(--paper);border-color:var(--ink)}.overlay-tabs button:disabled{opacity:.4;cursor:not-allowed}.strikezone svg{touch-action:manipulation;-webkit-user-select:none;user-select:none;width:100%;max-width:380px;margin:0 auto;display:block}.zone{cursor:pointer;outline:none}.zone-hit{fill:var(--chase);stroke:none}.zone-cell{fill:var(--zone-cell);stroke:var(--zone-line);stroke-opacity:.35;stroke-width:1px}.zone-fill{pointer-events:none;transition:fill .2s}.zone:hover .zone-hit,.zone:focus-visible .zone-hit{fill:color-mix(in oklab, var(--accent) 12%, transparent)}.is-disabled .zone{cursor:default}.chase-frame{fill:none;stroke:var(--zone-line);stroke-opacity:.18;stroke-dasharray:4 4;pointer-events:none}.chase-split{stroke:var(--zone-line);stroke-opacity:.18;stroke-dasharray:4 4;pointer-events:none}.zone-frame{fill:none;stroke:var(--zone-line);stroke-width:2.5px;pointer-events:none}.zone-selection{fill:color-mix(in oklab, var(--accent) 18%, transparent);stroke:var(--accent);stroke-width:3px;pointer-events:none;animation:1.4s ease-in-out infinite pulse}@keyframes pulse{50%{stroke-opacity:.45}}.plate{fill:var(--card);stroke:var(--zone-line);stroke-opacity:.5;stroke-width:1.5px}.zone-batter{letter-spacing:.08em;fill:var(--muted);font-size:11px;font-weight:700;font-family:var(--display)}.zone-caption{text-align:center;color:var(--muted);min-height:1.45em;margin:2px 0 4px;font-size:14px;font-weight:600}.zone-legend{color:var(--muted);justify-content:center;align-items:center;gap:6px;margin-bottom:4px;font-size:12px;display:flex}.legend-swatch{border-radius:3px;width:12px;height:12px;margin-left:8px}.legend-hot{background:var(--hot)}.legend-cold{background:var(--cold)}.legend-spots{background:var(--spots)}.dot{pointer-events:none}.dot circle{stroke:var(--card);stroke-width:2px}.dot text{fill:#fff;font-size:10px;font-weight:800;font-family:var(--body)}.dot-ball circle{fill:var(--dot-ball)}.dot-strike circle{fill:var(--dot-strike)}.dot-foul circle{fill:var(--dot-foul)}.dot-play circle{fill:var(--dot-play)}.dot.is-latest{animation:.34s cubic-bezier(.2,.9,.3,1.4) dot-pop}.dot.is-latest circle{stroke:var(--ink)}@keyframes dot-pop{0%{scale:.4}60%{scale:1.3}}.zone-tag{pointer-events:none;animation:.24s ease-out 40ms both tag-in}.zone-tag rect{fill:var(--ink);stroke:var(--card);stroke-width:1.5px}.zone-tag text{font-family:var(--display);letter-spacing:.02em;fill:#fff;font-size:12px;font-weight:700}.tag-ball rect{fill:var(--dot-ball)}.tag-strike rect{fill:var(--dot-strike)}.tag-foul rect{fill:var(--dot-foul)}.tag-foul text{fill:#2a1d00}.tag-out rect{fill:var(--dot-play)}.tag-hit rect{fill:var(--g-red)}@keyframes tag-in{0%{opacity:0;transform:translateY(3px)}}.pitches{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;display:grid}.pitch{text-align:left;border:1.5px solid var(--line);background:var(--card);cursor:pointer;border-radius:12px;gap:1px;padding:10px 12px;transition:border-color .12s,transform .12s;display:grid}.pitch:hover:not(:disabled){border-color:var(--ink)}.pitch.is-selected{border-color:var(--accent);background:color-mix(in oklab, var(--accent) 8%, var(--card));box-shadow:inset 0 0 0 1px var(--accent)}.pitch-name{font-family:var(--display);font-size:19px;font-weight:700;line-height:1.1}.pitch-velo{font-variant-numeric:tabular-nums;font-size:14px;font-weight:600}.pitch-meta{color:var(--muted);font-size:12px}.pitch-read{letter-spacing:.02em;border-radius:999px;justify-self:start;margin-top:4px;padding:1px 7px;font-size:11px;font-weight:700}.read-hot{background:color-mix(in oklab, var(--hot) 18%, transparent);color:var(--hot)}.read-warm{background:color-mix(in oklab, var(--g-orange) 16%, transparent);color:var(--g-orange)}.read-neutral{background:var(--paper-2);color:var(--muted)}.read-cold{background:color-mix(in oklab, var(--cold) 16%, transparent);color:var(--cold)}.card-approach{border-radius:999px;margin-top:8px;padding:2px 8px;font-size:12px;font-weight:700;display:inline-block}.call-bar{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);grid-template-columns:1fr auto;grid-template-areas:"summary throw""ibb ibb";align-items:center;gap:6px 12px;padding:10px 12px;display:grid}.call-summary{grid-area:summary;min-width:0;font-weight:600}.btn-throw{grid-area:throw}.call-bar .btn-link{grid-area:ibb;justify-self:start}.btn{border:1.5px solid var(--line);background:var(--card);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;gap:6px;padding:10px 18px;font-weight:700;display:inline-flex}.btn:hover:not(:disabled){border-color:var(--ink)}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-family:var(--display);text-transform:uppercase;letter-spacing:.06em;font-size:18px}.btn-primary:hover:not(:disabled){border-color:var(--accent);filter:brightness(1.06)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-link{color:var(--muted);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:2px 0;font-size:13px;font-weight:600;text-decoration:underline}.btn-link:disabled{opacity:.4}.last-pitch{background:var(--card);border:1px solid var(--line);border-left:5px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:12px 14px}.last-pitch.is-empty p{color:var(--muted);margin:0}.last-pitch.tone-green{border-left-color:var(--g-green)}.last-pitch.tone-yellow{border-left-color:var(--g-yellow)}.last-pitch.tone-orange{border-left-color:var(--g-orange)}.last-pitch.tone-red{border-left-color:var(--g-red)}.lp-result{font-family:var(--display);font-size:22px;font-weight:700;line-height:1.15}.lp-call{color:var(--muted);margin-top:2px;font-size:14px}.lp-miss{color:var(--g-orange);font-weight:600}.lp-grade{align-items:baseline;gap:8px;margin-top:8px;font-size:14px;display:flex}.grade{text-align:center;color:#fff;font-variant-numeric:tabular-nums;border-radius:6px;flex:none;min-width:40px;padding:1px 7px;font-size:12px;font-weight:800;display:inline-block}.grade-green{background:var(--g-green)}.grade-yellow{background:var(--g-yellow);color:#2a2000}.grade-orange{background:var(--g-orange)}.grade-red{background:var(--g-red)}.section-title{font-family:var(--display);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:4px 2px 8px;font-size:15px;font-weight:700}.pbp-pas,.pbp-pitches{margin:0;padding:0;list-style:none}.pbp-pas{gap:10px;display:grid}.pbp-pa{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px}.pbp-batter{margin-bottom:4px;font-weight:700}.pbp-pitch{border-top:1px dashed var(--line);grid-template-columns:2.4em 1fr auto;align-items:start;gap:8px;padding:5px 0;font-size:14px;display:grid}.pbp-pitch:first-child{border-top:0}.pbp-count{color:var(--muted);font-variant-numeric:tabular-nums;font-weight:600}.pbp-text{min-width:0;display:grid}.pbp-call{color:var(--muted);font-size:13px}.result{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);gap:14px;padding:18px;display:grid}.result-head{background:linear-gradient(180deg, var(--board), var(--board-2));color:var(--board-ink);border-radius:10px;padding:16px}.result-blown .result-head,.result-walkoff .result-head{background:linear-gradient(#5a1a1f,#3d1015)}.result-kicker{text-transform:uppercase;letter-spacing:.08em;opacity:.8;font-size:13px;font-weight:600}.result-title{font-family:var(--display);text-transform:uppercase;letter-spacing:.02em;margin:4px 0;font-size:44px;font-weight:800;line-height:1}.result-sub{opacity:.85;margin:0}.result-squares{letter-spacing:2px;word-break:break-all;font-size:22px;line-height:1.3}.result-stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:0;display:grid}.result-stats div{background:var(--paper);border-radius:10px;padding:10px 12px}.result-stats dt{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:12px;font-weight:600}.result-stats dd{font-family:var(--display);margin:2px 0 0;font-size:22px;font-weight:700}.result-actions{flex-wrap:wrap;gap:8px;display:flex}.result-real summary{cursor:pointer;font-weight:600}.result-real ul{color:var(--muted);margin:8px 0;padding-left:20px;font-size:14px}.result-final{margin:0;font-size:14px;font-weight:600}.notice{text-align:center;color:var(--muted);justify-items:center;gap:12px;margin:40px auto;display:grid}.footer{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:8px 16px;margin-top:32px;padding-top:16px;font-size:13px;display:flex}.dialog{background:var(--card);max-width:min(560px,100vw - 32px);color:var(--ink);border:0;border-radius:18px;padding:0;box-shadow:0 30px 80px -20px #00000080}.dialog::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0a100c8c}.dialog-body{max-height:calc(100vh - 64px);padding:22px 22px 20px;overflow:auto}.dialog h2{font-family:var(--display);text-transform:uppercase;margin:0 0 8px;font-size:30px}.dialog h3{font-family:var(--display);margin:18px 0 4px;font-size:19px}.dialog p{color:var(--muted);margin:0 0 10px}.dialog .btn{margin-top:8px}.flight-ball{fill:#fbfaf4;stroke:#c8102e;stroke-width:.9px;filter:drop-shadow(0 1px 1.5px #00000073)}.tracer{fill:none;stroke:var(--accent);stroke-width:2.4px;stroke-linecap:round;opacity:.55}.tracer.is-done{animation:.3s ease-out 40ms forwards tracer-fade}@keyframes tracer-fade{to{opacity:0}}.impact{fill:none;stroke:var(--ink);stroke-width:2px;opacity:0;transform-box:fill-box;transform-origin:50%;animation:.46s ease-out forwards impact}@keyframes impact{0%{opacity:.8;transform:scale(1)}to{opacity:0;transform:scale(3)}}.zone-wrap,.m-zone{position:relative}.stamp{pointer-events:none;z-index:3;place-items:center;display:grid;position:absolute;inset:0}.stamp-ink{font-family:var(--display);letter-spacing:.04em;background:color-mix(in oklab, var(--card) 82%, transparent);opacity:0;border:4px solid;border-radius:12px;padding:6px 18px 4px;font-size:clamp(30px,8vw,48px);font-weight:800;line-height:1;animation:1.5s cubic-bezier(.2,.9,.3,1.25) forwards stamp;box-shadow:0 10px 30px -12px #00000080}.stamp.is-big .stamp-ink{border-width:6px;padding:2px 26px 0;font-size:clamp(64px,18vw,112px)}.stamp.is-good .stamp-ink{color:var(--g-green)}.stamp.is-bad .stamp-ink{color:var(--g-red)}.stamp-mirror{display:inline-block;transform:scaleX(-1)}@keyframes stamp{0%{opacity:0;transform:rotate(-9deg)scale(2.4)}14%{opacity:1;transform:rotate(-9deg)scale(.9)}22%{transform:rotate(-9deg)scale(1.03)}30%{transform:rotate(-9deg)scale(1)}78%{opacity:1;transform:rotate(-9deg)scale(1)}to{opacity:0;transform:rotate(-9deg)scale(1.06)}}.is-shaking{animation:.52s cubic-bezier(.36,.07,.19,.97) .12s both shake}@keyframes shake{10%,90%{transform:translate(-2px,1px)rotate(-.3deg)}20%,80%{transform:translate(4px,-2px)rotate(.5deg)}30%,50%,70%{transform:translate(-6px,2px)rotate(-.6deg)}40%,60%{transform:translate(6px,-1px)rotate(.6deg)}}.sb-runs,.cb-runs{transform-origin:50% 0;animation:.42s cubic-bezier(.2,.8,.3,1.2) flip;display:inline-block}@keyframes flip{0%{opacity:.2;transform:perspective(160px)rotateX(-95deg)}}.light.is-on{animation:.32s cubic-bezier(.2,.9,.3,1.5) light-on}@keyframes light-on{0%{scale:.3}60%{scale:1.35}}.bases .base.is-on{animation:.9s ease-out base-glow}@keyframes base-glow{0%{filter:drop-shadow(0 0 7px var(--light-out)) drop-shadow(0 0 3px var(--light-out))}}.last-pitch{animation:.26s ease-out lp-in}@keyframes lp-in{0%{opacity:0;transform:translateY(6px)}}.last-pitch .grade{animation:.38s cubic-bezier(.2,.9,.3,1.6) .12s both chip-pop}@keyframes chip-pop{0%{opacity:0;scale:.3}}.btn-throw:not(:disabled){animation:1.6s ease-in-out infinite ready}@keyframes ready{50%{box-shadow:0 0 0 6px color-mix(in oklab, var(--accent) 22%, transparent)}}.pitch:active:not(:disabled){transform:scale(.95)}.preview>*{animation:.52s cubic-bezier(.2,.8,.2,1) both rise}.preview>:nth-child(2){animation-delay:60ms}.preview>:nth-child(3){animation-delay:.3s}.preview>:nth-child(4){animation-delay:.46s}.preview>:nth-child(5){animation-delay:.62s}@keyframes rise{0%{opacity:0;transform:translateY(14px)}}.pv-name{transform-origin:0 70%;animation:.64s cubic-bezier(.2,.9,.3,1.35) .14s both slam}@keyframes slam{0%{opacity:0;letter-spacing:.12em;transform:scale(1.6)}60%{opacity:1}}.pv-due>li{animation:.42s ease-out both rise}.pv-due>li:first-child{animation-delay:.62s}.pv-due>li:nth-child(2){animation-delay:.72s}.pv-due>li:nth-child(3){animation-delay:.82s}.pv-go{animation:1.8s ease-in-out 1.2s infinite ready}.result-head{position:relative}.result-title{transform-origin:0 70%;animation:.62s cubic-bezier(.2,.9,.3,1.35) both slam}.result-blown .result-head,.result-walkoff .result-head{animation:.56s cubic-bezier(.36,.07,.19,.97) .2s both shake}.result-squares .sq{animation:.36s cubic-bezier(.2,.9,.3,1.4) both sq-in;display:inline-block}@keyframes sq-in{0%{opacity:0;transform:perspective(120px)rotateX(-90deg)scale(.6)}}.confetti{pointer-events:none;z-index:2;width:0;height:0;position:absolute;top:55%;left:50%}.confetti span{opacity:0;border-radius:2px;height:11px;animation:1.8s cubic-bezier(.15,.75,.35,1) forwards confetti;position:absolute}@keyframes confetti{0%{opacity:1;transform:translate(0)rotate(0)}55%{opacity:1;transform:translate(var(--x), var(--y)) rotate(var(--r))}to{opacity:0;transform:translate(calc(var(--x) * 1.25), calc(var(--y) * -.4 + 140px)) rotate(calc(var(--r) * 1.6))}}@media (prefers-reduced-motion:reduce){.confetti{display:none}*,:before,:after{transition:none!important;animation:none!important}}.preview{gap:14px;max-width:880px;margin:6px auto 24px;display:grid}.pv-kicker{letter-spacing:.12em;text-transform:uppercase;color:var(--accent);font-size:12px;font-weight:700}.pv-gate{color:var(--muted);font-size:15px;font-style:italic}.pv-name{font-family:var(--display);text-transform:uppercase;letter-spacing:.01em;margin:2px 0 8px;font-size:clamp(40px,10vw,68px);font-weight:800;line-height:.95}.pv-tag{color:var(--muted);font-size:14px;font-weight:600}.pv-situation,.pv-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.pv-situation{gap:10px;padding:14px;display:grid}.pv-headline{font-family:var(--display);text-transform:uppercase;color:var(--accent);margin:0;font-size:30px;font-weight:800;line-height:1}.pv-score{margin:0;font-size:17px;font-weight:600}.pv-stakes{color:var(--muted);margin:0}.pv-wp{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:13px;font-weight:600}.pv-wp b{font-family:var(--display);color:var(--ink);letter-spacing:0;margin-left:4px;font-size:22px}.pv-grid{gap:12px;display:grid}@media (width>=720px){.pv-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)}}@media (width<=719px){.preview{gap:10px}.pv-name{margin-bottom:4px}.pv-situation{gap:8px;padding:12px}.pv-headline{font-size:26px}.pv-score{font-size:16px}}.pv-card{padding:12px 14px}.pv-title{font-family:var(--display);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 8px;font-size:14px}.pv-pitches{gap:8px;margin:0;padding:0;list-style:none;display:grid}.pv-pitches li{grid-template-columns:1fr auto;align-items:baseline;display:grid}.pv-pitch{font-family:var(--display);font-size:19px;font-weight:700}.pv-velo{font-variant-numeric:tabular-nums;font-weight:700}.pv-velo:after{content:" mph";color:var(--muted);font-size:12px;font-weight:500}.pv-meta{color:var(--muted);grid-column:1/-1;font-size:12px}.pv-due{counter-reset:due;gap:12px;margin:0;padding:0;list-style:none;display:grid}.pv-due>li{counter-increment:due;gap:1px;padding-left:30px;display:grid;position:relative}.pv-due>li:before{content:counter(due);background:var(--board);width:21px;height:21px;color:var(--board-ink);font-family:var(--display);border-radius:50%;place-items:center;font-size:13px;font-weight:800;display:grid;position:absolute;top:3px;left:0}.pv-batter{align-items:baseline;gap:8px;display:flex}.pv-bname{font-family:var(--display);font-size:19px;font-weight:700}.pv-bside{color:var(--muted);font-size:12px;font-weight:700}.pv-line{color:var(--muted);font-variant-numeric:tabular-nums;font-size:13px}.pv-notes{flex-wrap:wrap;gap:4px;margin:4px 0 0;padding:0;list-style:none;display:flex}.pv-notes li{background:var(--paper-2);border-radius:999px;padding:1px 9px;font-size:12px;font-weight:600}.pv-actions{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.pv-go{padding:14px 30px;font-size:22px}@media (width<=719px){.pv-actions{padding:12px 0 calc(12px + env(safe-area-inset-bottom));background:linear-gradient(to bottom, transparent, var(--paper) 35%);position:sticky;bottom:0}.pv-go{flex:1}}.app.is-mobile{padding:0 10px}.header.is-compact{flex-wrap:nowrap;height:48px;padding:0}.header.is-compact .brand-name{font-size:19px}.header.is-compact .brand-mark svg{width:22px;height:22px}.header.is-compact .nav button{padding:4px 10px;font-size:13px}.m-play{height:calc(100dvh - 48px);padding-bottom:calc(8px + env(safe-area-inset-bottom));flex-direction:column;gap:6px;display:flex}.m-play>*{order:0}.m-final{gap:12px;padding-bottom:16px;display:grid}.m-final .pbp{order:initial}.cboard{background:linear-gradient(180deg, var(--board), var(--board-2));color:var(--board-ink);font-family:var(--display);box-shadow:var(--shadow);border-radius:12px;flex:none;align-items:center;gap:12px;padding:6px 12px;display:flex}.cb-teams{gap:1px;display:grid}.cb-row{opacity:.7;justify-content:space-between;gap:10px;font-size:17px;font-weight:800;line-height:1.1;display:flex}.cb-row.is-batting{opacity:1}.cb-runs{font-variant-numeric:tabular-nums}.cb-inning{align-items:center;gap:2px;font-size:24px;font-weight:800;display:flex}.cb-counts{gap:2px;display:grid}.cb-counts>div{align-items:center;gap:4px;display:flex}.cb-counts .light{width:8px;height:8px}.cb-wp{justify-items:end;margin-left:auto;line-height:1.05;display:grid}.cb-wp-label{font-family:var(--body);color:var(--board-dim);text-transform:uppercase;letter-spacing:.08em;font-size:10px;font-weight:700}.cb-wp-value{font-variant-numeric:tabular-nums;font-size:22px;font-weight:800}.cb-wp-delta{font-family:var(--body);font-size:11px;font-weight:700}.cb-wp-delta.is-up{color:var(--light-ball)}.cb-wp-delta.is-down{color:var(--light-strike)}.mmatch{flex:none;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:6px;display:grid}.mmatch>div{background:var(--card);border:1px solid var(--line);border-radius:10px;min-width:0;padding:5px 9px}.mm-bat{border-left:3px solid var(--accent)!important}.mm-k{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;align-items:center;gap:6px;font-size:10.5px;font-weight:700;display:flex;overflow:hidden}.mm-ap{text-transform:none;letter-spacing:0;border-radius:999px;padding:0 6px;font-size:10px}.mm-n{font-family:var(--display);white-space:nowrap;text-overflow:ellipsis;font-size:17px;font-weight:700;line-height:1.15;overflow:hidden}.mm-s{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-variant-numeric:tabular-nums;font-size:11.5px;overflow:hidden}.last-pitch.is-compact{border-left-width:4px;flex:none;min-height:46px;padding:5px 10px}.last-pitch.is-compact .lp-row{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.last-pitch.is-compact .lp-result{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:15px;line-height:1.2;display:-webkit-box;overflow:hidden}.lp-best{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.m-zone{background:var(--card);border:1px solid var(--line);min-height:0;box-shadow:var(--shadow);border-radius:14px;flex-direction:column;flex:1 1 0;padding:4px 6px 2px;display:flex}.m-zone .overlay-tabs{flex:none;margin-bottom:0}.m-zone .overlay-tabs button{padding:2px 9px;font-size:12px}.strikezone.is-compact{flex-direction:column;flex:1 1 0;min-height:0;display:flex}.strikezone.is-compact svg{flex:1 1 0;width:100%;max-width:none;height:100%;min-height:0;max-height:none}.strikezone.is-compact .zone-legend{flex:none;margin:0 0 2px;font-size:11px}.pitches.is-compact{scrollbar-width:none;flex:none;gap:6px;display:flex;overflow-x:auto}.pitches.is-compact::-webkit-scrollbar{display:none}.pitches.is-compact .pitch{border-radius:10px;flex:1 0 auto;min-width:76px;padding:6px 10px}.pitches.is-compact .pitch-name{white-space:nowrap;font-size:15px}.pitches.is-compact .pitch-velo{white-space:nowrap;align-items:center;gap:6px;font-size:12px;display:flex}.pitch-dot{border-radius:999px;padding:0 6px;font-size:10px;font-weight:700}.call-bar.is-compact{flex:none;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"ibb summary throw";gap:10px;padding:6px 8px}.call-bar.is-compact .call-summary{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13px;line-height:1.2;display:-webkit-box;overflow:hidden}.call-bar.is-compact .btn-throw{padding:10px 18px;font-size:17px}.call-bar.is-compact .btn-link{grid-area:ibb;font-size:12px}
