@font-face{font-family:Bungee;src:url('./fonts/bungee-latin-400-normal.woff2') format('woff2');font-display:swap}@font-face{font-family:Shantell;src:url('./fonts/shantell-sans-latin-500-normal.woff2') format('woff2');font-weight:500;font-display:swap}@font-face{font-family:Shantell;src:url('./fonts/shantell-sans-latin-700-normal.woff2') format('woff2');font-weight:700;font-display:swap}:root{--ink:#251c12;--cream:#f3e2b7;--gold:#f2bd51;--green:#4c7752;--red:#bb5539;--line:#d7b97460;color:var(--cream);font-family:Shantell,Arial,sans-serif;font-weight:500;background:#21180f}*{box-sizing:border-box}body,html{margin:0;height:100%;overflow:hidden}button,input,select{font:inherit}button{cursor:pointer;touch-action:manipulation}button,a,input,select{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #f9d06d;outline-offset:4px}button:disabled{opacity:.35;cursor:default}#world{position:fixed;inset:0;display:block;width:100%;height:100%;touch-action:none;outline:none}.vignette{position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 35%,#170e0977 100%)}body.in-lobby .vignette{background:linear-gradient(#140d08b5,#140d0870 30%,#140d08a6 90%),radial-gradient(ellipse at center,transparent,#10090555)}.woven{position:fixed;z-index:20;top:0;left:0;right:0;height:8px;background:repeating-linear-gradient(90deg,#e6ba60 0 13px,#221a11 13px 17px,#56815a 17px 30px,#221a11 30px 34px,#b85036 34px 47px,#221a11 47px 51px)}h1,h2,h3,.gold-button,.outline-button,.round-button,.game-name,.card-tag,.score-panel strong,.score-panel>span,.action-buttons button,.lobby-footer b{font-family:Bungee,Impact,sans-serif;font-weight:400}h1,h2,h3,p{margin:0}#lobby{position:fixed;inset:0;display:flex;flex-direction:column;padding:18px 4% 15px;max-width:1800px;margin:auto}.lobby-header{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:18px;min-height:92px}.lobby-header h1{font-size:clamp(25px,3.4vw,49px);line-height:1.05;color:var(--gold);text-shadow:2px 3px 0 var(--red),4px 5px 0 var(--green),0 7px 15px #0008;text-align:center;letter-spacing:-1px}.lobby-header h1 span{display:block;font-size:.73em}.profile-chip{display:flex;align-items:center;justify-self:start;gap:10px;border:1px dashed #edd7a373;border-radius:35px;padding:6px 16px 6px 6px;background:#21190f80;color:var(--cream);text-align:left;font-weight:700;font-size:12px}.profile-chip small{display:block;font-size:10px;opacity:.7;margin-top:3px}.avatar{display:block;width:39px;height:39px;border:2px solid #d8b66d;border-radius:50%;background:#8b6541;position:relative;overflow:hidden}.avatar:before{content:'';position:absolute;background:#7d492d;border-radius:50%;width:17px;height:20px;top:5px;left:9px;border-top:5px solid #28201a}.avatar i{position:absolute;bottom:-3px;left:3px;width:30px;height:20px;background:var(--red);border-radius:12px 12px 0 0}.header-actions{justify-self:end;display:flex;gap:10px}.round-button{width:43px;height:43px;display:grid;place-items:center;border-radius:50%;border:2px solid #e9d6a9;background:var(--cream);color:var(--ink);box-shadow:0 4px 0 #0005;font-size:22px;padding:0}.round-button:hover{background:var(--gold);transform:translateY(-1px)}.round-button[aria-pressed=true]{background:var(--gold)}.game-shelf{flex:1;min-height:0;width:min(1120px,100%);margin:0 auto;display:flex;flex-direction:column}.shelf-top{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:4px 0 12px;font-size:14px;text-shadow:0 2px 4px #000}.search{display:flex;gap:8px;align-items:center;border-bottom:1px solid #dfc58a80;padding:5px 8px;background:#2a1d124d;border-radius:5px}.search span{font-family:Arial;font-size:24px}.search input{width:155px;background:transparent;border:none;color:var(--cream);font-size:12px;outline:none}.search input::placeholder{color:#eddbb6b3}#categories{display:flex;gap:8px;align-items:center;justify-content:center;flex-wrap:nowrap;margin:0 0 18px;overflow-x:auto;flex-shrink:0;padding:2px}.category{white-space:nowrap;border:1.5px solid #bda16b80;border-radius:24px;background:#241a138a;color:#e9cd91;padding:8px 16px;font-family:Bungee;font-size:11px;min-height:35px}.category.active{background:var(--gold);color:var(--ink);border-color:var(--gold);box-shadow:0 3px 0 #130d0877}.game-grid{flex:1;min-height:0;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,minmax(0,1fr));gap:17px}.game-card{position:relative;overflow:hidden;background:#715239;border:2px solid #d6b57585;border-radius:14px;box-shadow:0 5px 0 #180f08a8,0 12px 25px #0003;text-align:left;padding:0;color:var(--cream);isolation:isolate;min-height:100px}.game-card:before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#0000 38%,#20150ab3 68%,#20150aee);z-index:1}.game-card:after{content:'';position:absolute;left:10px;top:10px;width:5px;height:5px;border-radius:50%;background:#332518;box-shadow:0 1px 1px #ffe5b3,calc(100vw) 0 #332518;z-index:3}.game-card img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .25s,filter .25s;filter:saturate(.87) sepia(.08)}.game-card:hover{border-color:#f5cc70;transform:translateY(-2px)}.game-card:hover img{transform:scale(1.035);filter:saturate(1.1)}.card-copy{position:absolute;z-index:2;bottom:17px;left:18px;right:16px}.game-name{font-size:clamp(17px,2vw,27px);line-height:1.12;text-shadow:2px 3px 0 #422a16;margin-bottom:5px;color:#ffdb82}.card-copy small{font-size:11px;color:#e7d3ac}.card-tag{position:absolute;z-index:2;top:13px;right:12px;font-size:9px;background:#ead5a3;color:#312515;padding:4px 7px;border-radius:3px;transform:rotate(2deg)}.card-play{position:absolute;right:17px;bottom:19px;z-index:2;color:#efdbac;font-size:19px}.card-copy{padding-right:22px}.shelf-controls{display:flex;align-items:center;justify-content:center;gap:22px;flex-shrink:0;min-height:60px;margin-top:10px;text-align:center}.shelf-controls .round-button{width:32px;height:32px;font-family:Arial;font-weight:bold;font-size:26px;background:transparent;color:#ecd39d;border-color:#c3a66b80;box-shadow:none}.shelf-controls span{font-family:Bungee;font-size:13px}.shelf-controls p{font-size:10px;opacity:.65;margin-top:2px}.lobby-footer{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-shrink:0;min-height:48px}.lobby-footer>div{text-align:center}.lobby-footer b{font-size:13px;color:var(--gold);display:block}.lobby-footer span{display:block;font-size:11px;margin-top:3px;opacity:.85}.quiet-button{border:0;background:transparent;color:#ead3a1;font-size:11px;text-decoration:underline;text-underline-offset:4px;padding:10px}.loading{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#251a10;text-align:center}.loading h1{font-size:clamp(38px,6vw,78px);line-height:1.05;color:var(--gold);text-shadow:3px 4px 0 var(--red),5px 6px 0 var(--green)}.loading h1 span{font-size:.64em}.loading p{font-size:14px;color:#d9bd87;margin-top:18px}.loading-ball{margin-top:45px;font-size:30px;color:var(--gold);animation:float 1s ease-in-out infinite alternate}@keyframes float{to{transform:translateY(-12px) rotate(20deg)}}
#game-hud{position:fixed;inset:0;pointer-events:none;padding:24px}.match-header{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.match-header button{pointer-events:auto}.score-panel{text-align:center;background:#261c13e8;border:1px solid #d4b87880;border-radius:12px;padding:10px 30px;box-shadow:0 4px 0 #0004;min-width:270px}.score-panel>span{display:block;font-size:10px;color:#bca781;margin-bottom:5px}.score-panel strong{display:block;font-size:21px;line-height:1.3;color:#f4dda9}.score-panel small{font-size:11px;display:block;margin-top:3px;color:var(--gold)}.game-announcement{position:absolute;top:133px;left:50%;transform:translateX(-50%);background:#22170fd6;color:#ffe4a6;max-width:640px;width:max-content;max-width:min(640px,85%);padding:9px 18px;text-align:center;border-radius:7px;font-size:14px;font-weight:700;border:1px solid #d8b87566;text-shadow:0 1px 2px #000}.play-bottom{position:absolute;bottom:37px;left:30px;right:30px;display:flex;align-items:end;justify-content:space-between;gap:25px;pointer-events:none}#joystick{width:135px;height:135px;border-radius:50%;background:#30271959;border:2px solid #e6d8b366;position:relative;pointer-events:auto;touch-action:none;box-shadow:inset 0 0 0 12px #c9b98e13}.stick-label{position:absolute;top:-23px;text-align:center;width:100%;font-family:Bungee;font-size:11px;color:#f5dfb5;text-shadow:0 2px 3px #000}#stick-knob{position:absolute;width:49px;height:49px;left:41px;top:41px;background:#eadbb98c;border:2px solid #f6e6ba;border-radius:50%;pointer-events:none}#joystick button{position:absolute;width:32px;height:32px;color:#e5d6b8c0;background:none;border:none;font-size:14px;padding:0;z-index:2}#joystick button[data-move=up]{top:3px;left:49px}#joystick button[data-move=down]{bottom:3px;left:49px}#joystick button[data-move=left]{left:3px;top:49px}#joystick button[data-move=right]{right:3px;top:49px}.action-buttons{display:flex;align-items:end;justify-content:end;gap:12px;flex-wrap:wrap;max-width:620px;pointer-events:auto}.action-buttons button{border:2px solid #ead9ad;border-radius:50%;width:85px;height:85px;background:#eee0b9e8;color:#332416;box-shadow:0 5px 0 #3425129c;font-size:12px;line-height:1.15;position:relative;padding:10px;touch-action:none}.action-buttons button:first-child{background:var(--gold);width:98px;height:98px;font-size:14px}.action-buttons button span{display:block;font-family:Arial;font-size:9px;opacity:.6;margin-top:5px}.action-buttons.many button{border-radius:10px;width:80px;height:58px;font-size:11px}.action-buttons.many button:first-child{width:80px;height:58px;font-size:11px}.keyboard-hint{position:absolute;bottom:10px;left:0;right:0;text-align:center;font-size:10px;text-shadow:0 2px 3px #000;color:#ffe9beaa}body.board-game #joystick{visibility:hidden}
dialog{border:2px solid #b7975c;background:#f0dfb5;color:#302316;border-radius:16px;padding:0;width:calc(100% - 32px);max-width:580px;max-height:90dvh;overflow:auto;box-shadow:0 8px 0 #1d130cb0,0 25px 100px #0008}dialog::backdrop{background:#170f09bf;backdrop-filter:blur(5px)}.dialog-close{position:absolute;right:12px;top:12px;z-index:4;border:2px solid #45311c;background:#ead8ae;color:#3b2919;border-radius:50%;width:35px;height:35px;font-size:25px;line-height:1}.setup-preview{height:210px;position:relative;background:#8b6848;overflow:hidden}.setup-preview img{width:100%;height:100%;object-fit:cover}.setup-preview:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 60%,#2a1d1266)}.setup-preview>span{position:absolute;bottom:14px;left:25px;z-index:1;background:#f1dcac;color:#3a2819;padding:5px 10px;border-radius:4px;font-size:11px;font-weight:700}.dialog-content{padding:28px 32px}.dialog-content h2{font-size:30px;line-height:1.15;color:#3c2a19;margin-bottom:18px;text-shadow:0 2px 0 #fff5d2}.dialog-content h3{font-size:15px;margin:22px 0 12px}.dialog-content p{font-size:14px;line-height:1.65}.eyebrow{font-family:Shantell;font-size:11px!important;font-weight:700;color:#83663d;letter-spacing:.4px;margin-bottom:10px!important}.gold-button,.outline-button{border:2px solid #3d2a16;border-radius:30px;padding:14px 24px;font-size:13px;line-height:1.2;box-shadow:0 4px 0 #3d2a16;background:var(--gold);color:#332313;min-height:48px}.gold-button:hover{background:#ffd77e}.outline-button{background:transparent;font-size:11px;box-shadow:none;border-color:#8d7045}.setup-actions{display:flex;gap:12px;align-items:center;margin-top:25px}.control-note{font-size:10px!important;margin-top:18px;color:#806d4c}.experimental{background:#dbc99f;padding:12px;border-left:3px solid #ac6b3d;font-size:12px!important;margin-top:18px}.pause-content,.result-content{text-align:center;display:flex;flex-direction:column;gap:15px;padding:42px}.pause-content h2,.result-content h2{margin-bottom:8px}.result-star{font-size:65px;color:#af792b;text-shadow:0 3px 0 #f7e5b5}.result-content p{margin-bottom:15px}.kit-options{display:flex;gap:12px}.kit-option{border:3px solid transparent;border-radius:50%;width:48px;height:48px;box-shadow:inset 0 0 0 3px #ffffff66}.kit-option.selected{border-color:#382b19;outline:2px solid #bd9a56;outline-offset:3px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:24px 0;font-size:14px;font-weight:700}.setting-row input{width:22px;height:22px;accent-color:#486747}.setting-row select,#rules-select{border:1px solid #a38a60;border-radius:6px;background:#f8ebcb;color:#3f2d1b;font-size:12px;padding:9px;max-width:240px}.small-copy{font-size:11px!important;color:#7a6544;margin-bottom:24px!important}.dialog-content .gold-button{margin-top:5px}#rules-select{width:100%;max-width:none;margin-bottom:20px}#rules-body h3{margin-top:25px}#rules-body li{font-size:13px;line-height:1.65;margin-bottom:8px}#rules-body a{color:#4d633a;display:block;margin:10px 0;font-size:12px;text-underline-offset:3px}#rules-body p{font-size:13px}#no-results{text-align:center;padding:60px 20px;flex:1}#no-results h2{font-family:Bungee;margin-bottom:25px}#webgl-error{position:fixed;inset:0;z-index:101;background:#24190f;padding:20vh 10%;text-align:center}#webgl-error p{max-width:560px;margin:25px auto;line-height:1.8}#webgl-error .gold-button{margin-top:25px}[hidden]{display:none!important}
@media(min-width:1500px){.game-shelf{width:min(1300px,90%)}.game-name{font-size:30px}.game-grid{gap:22px}}@media(max-height:750px) and (min-width:750px){.lobby-header{min-height:75px}.lobby-header h1{font-size:34px}.shelf-top{margin-bottom:8px;font-size:12px}#categories{margin-bottom:12px}.category{padding:6px 14px;min-height:30px}.lobby-footer{min-height:38px}.shelf-controls{min-height:43px;margin-top:6px}.game-grid{gap:12px}.card-copy{bottom:12px}.game-name{font-size:21px}.card-copy small{font-size:10px}.setup-preview{height:150px}}
@media(max-width:749px){#lobby{padding:19px 4% 10px}.lobby-header{min-height:88px;gap:10px;grid-template-columns:40px 1fr 72px}.lobby-header h1{font-size:29px;letter-spacing:-.8px}.lobby-header h1 span{font-size:.66em}.profile-chip{padding:0;border:none;background:none}.profile-chip>span:last-child{display:none}.avatar{width:36px;height:36px}.header-actions{gap:6px}.header-actions .round-button{width:32px;height:32px;font-size:17px}.shelf-top{margin:3px 0 12px;font-size:11px;gap:8px}.shelf-top p{max-width:170px}.search{padding:3px 6px}.search input{width:110px;font-size:10px}.search span{font-size:20px}#categories{justify-content:start;margin-bottom:14px;gap:6px;padding-bottom:6px}.category{font-size:9px;padding:7px 11px;min-height:31px}.game-grid{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(3,minmax(0,1fr));gap:12px}.game-name{font-size:17px;line-height:1.12}.card-copy{left:11px;right:8px;bottom:12px;padding-right:12px}.card-copy small{font-size:9px}.card-tag{font-size:7px;top:8px;right:7px;padding:3px 5px;max-width:85%;line-height:1.4}.card-play{right:10px;bottom:11px;font-size:12px}.game-card{border-radius:10px}.game-card:after{left:8px;top:8px;width:4px;height:4px}.shelf-controls{min-height:48px;margin-top:8px;gap:15px}.shelf-controls p{font-size:9px}.shelf-controls span{font-size:11px}.shelf-controls .round-button{width:29px;height:29px}.lobby-footer{min-height:43px;gap:10px}.lobby-footer b{font-size:10px}.lobby-footer span{font-size:9px;max-width:175px}.quiet-button{font-size:9px;padding:4px}.lobby-footer .quiet-button:last-child{max-width:65px}#game-hud{padding:20px 12px}.match-header{gap:8px}.match-header .round-button{width:35px;height:35px;font-size:19px}.score-panel{min-width:0;padding:10px 12px;flex:1;max-width:270px}.score-panel>span{font-size:8px}.score-panel strong{font-size:15px}.score-panel small{font-size:9px}.game-announcement{top:125px;font-size:12px;max-width:90%;padding:8px 12px}.play-bottom{bottom:35px;left:16px;right:16px;gap:15px}#joystick{width:108px;height:108px;flex-shrink:0}#stick-knob{width:40px;height:40px;left:32px;top:32px}#joystick button{width:25px;height:25px;font-size:10px}#joystick button[data-move=up]{left:39px}#joystick button[data-move=down]{left:39px}#joystick button[data-move=left]{top:39px}#joystick button[data-move=right]{top:39px}.action-buttons{gap:8px;max-width:215px}.action-buttons button{width:61px;height:61px;font-size:9px;padding:6px}.action-buttons button:first-child{width:72px;height:72px;font-size:11px}.action-buttons button span{font-size:8px}.action-buttons.many{max-width:100%;justify-content:center;width:100%}.action-buttons.many button,.action-buttons.many button:first-child{width:72px;height:50px;font-size:10px}body.board-game .play-bottom{justify-content:center}body.board-game #joystick{display:none}.keyboard-hint{font-size:8px;padding:0 15px}.dialog-content{padding:24px}.dialog-content h2{font-size:26px}.dialog-content p{font-size:13px}.setup-preview{height:185px}.setup-actions{gap:8px}.gold-button{font-size:12px;padding:13px 20px}.outline-button{font-size:10px;padding:13px 16px}.pause-content,.result-content{padding:35px 25px}.setting-row{font-size:12px}.setting-row select{font-size:10px;max-width:165px}}
@media(max-height:600px) and (orientation:landscape){#lobby{padding:12px 4% 6px}.lobby-header{min-height:58px;grid-template-columns:1fr auto 1fr}.lobby-header h1{font-size:25px}.lobby-header h1 span{display:inline;font-size:1em}.shelf-top{display:none}#categories{justify-content:center;margin-bottom:9px}.game-grid{grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,minmax(0,1fr));gap:9px}.card-copy{bottom:9px}.game-name{font-size:16px}.card-copy small{font-size:8px}.shelf-controls{min-height:34px;margin-top:4px}.lobby-footer{min-height:28px}.lobby-footer span{display:none}.lobby-footer b{font-size:9px}.setup-preview{height:125px}.dialog-content{padding:20px}.game-announcement{top:95px;font-size:11px}.score-panel{padding:6px 15px}.score-panel>span{display:none}.score-panel strong{font-size:16px}.play-bottom{bottom:24px}.keyboard-hint{bottom:4px}.action-buttons button{width:60px;height:60px}.action-buttons button:first-child{width:70px;height:70px}#joystick{width:108px;height:108px}#stick-knob{width:40px;height:40px;left:32px;top:32px}#joystick button[data-move=up],#joystick button[data-move=down]{left:36px}#joystick button[data-move=left],#joystick button[data-move=right]{top:36px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
/* Match presentation: put the camera and players ahead of interface chrome. */
.match-header{padding:18px 22px}.score-panel{min-width:240px;padding:10px 24px 12px;border-radius:12px;background:rgba(27,28,23,.82);border:1px solid #cfbc8445;box-shadow:0 3px 12px #0003}.score-panel strong{font-size:19px}.score-panel>span{font-size:9px;letter-spacing:.6px}.score-panel small{font-family:Arial,sans-serif;font-size:12px}.game-announcement{top:130px;background:rgba(31,31,26,.62);font-family:Arial,sans-serif;font-weight:600;line-height:1.5;font-size:14px;max-width:570px;border-radius:7px;padding:10px 16px;box-shadow:none}.round-button{box-shadow:0 2px 0 #1e201b7a,0 0 0 1px #e2cf8c50}.game-card{border-radius:13px}.card-copy .game-name{font-size:clamp(18px,2.3vw,28px);text-shadow:0 2px 4px #0009}.lobby-header h1{text-shadow:1px 2px #6c452d,2px 4px #344c3b}.lobby-footer{gap:16px}.lobby-footer .quiet-button{font-size:11px}#radar{position:absolute;right:24px;top:108px;width:144px;height:91px;border:1px solid #c6b98b69;border-radius:5px;opacity:.85}#player-meter{position:absolute;top:88px;left:50%;transform:translateX(-50%);width:120px;color:#f3e4b8;text-align:center;font:10px Bungee,sans-serif;text-shadow:0 1px 2px #000}#player-name{font-weight:400}.stamina-track,.power-track{height:3px;background:#1118;border-radius:3px;margin-top:4px;overflow:hidden}.stamina-track i,.power-track i{display:block;height:100%;width:100%;background:#94b68d}.power-track i{width:0;background:#f0bc55}.play-bottom{bottom:26px}.action-buttons button{border:1px solid #e2d9b2c9;background:rgba(231,217,173,.85);box-shadow:0 3px 0 #2a2b2366,0 0 12px #0001;font-family:Arial,sans-serif}.action-buttons strong{font:11px Bungee,sans-serif}.action-buttons span{font:10px Arial,sans-serif;opacity:.65}.football-controls .action-buttons.many{display:grid;grid-template-columns:76px 86px;gap:8px;align-items:center}.football-controls .action-buttons button{border-radius:50%;width:76px;height:76px;min-width:0;min-height:0;padding:8px}.football-controls .action-buttons button:first-child{background:#c1774dde;border:2px solid #e0ae77;width:86px;height:86px;grid-column:2;grid-row:2;color:#1c241f}.football-controls .action-buttons button:nth-child(2){grid-column:1;grid-row:2}.football-controls .action-buttons button:nth-child(3){grid-column:2;grid-row:1;width:62px;height:62px;justify-self:center}.football-controls .action-buttons button:nth-child(4){grid-column:1;grid-row:1;width:66px;height:66px;background:#d0af65db}.football-controls .play-bottom{align-items:flex-end}#replay-dialog{max-width:850px;width:min(92vw,850px)}#replay-video{display:block;width:100%;max-height:60vh;background:#151915;margin:18px 0;border-radius:8px}#save-replay{display:inline-flex;text-decoration:none}.keyboard-hint{font-family:Arial,sans-serif;font-size:10px}.profile-chip{border-radius:10px}.setting-row select{max-width:170px}.game-shelf .shelf-top p{font-size:14px}
@media(max-width:600px){.match-header{padding:16px 12px}.score-panel{min-width:200px;padding:8px 15px}.score-panel strong{font-size:15px}.score-panel>span{font-size:8px}.score-panel small{font-size:11px}#player-meter{top:84px}.game-announcement{top:120px;max-width:calc(100vw - 36px);font-size:12px}#radar{top:auto;bottom:210px;right:14px;width:106px;height:67px;opacity:.68}.football-controls .action-buttons.many{grid-template-columns:62px 72px;gap:6px}.football-controls .action-buttons button{width:62px;height:62px}.football-controls .action-buttons button:first-child{width:72px;height:72px}.football-controls .action-buttons button:nth-child(3){width:52px;height:52px}.football-controls .action-buttons button:nth-child(4){width:56px;height:56px}.football-controls .action-buttons strong{font-size:10px}.lobby-footer{flex-wrap:wrap;justify-content:center}.lobby-footer>div{display:none}.lobby-header h1{font-size:28px}.lobby-header h1 span{font-size:18px}.game-card img{object-position:50% 60%}}
.aim-controls [data-move="up"],.aim-controls [data-move="down"]{display:none}

#player-meter{top:auto;bottom:190px;left:26px;transform:none;text-align:left;width:130px}@media(max-width:600px){#player-meter{bottom:160px;left:18px;width:108px}}
/* Match-specific controls retain the gold and parchment game shell. */
#football-setup{display:grid;grid-template-columns:1fr 1fr;gap:14px;border:1px solid #9b7e4d66;border-radius:8px;padding:14px;margin:20px 0;background:#fff7e333}
#football-setup legend{font-family:Bungee,sans-serif;font-size:12px;color:#725226;padding:0 6px}
#football-setup label{display:grid;gap:7px;font-weight:700;font-size:14px}
#football-setup select{width:100%;min-height:42px;border:1px solid #9b7e4d;border-radius:5px;background:#f8edcf;color:#302319;padding:8px;font:inherit}
#aim-crosshair{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:#fff4d4;font:32px Arial,sans-serif;text-shadow:0 1px 4px #000;pointer-events:none}
#charge-meter{position:absolute;bottom:176px;right:30px;width:150px;padding:9px 12px;background:#201c14c9;border:1px solid #c9a75b66;border-radius:6px;color:#ffe8af;pointer-events:none}
#charge-meter span{display:block;font:10px Bungee,sans-serif;letter-spacing:1px;margin-bottom:5px}
#charge-meter>div{height:5px;background:#ffffff26;border-radius:3px;overflow:hidden}
#charge-fill{display:block;width:0;height:100%;background:#efd38a}
body.vertical-aim .joystick [data-move="up"],body.vertical-aim .joystick [data-move="down"]{display:block}
body.vertical-aim .joystick{height:138px}
body.neighbourhood-controls .action-buttons{grid-template-columns:repeat(3,minmax(70px,1fr));max-width:340px}
body.neighbourhood-controls .action-buttons button{min-width:70px;min-height:56px}
@media(max-width:600px){#football-setup{gap:10px;padding:10px}#football-setup label{font-size:12px}#charge-meter{right:14px;bottom:155px;width:124px}body.neighbourhood-controls .action-buttons{gap:7px;max-width:235px;grid-template-columns:repeat(3,minmax(62px,1fr))}body.neighbourhood-controls .action-buttons button{min-width:62px;min-height:50px;padding:7px}body.neighbourhood-controls .action-buttons button strong{font-size:11px}body.neighbourhood-controls .joystick{width:112px;height:112px}}
@media(max-width:380px){#football-setup{grid-template-columns:1fr}body.neighbourhood-controls .action-buttons{max-width:205px}body.neighbourhood-controls .joystick{width:100px;height:100px}}
