body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}*{box-sizing:border-box}.player{align-items:center;display:flex;flex-direction:column;justify-content:center;position:absolute;transform:translate(-50%,-50%);transition:left .1s ease-out,top .1s ease-out;z-index:10}.player.animating{transition:none}.player-icon{font-size:2rem;font-weight:700;line-height:1;text-shadow:0 0 4px #000c,0 0 8px #00000080}.player-wr .player-icon{color:#f44;font-size:2.25rem}.player-cb .player-icon{color:#48f;font-size:2rem}.player-label{color:#fff;font-size:.625rem;font-weight:600;letter-spacing:.5px;margin-top:2px;text-shadow:0 0 3px #000000e6,1px 1px 2px #000c;text-transform:uppercase}.player:hover{z-index:20}.player:hover .player-icon{transform:scale(1.1)}@media (max-width:600px){.player-icon{font-size:1.5rem}.player-wr .player-icon{font-size:1.75rem}.player-cb .player-icon{font-size:1.5rem}.player-label{font-size:.5rem}}.route-selector{display:flex;flex-direction:column;gap:8px}.route-select{background-color:#fff;border:2px solid #e74c3c;border-radius:6px;color:#2c3e50;cursor:pointer;font-size:16px;padding:10px 12px;transition:border-color .2s ease,box-shadow .2s ease;width:100%}.route-select:focus,.route-select:hover:not(:disabled){border-color:#c0392b}.route-select:focus{box-shadow:0 0 0 3px #e74c3c4d;outline:none}.route-select-wr1{border-color:#e74c3c}.route-select-wr1:hover:not(:disabled){border-color:#c0392b}.route-select-wr1:focus{border-color:#c0392b;box-shadow:0 0 0 3px #e74c3c4d}.route-select-wr2{border-color:#f80}.route-select-wr2:hover:not(:disabled){border-color:#c60}.route-select-wr2:focus{border-color:#c60;box-shadow:0 0 0 3px #ff88004d}.route-select-wr3{border-color:#fc0}.route-select-wr3:hover:not(:disabled){border-color:#ca0}.route-select-wr3:focus{border-color:#ca0;box-shadow:0 0 0 3px #ffcc004d}.route-select-wr4{border-color:#888}.route-select-wr4:hover:not(:disabled){border-color:#666}.route-select-wr4:focus{border-color:#666;box-shadow:0 0 0 3px #8888884d}.route-select-rb{border-color:#f60}.route-select-rb:hover:not(:disabled){border-color:#cc5200}.route-select-rb:focus{border-color:#cc5200;box-shadow:0 0 0 3px #ff66004d}.route-select:disabled{background-color:#ecf0f1;border-color:#bdc3c7;color:#95a5a6;cursor:not-allowed}.route-description{color:#7f8c8d;font-size:13px;font-style:italic;margin:0}.coverage-selector{display:flex;flex-direction:column;gap:8px}.coverage-select{background-color:#fff;border:2px solid #3498db;border-radius:6px;color:#2c3e50;cursor:pointer;font-size:16px;padding:10px 12px;transition:border-color .2s ease,box-shadow .2s ease;width:100%}.coverage-select:hover:not(:disabled){border-color:#2980b9}.coverage-select:focus{border-color:#2980b9;box-shadow:0 0 0 3px #3498db4d;outline:none}.coverage-select:disabled{background-color:#ecf0f1;border-color:#bdc3c7;color:#95a5a6;cursor:not-allowed}.coverage-description{color:#7f8c8d;font-size:13px;font-style:italic;margin:0}.play-button{align-items:center;background:linear-gradient(135deg,#27ae60,#2ecc71);border:none;border-radius:8px;box-shadow:0 4px 6px #27ae604d;color:#fff;cursor:pointer;display:flex;font-size:18px;font-weight:600;gap:10px;justify-content:center;padding:14px 24px;transition:all .2s ease;width:100%}.play-button:hover:not(:disabled){background:linear-gradient(135deg,#219a52,#27ae60);box-shadow:0 6px 12px #27ae6066;transform:translateY(-2px)}.play-button:active:not(:disabled){box-shadow:0 2px 4px #27ae604d;transform:translateY(0)}.play-button:focus{box-shadow:0 0 0 3px #27ae6080;outline:none}.play-button:disabled{background:linear-gradient(135deg,#95a5a6,#bdc3c7);box-shadow:none;cursor:not-allowed;transform:none}.play-button.playing{background:linear-gradient(135deg,#f39c12,#e67e22);box-shadow:0 4px 6px #f39c124d}.play-icon{font-size:20px;line-height:1}.play-text{letter-spacing:.5px}.animation-engine{inset:0;pointer-events:none;position:absolute}.animation-engine .player{align-items:center;display:flex;flex-direction:column;pointer-events:auto;position:absolute;transform:translate(-50%,-50%);z-index:10}.animation-engine .player-icon{font-size:2rem;font-weight:700;line-height:1;text-shadow:0 2px 4px #0000004d}.animation-engine .player-label{font-size:.625rem;font-weight:600;margin-top:2px;text-shadow:0 1px 2px #00000080;text-transform:uppercase}.animation-engine .player-wr,.animation-engine .player-wr .player-icon{color:#f44}.animation-engine .player-wr .player-label{color:#fcc}.animation-engine .player-wr2,.animation-engine .player-wr2 .player-icon{color:#f80}.animation-engine .player-wr2 .player-label{color:#fda}.animation-engine .player-wr3,.animation-engine .player-wr3 .player-icon{color:#fc0}.animation-engine .player-wr3 .player-label{color:#fe8}.animation-engine .player-wr4,.animation-engine .player-wr4 .player-icon{color:#888}.animation-engine .player-wr4 .player-label{color:#bbb}.animation-engine .player-cb1,.animation-engine .player-cb1 .player-icon{color:#44f}.animation-engine .player-cb1 .player-label{color:#ccf}.animation-engine .player-dblb1,.animation-engine .player-dblb1 .player-icon{color:#94f}.animation-engine .player-dblb1 .player-label{color:#dbf}.animation-engine .player-fs,.animation-engine .player-fs .player-icon{color:#0cc}.animation-engine .player-fs .player-label{color:#aff}.animation-engine .player-cb2,.animation-engine .player-cb2 .player-icon{color:#ff66b2}.animation-engine .player-cb2 .player-label{color:#fcd}.animation-engine .player-dblb2,.animation-engine .player-dblb2 .player-icon{color:#6f6}.animation-engine .player-dblb2 .player-label{color:#cfc}.animation-engine .player-ss,.animation-engine .player-ss .player-icon{color:#fa0}.animation-engine .player-ss .player-label{color:#fd8}.animation-engine .player-lb,.animation-engine .player-lb .player-icon{color:#c84}.animation-engine .player-lb .player-label{color:#db9}.animation-engine .player-center,.animation-engine .player-center .player-icon{color:#fff}.animation-engine .player-center .player-label{color:#ccc}.animation-engine .player-qb,.animation-engine .player-qb .player-icon{color:#0c0}.animation-engine .player-qb .player-label{color:#afa}.animation-engine .player-rb,.animation-engine .player-rb .player-icon{color:#f60}.animation-engine .player-rb .player-label{color:#fc9}.animation-engine .player:after{border-radius:50%;content:"";height:8px;opacity:.3;position:absolute;width:8px;z-index:-1}.animation-engine .player-wr:after{background-color:#f44}.animation-engine .player-wr2:after{background-color:#f80}.animation-engine .player-wr3:after{background-color:#fc0}.animation-engine .player-wr4:after{background-color:#888}.animation-engine .player-cb1:after{background-color:#44f}.animation-engine .player-dblb1:after{background-color:#94f}.animation-engine .player-fs:after{background-color:#0cc}.animation-engine .player-cb2:after{background-color:#ff66b2}.animation-engine .player-dblb2:after{background-color:#6f6}.animation-engine .player-ss:after{background-color:#fa0}.animation-engine .player.playing{filter:drop-shadow(0 0 8px currentColor)}.animation-engine .player.playing .player-icon{animation:pulse .5s ease-in-out infinite alternate}@keyframes pulse{0%{transform:scale(1)}to{transform:scale(1.1)}}.play-art{height:100%;inset:0;pointer-events:none;position:absolute;width:100%;z-index:5}.zone-oval{stroke:none}.route-line{fill:none;stroke-width:.4;stroke-linecap:round;stroke-linejoin:round;opacity:.8}.route-wr1{stroke:#f44}.route-wr2{stroke:#f80}.route-wr3{stroke:#fc0}.route-wr4{stroke:#888}.route-rb{stroke:#0c6}.simulation-page{grid-gap:24px;box-sizing:border-box;display:grid;gap:24px;grid-template-columns:1fr 300px;min-height:calc(100vh - 80px);padding:24px}.simulation-area{align-items:center;display:flex;justify-content:center}.simulation-container{aspect-ratio:14/10;background:linear-gradient(180deg,#2d5a27 0,#3d7a37 50%,#2d5a27);border:4px solid #fff;border-radius:8px;box-shadow:0 8px 32px #0000004d;max-width:1200px;overflow:hidden;position:relative;width:100%}.field-lines{display:flex;flex-direction:column;inset:0;justify-content:space-evenly;pointer-events:none;position:absolute}.yard-line{background-color:#ffffff4d;height:2px;width:100%}.line-of-scrimmage{background-color:#ffd70099;bottom:15%;height:3px;left:0;position:absolute;right:0;width:100%}.field-placeholder{align-items:center;color:#ffffff80;display:flex;font-size:1.25rem;font-weight:500;inset:0;justify-content:center;position:absolute}.control-panel{background-color:#f8f9fa;border-radius:12px;box-shadow:0 4px 16px #00000026;height:-webkit-fit-content;height:fit-content;padding:24px;position:-webkit-sticky;position:sticky;top:24px}.control-panel h2{border-bottom:2px solid #e0e0e0;color:#1a1a2e;font-size:1.25rem;font-weight:600;margin:0 0 24px;padding-bottom:12px}.control-section{margin-bottom:20px}.control-section:last-child{margin-bottom:0}.control-label{color:#555;display:block;font-size:.875rem;font-weight:500;margin-bottom:8px}.control-placeholder{background-color:#e9ecef;border:2px dashed #ced4da;border-radius:6px;color:#6c757d;font-size:.875rem;padding:12px;text-align:center}.play-button-placeholder{background-color:#d4edda;border-color:#28a745;color:#155724;font-weight:600;margin-top:12px;padding:16px}.play-art-toggle{background-color:#fff;border:2px solid #6c757d;border-radius:6px;color:#6c757d;cursor:pointer;font-size:.875rem;font-weight:500;padding:10px 16px;transition:all .2s ease;width:100%}.play-art-toggle:hover{background-color:#f8f9fa;border-color:#495057;color:#495057}.play-art-toggle.active{background-color:#007bff;border-color:#007bff;color:#fff}.play-art-toggle.active:hover{background-color:#0056b3;border-color:#0056b3}@media (max-width:900px){.simulation-page{grid-template-columns:1fr;grid-template-rows:auto auto}.simulation-area{order:1}.control-panel{order:2;position:static}.simulation-container{max-width:100%}}@media (max-width:600px){.simulation-page{gap:16px;padding:16px}.control-panel{padding:16px}.control-panel h2{font-size:1.1rem;margin-bottom:16px}}.App{background-color:#1a1a2e;display:flex;flex-direction:column;min-height:100vh}.app-header{background-color:#16213e;box-shadow:0 2px 4px #0003;padding:15px 20px}.app-header h1{color:#fff;font-size:1.5rem;font-weight:600;margin:0}.app-main{display:flex;flex:1 1;flex-direction:column}.app-footer{background-color:#16213e;color:#888;font-size:.85rem;padding:12px 20px;text-align:center}
/*# sourceMappingURL=main.5bf89ac8.css.map*/