.arcade-page{background:#f4f0e5;color:#11223c}.arcade-shell{max-width:1040px;margin:20px auto 60px;padding:0 20px}.arcade-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:32px 0}.arcade-heading h1{font-size:clamp(36px,6vw,64px);letter-spacing:-.055em;margin:0;line-height:1}.title-dot{color:#ed5939}.arcade-heading>p{font-size:16px;line-height:1.5;color:#556270}.arcade-eyebrow{color:#645438;font-size:11px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;margin:0 0 12px}.arcade-lobby{display:grid;grid-template-columns:1fr 1.2fr;border:2px solid #11223c;border-radius:20px;overflow:hidden;background:#fffaf0;box-shadow:6px 6px 0 #11223c}.lobby-copy{padding:32px}.lobby-copy h2{font-size:clamp(28px,4vw,40px);line-height:1.05;margin:0 0 16px;letter-spacing:-.04em}.lobby-copy>p{line-height:1.55;color:#526071}.lobby-art{background:#144b40;min-height:340px;position:relative;overflow:hidden;display:grid;place-items:center}.lobby-art:before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent,transparent 18px,#ffffff05 18px,#ffffff05 19px)}.mini-diamond{height:160px;width:160px;transform:rotate(45deg);border:16px solid #e0ad76;background:#2c9c61;box-shadow:0 0 0 20px #226d50;position:relative}.mini-diamond i{width:17px;height:17px;background:#fff7dc;position:absolute}.mini-diamond i:nth-child(1){left:-16px;top:-16px}.mini-diamond i:nth-child(2){right:-16px;top:-16px}.mini-diamond i:nth-child(3){right:-16px;bottom:-16px}.mini-diamond i:nth-child(4){left:-16px;bottom:-16px}.art-ball{font-size:88px;position:absolute;top:42px;right:24px;filter:drop-shadow(6px 6px 0 #11223c)}.art-stamp{position:absolute;bottom:27px;left:28px;color:#ffe28c;font:900 14px/1.5 monospace;letter-spacing:.08em;transform:rotate(-5deg)}.club-picker{border:0;padding:0;margin:20px 0;display:grid;grid-template-columns:1fr 1fr;gap:9px}.club-picker legend{font-weight:800;margin-bottom:10px}.club-picker label{cursor:pointer;min-width:0}.club-picker input{position:absolute;opacity:0}.club-picker span{display:flex;flex-direction:column;padding:14px 12px;border:2px solid #c4c6c4;border-radius:10px;height:100%;gap:7px}.club-picker input:checked+span{border-color:#11223c;background:#ffdf7c;box-shadow:3px 3px 0 #11223c}.club-picker input:focus-visible+span{outline:3px solid #2878f8;outline-offset:3px}.club-picker b{font-size:17px}.club-picker small{font-size:12px;line-height:1.4;color:#39495b}.pace-label{font-size:13px;display:flex;align-items:center;gap:12px;margin-bottom:18px;flex-wrap:wrap}.arcade-page select{padding:9px;background:#fff;border:1px solid #8294a0;border-radius:7px;font:inherit;min-width:0;max-width:100%}.arcade-primary,.arcade-secondary,.throw-buttons button{min-height:48px;border:2px solid #11223c;padding:12px 18px;font:800 16px/1.25 system-ui,sans-serif;border-radius:10px;cursor:pointer;box-shadow:0 3px 0 #11223c;color:#11223c;background:#ffdd73}.arcade-primary{font-family:inherit;font-weight:900;font-size:16px}.arcade-primary:hover{background:#ffe8a3}.arcade-secondary{background:#e4edf7;font-family:inherit;font-weight:800}.arcade-page button:active{transform:translateY(2px);box-shadow:none}.arcade-page button:disabled{opacity:.5;cursor:not-allowed}.arcade-page :focus-visible{outline:3px solid #2878f8;outline-offset:3px}.lobby-copy>.arcade-primary{width:100%}.lobby-copy .lobby-footnote{font-size:11px;margin:15px 0 0}.arcade-console{max-width:860px;margin:0 auto;border:3px solid #11223c;border-radius:16px;overflow:hidden;background:#11223c;box-shadow:7px 7px 0 #c2bdad;scroll-margin-top:12px}.arcade-scoreboard{display:grid;grid-template-columns:1fr 2fr 1fr;gap:8px;color:#fff4d4;padding:13px 16px;font-family:monospace}.club-score{display:grid;grid-template-columns:1fr auto;align-content:start;gap:3px 8px}.club-score span{color:#80bbff;font-size:13px;font-weight:900}.club-score strong{font-size:30px;grid-row:span 2;line-height:1}.club-score small{font-size:8px;letter-spacing:.06em}.cpu-score span{color:#ff9b74}.score-center{display:flex;align-items:center;flex-direction:column;gap:4px}.score-center>b{font-size:12px;color:#ffdd73}.score-center>span{font-size:11px}.base-lights{display:grid;grid-template-columns:10px 10px;gap:3px;transform:rotate(45deg);margin:3px 0}.base-lights i{width:10px;height:10px;border:1px solid #f4eee0;background:#304660}.base-lights i:nth-child(2){grid-column:1}.base-lights i.on{background:#ffdd73;border-color:#ffdd73}.game-screen{height:clamp(245px,42svh,460px);position:relative;background:#74c4f8;overflow:hidden}.game-screen canvas{display:block;width:100%;height:100%;image-rendering:pixelated;touch-action:pan-y}.screen-corner,.screen-view{position:absolute;top:10px;font:900 10px monospace;letter-spacing:.07em;background:#11223ccb;color:#fff3d3;padding:5px 8px;border-radius:3px;pointer-events:none}.screen-corner{left:10px}.screen-view{right:10px}.pitch-timing{height:28px;display:flex;align-items:center;gap:12px;padding:5px 14px;color:#ffdd73;background:#0d1b30;font:700 10px monospace}.pitch-timing>div{height:9px;background:#395065;flex:1;position:relative;overflow:hidden;border-radius:2px}.contact-window{position:absolute;left:90%;width:9%;height:100%;background:#50c884}.pitch-timing #pitch-fill{position:absolute;width:4px;height:100%;background:#fff6d9;left:0}.game-call{padding:12px 18px;background:#fff8e8;min-height:78px}.game-call>span{font-size:10px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:#68614e}.game-call p{font-size:14px;font-weight:650;line-height:1.4;margin:5px 0 0}.game-controls{background:#f4f0e5;padding:14px 18px;min-height:80px}.game-controls small{font-size:10px;opacity:.65;display:inline-block;margin-left:6px}.ready-controls{display:flex;gap:12px;align-items:center}.ready-controls>button{flex:1}.ready-controls label{font-size:12px;display:flex;align-items:center;gap:7px}.bat-controls{display:grid;grid-template-columns:2fr 1fr;gap:10px}.bat-controls>button{min-height:60px}.defense-controls{display:grid;grid-template-columns:128px 1fr;align-items:center;gap:20px}.direction-pad{display:grid;grid-template-columns:repeat(3,40px);grid-template-rows:repeat(3,36px);gap:3px;touch-action:none;user-select:none}.direction-pad button{border:1px solid #516477;background:#dbe6f0;color:#11223c;border-radius:5px;font-size:17px;cursor:pointer;touch-action:none;padding:0}.direction-pad button[data-direction=up]{grid-column:2}.direction-pad button[data-direction=left]{grid-row:2;grid-column:1}.direction-pad>span{grid-row:2;grid-column:2;display:grid;place-items:center;font-size:23px;color:#8598a7}.direction-pad button[data-direction=right]{grid-row:2;grid-column:3}.direction-pad button[data-direction=down]{grid-row:3;grid-column:2}.defense-actions p{font-size:12px;line-height:1.4;margin:0 0 8px}.defense-actions>button{width:100%;font-size:13px;min-height:44px}.throw-buttons{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.throw-buttons button{padding:8px 4px;min-height:44px;font:800 13px system-ui;border-radius:6px;box-shadow:0 2px 0 #11223c}.throw-buttons small{display:none}.game-toolbar{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;color:#dddace;font-size:12px}.game-toolbar button{color:#fff0c9;background:transparent;border:1px solid #4f5f73;border-radius:6px;min-height:36px;padding:6px 10px;font:inherit;cursor:pointer}.game-toolbar small{font-size:9px;opacity:.65}.game-toolbar label{display:flex;align-items:center;gap:5px}.game-toolbar input{accent-color:#ffdd73}.result-overlay,.pause-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#11223caa;text-align:center;padding:18px;gap:12px;color:#fff5d8}.result-overlay>strong{font:900 clamp(26px,6vw,48px)/1.1 monospace;letter-spacing:-.06em;text-shadow:4px 4px 0 #11223c;transform:rotate(-3deg);color:#ffdd73}.result-overlay[data-kind=out]>strong{color:#ff9b74}.result-overlay[data-kind=safe]>strong{color:#81f0ac}.result-overlay>span{font:800 12px monospace;text-transform:uppercase;letter-spacing:.05em}.pause-overlay{background:#11223ceb;z-index:2}.pause-overlay strong{font:900 36px monospace;color:#ffdd73}.pause-overlay span{font-size:14px}.close-play{width:min(350px,100%);height:94px;display:grid;grid-template-columns:1fr 1fr;border:3px solid #fff2d7;transform:rotate(-2deg);box-shadow:5px 5px 0 #11223c;animation:comic-in .22s ease-out}.close-play>div{position:relative;overflow:hidden}.runner-panel{background:repeating-linear-gradient(0deg,#2878f8,#2878f8 4px,#1858b8 5px,#1858b8 6px);border-right:4px solid #fff2d7}.glove-panel{background:#e45c38}.close-play b{font:900 10px monospace;position:absolute;bottom:4px;left:8px;color:white;letter-spacing:.1em}.pixel-runner{position:absolute;width:28px;height:27px;background:#fff5d4;top:36px;left:50%;transform:rotate(-25deg);animation:runner-slide .45s ease-out}.pixel-runner:before{content:'';position:absolute;width:19px;height:19px;background:#bc8050;top:-20px;left:13px;box-shadow:0 -6px 0 #11223c}.pixel-runner:after{content:'';position:absolute;width:12px;height:29px;background:#11223c;top:22px;left:-4px;transform:rotate(55deg);box-shadow:18px -5px 0 #11223c}.pixel-glove{position:absolute;top:9px;left:39%;font-size:62px;color:#ffbd61;line-height:1;text-shadow:4px 4px 0 #804028;transform:rotate(-25deg)}.pixel-glove:after{content:'';position:absolute;width:13px;height:13px;background:white;top:28px;left:22px;border-radius:50%}.pixel-base{position:absolute;bottom:15px;right:20px;width:35px;height:8px;background:#fff4d4;transform:skewX(-20deg)}.game-summary{max-width:860px;margin:24px auto 0;padding:30px;background:#fff9e9;border:2px solid #11223c;border-radius:14px;box-shadow:5px 5px 0 #11223c;text-align:center}.game-summary h2{font-size:38px;letter-spacing:-.04em;margin:6px 0}.game-summary>p{line-height:1.5}.game-summary>a{display:block;margin-top:20px;font-weight:750;color:#184c98}.game-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:20px 0}.game-stats>div{background:#e8eedf;padding:16px 8px;border-radius:8px}.game-stats strong{font-size:25px;display:block}.game-stats span{font-size:11px}.arcade-guide{margin:32px auto 0;max-width:860px;border-top:1px solid #c5c1b4;padding-top:16px}.arcade-guide summary{cursor:pointer;min-height:44px;font-weight:800}.guide-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.guide-grid h3{font-size:15px}.arcade-guide p{font-size:13px;line-height:1.6;color:#465668}.arcade-footer{text-align:center;font-size:12px;margin:30px 0;line-height:2;color:#586470}.arcade-footer a{display:block;color:#164c8f;font-weight:750}.game-error{background:#fff0d9;border:2px solid #b35425;padding:18px;border-radius:10px;line-height:1.6}.arcade-page [hidden]{display:none!important}#continue-game{width:100%}@keyframes comic-in{from{transform:translateX(50px) rotate(-2deg);opacity:0}to{transform:translateX(0) rotate(-2deg);opacity:1}}@keyframes runner-slide{from{left:10%}to{left:50%}}
@media(max-width:600px){.arcade-shell{padding:0 12px;margin-top:12px}.arcade-heading{margin:18px 0;gap:12px}.arcade-heading h1{font-size:36px}.arcade-heading>p{display:none}.arcade-heading .arcade-eyebrow{font-size:9px}.arcade-lobby{grid-template-columns:1fr;box-shadow:4px 4px 0 #11223c}.lobby-art{min-height:145px}.mini-diamond{width:85px;height:85px;border-width:10px}.mini-diamond i{width:11px;height:11px}.mini-diamond i:nth-child(1){left:-10px;top:-10px}.mini-diamond i:nth-child(2){right:-10px;top:-10px}.mini-diamond i:nth-child(3){right:-10px;bottom:-10px}.mini-diamond i:nth-child(4){left:-10px;bottom:-10px}.art-ball{font-size:55px;top:12px;right:24px}.art-stamp{font-size:10px;bottom:12px;left:18px}.lobby-copy{padding:24px 20px}.lobby-copy h2{font-size:30px}.club-picker span{padding:11px 9px}.club-picker b{font-size:15px}.arcade-scoreboard{padding:10px;gap:8px}.club-score{grid-template-columns:1fr;gap:2px}.club-score strong{font-size:27px;grid-row:auto}.club-score span{font-size:11px}.club-score small{font-size:7px}.score-center>b{font-size:10px}.score-center>span{font-size:10px}.game-screen{height:clamp(220px,34svh,340px)}.game-call{min-height:76px;padding:10px 12px}.game-call p{font-size:13px}.game-controls{padding:11px 12px}.defense-controls{gap:12px;grid-template-columns:128px 1fr}.throw-buttons{grid-template-columns:1fr 1fr}.throw-buttons button{min-height:38px}.game-toolbar{padding:8px;font-size:11px}.game-toolbar small{display:none}.game-toolbar button{padding:6px 8px}.game-summary{padding:24px 16px}.game-summary h2{font-size:30px}.game-stats{gap:7px}.guide-grid{grid-template-columns:1fr;gap:8px}.pitch-timing{padding:5px 10px;font-size:9px}.ready-controls{flex-wrap:wrap}.ready-controls label{width:100%}}
@media(prefers-reduced-motion:reduce){.close-play,.pixel-runner{animation:none}.result-overlay>strong{transform:none}}
.arcade-console { overflow-anchor: none; }

/* Touch leads; the keyboard remains an optional alternative in Help. */
.arcade-page button { touch-action: manipulation; -webkit-tap-highlight-color: transparent; }
.bat-controls { grid-template-columns: 2fr 1fr; gap: 12px; }
.bat-controls>button { min-height: 70px; font-size: 21px; letter-spacing: .035em; }
.defense-controls { grid-template-columns: 138px minmax(0,1fr); }
.touch-steering { display: flex; flex-direction: column; align-items: center; gap: 5px; }
.touch-steering>span { font: 800 9px monospace; letter-spacing: .05em; color: #556578; }
.touch-stick { position: relative; display: grid; place-items: center; width: 132px; height: 132px; border: 2px solid #899bac; border-radius: 50%; background: radial-gradient(circle,#94a8be 0 16%,#c8d5e0 17% 45%,#e3ebf1 46%); touch-action: none; user-select: none; -webkit-user-select: none; box-shadow: inset 0 3px 8px #11223c20; }
.touch-stick[aria-disabled=true] { opacity: .4; }
.stick-arrows { font-size: 95px; line-height: 1; color: #7288a1; opacity: .65; position: absolute; }
.stick-knob { width: 56px; height: 56px; border: 3px solid #11223c; border-radius: 50%; background: #ffdf80; box-shadow: 0 4px 0 #11223c; pointer-events: none; }
.defense-actions>button { min-height: 52px; }
.throw-buttons { grid-template-columns: 1fr 1fr; gap: 8px; }
.throw-buttons button { min-height: 50px; font-size: 15px; }
.pitch-timing .contact-window { left: 75%; width: 24%; }
.game-toolbar button { min-height: 44px; }
.game-screen canvas { image-rendering: auto; }
@media(max-width:600px) { .defense-controls { grid-template-columns: 132px minmax(0,1fr); gap: 12px; } .game-controls { padding: 12px 10px; } }
@media(max-height:700px) and (max-width:600px) { .game-screen { height: 185px; } .game-call { min-height: 62px; } }

/* Learning controls: one action to start, then an untimed baseball decision. */
.defense-controls{display:block}.defense-actions p{font-size:14px;line-height:1.5}.ready-controls .arcade-primary,#continue-game{min-height:64px;font-size:19px}.throw-buttons{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.throw-buttons button{min-height:56px;font-size:16px}.arcade-scoreboard{grid-template-columns:minmax(0,1fr) minmax(0,1.8fr) minmax(0,1fr)}.club-score{min-width:0}.club-score span{overflow-wrap:anywhere}

.club-score span,.cpu-score span{color:#e2e7ef}.runner-panel{background:var(--your-uniform,#142b4f)}.club-picker label:first-of-type b:before,.club-picker label:last-of-type b:before{content:"";display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px;border:1px solid #687789;background:#142b4f}.club-picker label:last-of-type b:before{background:#b9bec6}

/* Keep the full scoreboard visible when entering the game on desktop. */
.arcade-page .landing-header{position:relative}
.game-summary{scroll-margin-top:12px}
/* Field labels identify positions without covering the ball or the play. */
.field-position-labels{position:absolute;inset:0;pointer-events:none;z-index:1}.field-position-label{position:absolute;transform:translate(-50%,-100%);background:#142238e8;border:1px solid #ffcf54;border-radius:3px;color:#fff;padding:1px 3px;font:800 9px/1.2 monospace;white-space:nowrap}.field-position-label[data-role=cover]{border-color:#67b9ff}.field-position-label[data-role=cutoff]{border-color:#d3a1ff}.field-position-label[data-role=backup]{border-color:#72dcac}.field-position-label.is-selected{outline:2px solid #fff;z-index:1}.result-overlay{z-index:2}.pause-overlay{z-index:3}
.coverage-picker{display:grid;gap:8px;font-size:13px;font-weight:750;margin:18px 0}.coverage-picker select{width:100%;min-height:48px;font-size:14px}.review-controls{display:flex;align-items:center;gap:8px;padding:10px;background:#e6edf4;flex-wrap:wrap}.review-controls button{min-height:44px;border:1px solid #11223c;border-radius:7px;font:750 13px/1.3 system-ui;padding:8px 12px;background:#ffdf80;cursor:pointer}.review-controls label{flex:1;min-width:120px;display:flex;align-items:center;gap:8px;font:750 11px system-ui}.review-controls input{min-width:0;width:100%;height:44px;accent-color:#173867}.coach-call:empty{display:none}.game-call .coach-call{font-size:11px;font-weight:600;color:#526579;margin:6px 0 0}.assignment-panel{max-width:860px;margin:20px auto;background:#fff8e8;border:2px solid #21344e;border-radius:12px;padding:16px}.assignment-panel summary{min-height:44px;font-size:15px;font-weight:850;cursor:pointer}.assignment-panel>p{font-size:13px;line-height:1.5}.assignment-positions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.assignment-positions button{min-height:52px;border:1px solid #a3b2c2;border-left:5px solid #ffcf54;border-radius:7px;padding:8px;background:#fff;font:750 12px/1.4 system-ui;text-align:left;color:#132b46;cursor:pointer}.assignment-positions button[data-role=cover]{border-left-color:#67b9ff}.assignment-positions button[data-role=cutoff]{border-left-color:#b27ae0}.assignment-positions button[data-role=backup]{border-left-color:#44ad7c}.assignment-positions button[aria-pressed=true]{background:#172b49;color:#fff}.assignment-card{padding:14px;background:#e9eff5;border-radius:8px;margin-top:12px}.assignment-card h3{font-size:15px;margin:0 0 6px}.assignment-card p{font-size:13px;line-height:1.55;margin:0}.assignment-legend{display:flex;gap:12px;flex-wrap:wrap}.assignment-legend span:nth-child(1){color:#806018}.assignment-legend span:nth-child(2){color:#1c63a0}.assignment-legend span:nth-child(3){color:#7742a3}.assignment-legend span:nth-child(4){color:#267450}.coverage-note{color:#5b6877}.game-toolbar label{flex-shrink:0}.game-toolbar #restart-game{max-width:155px;white-space:normal}.game-toolbar{gap:6px}.game-controls:has(.defense-controls:not([hidden])){padding-top:8px}
@media(max-width:600px){.assignment-positions{grid-template-columns:repeat(2,minmax(0,1fr))}.assignment-panel{padding:12px}.assignment-positions button{font-size:12px}.game-toolbar #restart-game{max-width:126px}.game-toolbar label{font-size:11px}.review-controls{padding:8px}.field-position-label{font-size:8px}}

/* Random situations keep recognition and the throw in the same touch-control area. */
.lobby-copy .gameplay-description{font-size:12px;line-height:1.5;margin:-8px 0 18px;color:#526071}.scenario-identify h3{font-size:15px;line-height:1.35;margin:0 0 10px}.scenario-answers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.scenario-answers button{min-height:48px;padding:9px 8px;border:2px solid #11223c;border-radius:8px;background:#ffdf80;color:#11223c;font:800 14px/1.3 system-ui;cursor:pointer}.game-call .scenario-setup{font-size:12px;color:#41566b;font-weight:750}.game-call .scenario-feedback{font-size:12px;font-weight:650;color:#244e60;padding-top:6px;border-top:1px solid #ccd4ce}.scenario-read-count{margin:0;padding:7px 12px;color:#fff4d4;background:#1c3654;font-size:11px;line-height:1.4}

/* Optional swing timing stays beside the field; replay views work while paused. */
.manual-swing-option{display:flex;align-items:flex-start;gap:10px;padding:12px;border:1px solid #8fa1ae;border-radius:9px;margin:0 0 18px;cursor:pointer}.manual-swing-option input{width:20px;height:20px;flex-shrink:0;accent-color:#173867;margin:2px 0}.manual-swing-option b{font-size:14px;display:block}.manual-swing-option small{display:block;font-size:12px;line-height:1.45;color:#526071;margin-top:5px}
#swing-timing{height:34px;font-size:11px}#swing-timing .contact-window{left:70%;width:22.5%}#swing-timing>div{height:12px}#pitch-button[data-action=swing]{background:#83e9aa;min-height:70px;font-size:24px;touch-action:manipulation}.review-controls #review-angle-control{flex-basis:100%;font-size:12px}.review-controls select{min-height:44px;flex:1;font-size:14px}

#difficulty-option{margin-top:-4px}#difficulty-help{font-size:12px;font-weight:500;line-height:1.45;color:#526071}.pitch-power{display:flex;align-items:center;gap:12px;margin-bottom:10px;font-size:12px;font-weight:750}.pitch-power span{flex:1}.pitch-power progress{width:90px;height:12px;accent-color:#245a91}.pitch-power[data-fast=true] progress{accent-color:#db6338}#pitch-button[data-action=charge]{touch-action:none;-webkit-touch-callout:none;user-select:none;-webkit-user-select:none}#pitch-button[data-charged=true]{background:#ffc38b}
