:root{--ink:#14231a;--ink-soft:#43584a;--paper:#f5f7f2;--card:#fff;--line:#dfe5da;--brand:#14532d;--brand-bright:#2f9e44;--offside:#d93843;--onside:#2f9e44;--neutral:#d98f00;--radius:16px;--shadow:0 18px 40px -24px #14532d73}*{box-sizing:border-box}html{scroll-behavior:smooth}body{color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.6}h1,h2,h3{letter-spacing:-.02em;line-height:1.15}p{margin:0 0 1rem}.hero{color:#f2fbf3;background:radial-gradient(1200px 400px at 80% -10%,#2f9e448c,#0000 60%),linear-gradient(160deg,#0e3a20,#14532d 60%,#17603a);padding:clamp(3rem,8vw,6rem) 1.5rem clamp(2.5rem,6vw,4rem)}.hero-kicker{text-transform:uppercase;letter-spacing:.18em;color:#a9e6b5;margin-bottom:.75rem;font-size:.78rem;font-weight:700}.hero h1{max-width:16ch;margin:0 0 1rem;font-size:clamp(2.4rem,6vw,4rem)}.hero-lede{color:#d9f2dd;max-width:62ch;font-size:clamp(1.05rem,2vw,1.25rem)}.legend{color:#d9f2dd;flex-wrap:wrap;gap:.5rem 1.4rem;margin:1.5rem 0 0;padding:0;font-size:.95rem;list-style:none;display:flex}.legend li{align-items:center;gap:.55rem;display:flex}.dot{border:2px solid #00000059;border-radius:50%;flex:none;width:1rem;height:1rem}.dot-red{background:#e23b3b}.dot-blue{background:#2f6bde}.dot-keeper{background:#f2c200}main{max-width:1120px;margin:0 auto;padding:0 1.5rem}.summary{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin:-2rem auto 1rem;padding:clamp(1.5rem,4vw,2.5rem);position:relative}.summary h2{margin-top:0}.summary-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.5rem;display:grid}.summary-grid article{background:#f2f7f0;border-radius:12px;padding:1.25rem 1.5rem}.summary-grid h3{color:var(--brand);margin-top:0;font-size:1.05rem}.summary-grid ul{margin:0;padding-left:1.15rem}.summary-grid li+li{margin-top:.4rem}.rule{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:center;gap:clamp(1.5rem,4vw,3.5rem);padding:clamp(2.5rem,6vw,4.5rem) 0;scroll-margin-top:1.5rem;display:grid}.rule:first-of-type{border-top:0}.rule-kicker{text-transform:uppercase;letter-spacing:.14em;color:var(--brand-bright);margin-bottom:.5rem;font-size:.75rem;font-weight:700}.rule h2{margin:0 0 1rem;font-size:clamp(1.6rem,3.4vw,2.3rem)}.rule-body :last-child{margin-bottom:0}.rule-body strong{color:var(--brand)}.rule-demo{min-width:0}.pitch{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin:0;overflow:hidden}.pitch-stage{background:#1d4d22}.pitch-canvas{aspect-ratio:119/82;touch-action:none;width:100%;display:block}.pitch-bar{border-top:1px solid var(--line);background:#fbfcfa;align-items:center;gap:.75rem;padding:.75rem 1rem;display:flex}.pitch-toggle{border:1px solid var(--line);width:2.25rem;height:2.25rem;color:var(--brand);cursor:pointer;background:#fff;border-radius:50%;flex:none;place-items:center;transition:background .15s,color .15s,border-color .15s;display:grid}.pitch-toggle:hover{background:var(--brand);border-color:var(--brand);color:#fff}.pitch-toggle .icon{fill:currentColor;width:1.15rem;height:1.15rem}.pitch-toggle .icon-play,.pitch-toggle[data-state=paused] .icon-pause{display:none}.pitch-toggle[data-state=paused] .icon-play{display:block}.pitch-range{appearance:none;cursor:pointer;background:#dbe4d8;border-radius:999px;flex:1;min-width:0;height:.4rem}.pitch-range::-webkit-slider-thumb{appearance:none;background:var(--brand);border:2px solid #fff;border-radius:50%;width:1.05rem;height:1.05rem;box-shadow:0 1px 4px #0000004d}.pitch-range::-moz-range-thumb{background:var(--brand);border:2px solid #fff;border-radius:50%;width:1.05rem;height:1.05rem}.pitch-time{font-variant-numeric:tabular-nums;color:var(--ink-soft);text-align:right;flex:none;min-width:3.2rem;font-size:.85rem}.pitch-caption{color:var(--ink-soft);border-top:1px solid var(--line);background:#fff;min-height:3.4rem;padding:.85rem 1rem 1rem;font-size:.92rem;transition:color .2s}.pitch-caption[data-tone=offside]{color:var(--offside);font-weight:600}.pitch-caption[data-tone=onside]{color:var(--onside);font-weight:600}.pitch-caption[data-tone=neutral]{color:#9a6a00;font-weight:600}.footer{max-width:1120px;color:var(--ink-soft);border-top:1px solid var(--line);margin:0 auto;padding:2rem 1.5rem 4rem;font-size:.9rem}@media (width<=860px){.rule{grid-template-columns:1fr}.hero h1{max-width:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition-duration:.01ms!important}}
