.custom-games-page{width:min(100%,900px)}
.custom-game-card{display:flex;gap:24px;align-items:center;color:inherit;text-decoration:none;border:1px solid #4385c9;border-radius:12px;padding:24px;margin-top:24px;background:#14304c}
.custom-game-card:hover,.custom-game-card:focus-visible{background:#1c4265;outline:2px solid #baf7d0;outline-offset:3px}
.custom-game-card h2{margin:0;font-size:32px}.custom-game-card p{margin:12px 0}.custom-game-play{color:#baf7d0;font-weight:700}
.snake-card-icon{display:grid;place-items:center;width:80px;height:80px;flex-shrink:0;font-size:64px;color:#baf7d0;background:#0a1c2f;border-radius:12px}.snake-card-icon img{width:100%;height:100%;object-fit:cover;border-radius:12px}
.snake-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:14px;margin:20px 0}.snake-toolbar p{margin-right:auto}
.snake-toolbar button,.snake-controls button{background:#3771af;border:1px solid #86b0da;border-radius:6px;color:white;font:inherit;font-weight:700;padding:12px 18px;cursor:pointer}
.snake-toolbar button:disabled{opacity:.5;cursor:default}.snake-toolbar button:focus-visible,.snake-controls button:focus-visible{outline:3px solid #baf7d0;outline-offset:3px}
#snake-board{display:block;width:min(100%,480px);height:auto;aspect-ratio:1;border:2px solid #4385c9;border-radius:8px;margin:auto;touch-action:manipulation}#snake-board:focus-visible{outline:3px solid #baf7d0;outline-offset:3px}
#snake-status{min-height:1.6em;text-align:center}.snake-help{font-size:15px;text-align:center;line-height:1.6}.snake-controls{text-align:center;touch-action:manipulation}.snake-controls button{min-width:56px;min-height:48px;margin:4px}
.snake-head-preview{width:96px;height:96px;object-fit:cover;border-radius:8px;margin-bottom:14px}.snake-remove{display:flex!important;align-items:center;gap:10px;margin-bottom:18px!important}.snake-remove input{width:auto!important;margin:0}.snake-admin{margin-top:32px;border-top:1px solid #4385c9;padding-top:16px}.snake-admin p{font-size:14px;line-height:1.6}
@media(max-width:520px){.custom-game-card{gap:16px;padding:16px}.snake-card-icon{width:56px;height:56px}.custom-game-card h2{font-size:24px}.custom-games-page h1{font-size:clamp(32px,10vw,60px)}}
#catch-board{display:block;width:100%;max-width:640px;height:auto;aspect-ratio:4/3;margin:auto;border:2px solid #4385c9;border-radius:8px;touch-action:none}#catch-board:focus-visible{outline:3px solid #baf7d0;outline-offset:3px}.catch-stats{display:flex;justify-content:space-between;gap:12px;margin:16px 0;font-size:16px}#catch-status{min-height:1.6em;text-align:center}[data-catch-direction]{touch-action:none;user-select:none}.game-playing .content-page{padding:12px 16px;min-height:calc(100dvh - 96px)}.game-playing .content-card{padding:14px 18px;width:min(100%,960px)}.game-playing .custom-games-page h1{font-family:inherit;font-size:24px;line-height:1.2;margin:0 0 8px;overflow-wrap:anywhere}.game-playing .snake-toolbar{gap:8px;margin:8px 0}.game-playing .snake-toolbar p{font-size:14px;margin-block:0}.game-playing .snake-toolbar button{padding:7px 12px;font-size:14px}.game-playing .catch-stats{margin:6px 0;font-size:14px}.game-playing #snake-status,.game-playing #catch-status,#arcade-status{margin:8px 0;font-size:14px;text-align:center}.game-playing .snake-help{margin:6px 0;font-size:12px}.game-playing .page-back{margin-top:8px;font-size:13px}.game-playing .snake-controls button{min-height:40px;padding:6px 12px;margin:2px;font-size:15px}.game-playing #snake-board{width:min(100%,480px,calc(100dvh - 290px));min-width:200px}.game-playing #catch-board,#arcade-board{width:min(100%,640px,calc((100dvh - 265px) * 4 / 3));height:auto;max-height:none;aspect-ratio:4/3;object-fit:contain;margin:auto;display:block;border:2px solid #4385c9;border-radius:8px;touch-action:none}#arcade-board:focus-visible{outline:3px solid #baf7d0;outline-offset:3px}.game-title-row{display:flex;gap:16px;align-items:center}.game-directory-back{color:#baf7d0;white-space:nowrap;text-decoration:none;font-size:14px}.mode-label{display:flex;align-items:center;gap:6px;font-size:13px}#pong-mode{background:#14304c;color:white;border:1px solid #86b0da;border-radius:4px;padding:6px}.game-instructions{font-size:13px;margin:8px 0;color:#d7e9f6}.game-instructions summary{cursor:pointer}.game-instructions p{margin:6px 0}.arcade-icon{font-size:28px}[data-arcade-control]{touch-action:none;user-select:none}
.game-directory .custom-games-page{display:grid;grid-template-columns:1fr 1fr;gap:16px}.game-directory .custom-games-page>h1,.game-directory .custom-games-page>.page-back{grid-column:1/-1}.game-directory .custom-game-card{margin:0;padding:18px;gap:16px}.game-directory .custom-game-card h2{font-size:24px}.game-directory .custom-game-card p{font-size:14px}.game-directory .snake-card-icon{width:56px;height:56px}
@media(max-width:640px){.game-directory .custom-games-page{grid-template-columns:1fr}.game-playing .content-page{padding:8px}.game-playing .content-card{padding:10px}.game-playing .snake-toolbar{flex-wrap:wrap}.game-playing #arcade-board,.game-playing #catch-board{width:min(100%,640px);max-height:none}.game-playing #snake-board{width:min(100%,420px);min-width:0}.game-title-row{gap:10px}.game-playing .custom-games-page h1{font-size:22px}}
.online-connect,.online-player-row button,#online-invite button,#online-leave,.online-account button{background:#3771af;border:1px solid #86b0da;color:white;padding:8px 14px;border-radius:6px;font:inherit;cursor:pointer}.online-connect{display:inline-block;text-decoration:none}.online-account,.online-player-row,.online-opponents{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0}.online-person{display:inline-flex;gap:8px;align-items:center}.online-person img,.online-initial{width:32px;height:32px;border-radius:50%;object-fit:cover}.online-initial{display:grid;place-items:center;background:#3771af}.online-heading{font-size:18px;margin:18px 0 8px}#online-invite{background:#14304c;padding:12px;border:1px solid #57b68a;border-radius:8px;margin:12px 0}#online-board{display:block;width:min(100%,640px);height:auto;aspect-ratio:4/3;border:2px solid #4385c9;border-radius:8px;margin:auto;touch-action:none}#online-score{font-size:14px;text-align:center;margin:8px 0}.online-player-row{padding:10px;border-bottom:1px solid #335c78}.online-player-row button:disabled{opacity:.5}[data-online-control]{touch-action:none;user-select:none}.game-playing .snake-controls:has([data-arcade-control]){margin-top:8px}
@media(max-width:640px){}
#online-game{background:#14304c;color:#eaf5ff;border:1px solid #86b0da;padding:7px;border-radius:5px}.online-player-row button:focus-visible,.online-connect:focus-visible{outline:3px solid #baf7d0;outline-offset:3px}

/* Games use the district palette; the shared site header has no overrides here. */
.game-directory .content-page,.game-playing .content-page{background:#eef1f4;min-height:calc(100vh - 247px);padding:28px 24px;color:#20354a}
.game-directory .content-card,.game-playing .content-card{background:#ffffff;box-shadow:none;border:1px solid #ccd4dd;border-radius:0;padding:24px;width:min(100%,1060px)}
.game-directory .custom-games-page{display:block}
.game-directory .custom-games-page>h1{font-family:Lato,Arial,sans-serif;font-size:30px;line-height:1.2;text-shadow:none;margin:0 0 20px;color:#244d76}
.game-directory .custom-game-card{border:0;border-top:1px solid #dbe1e7;border-radius:0;background:transparent;padding:18px 4px;margin:0;gap:18px;box-shadow:none}
.game-directory .custom-game-card:hover{background:#f3f6f9;outline:none}
.game-directory .custom-game-card:focus-visible{outline:2px solid #3771af;outline-offset:-2px}
.game-directory .custom-game-card h2{font-family:Lato,Arial,sans-serif;font-size:20px;color:#244d76;line-height:1.3;text-shadow:none;margin:0}
.game-directory .custom-game-card p{font-size:14px;color:#53667a;margin:5px 0;line-height:1.5}
.game-directory .custom-game-play{font-size:13px;color:#245c94;font-weight:700}
.game-directory .snake-card-icon{width:64px;height:64px;border:1px solid #d0dae4;border-radius:0;background:#e8eef5;color:#245c94;font:700 10px Lato,Arial,sans-serif;letter-spacing:.04em}
.game-directory .snake-card-icon img{border-radius:0}
.game-directory .page-back,.game-playing .page-back,.game-directory-back{color:#245c94;text-shadow:none}
.game-playing .custom-games-page h1{color:#244d76;text-shadow:none;font:700 23px/1.3 Lato,Arial,sans-serif;margin:0 0 8px}
.game-playing .snake-toolbar p,.game-playing .catch-stats{color:#20354a}
.game-playing .snake-toolbar button,.game-playing .snake-controls button,.online-connect,.online-player-row button,#online-invite button,#online-leave,.online-account button{border-radius:2px;box-shadow:none;font-size:14px}
.game-playing .snake-help,.game-instructions{color:#53667a}
.game-playing #snake-board{width:min(100%,480px,calc(100dvh - 450px));min-width:220px;border-radius:0;border:1px solid #244d76}
.game-playing #catch-board,#arcade-board{width:min(100%,640px, max(320px,calc((100dvh - 450px)*4/3)));border-radius:0;border:1px solid #244d76}
#online-board{border-radius:0;border:1px solid #244d76}
#online-invite{border-radius:0;background:#e8eef5;border:1px solid #b6c8da}
#online-game,#pong-mode{background:#ffffff;color:#20354a;border:1px solid #9aacbd;border-radius:2px}
.online-player-row{border-bottom:1px solid #dbe1e7;padding:12px 0}
.game-directory .page-back{font-size:14px;margin-top:20px}
@media(max-width:640px){.game-directory .content-page,.game-playing .content-page{padding:16px 10px}.game-directory .content-card,.game-playing .content-card{padding:16px}.game-directory .snake-card-icon{width:52px;height:52px}.game-playing #snake-board{width:min(100%,420px);min-width:0}.game-playing #catch-board,#arcade-board{width:min(100%,640px)}}
.player-login-form{max-width:360px;display:grid;gap:8px;margin:18px 0}.player-login-form label{font-size:14px;font-weight:700}.player-login-form input{width:100%;min-height:40px;border:1px solid #9aacbd;background:#ffffff;color:#20354a;border-radius:2px;padding:8px 10px;font:inherit}.player-login-form button{background:#3771af;color:#ffffff;border:1px solid #245c94;border-radius:2px;padding:10px 16px;font:inherit;cursor:pointer;margin-top:6px}.login-note{font-size:12px;line-height:1.5;color:#53667a}.login-error{color:#9d2626;font-size:14px}.existing-account-link{color:#245c94;font-size:13px}

:root{--district-blue:#3771af;--district-blue-dark:#2c5a8c;--utility:#242424;--ink:#07131f;--white:#ffffff}
.identity-bar{background:#3771af}
.identity-bar .brand,.identity-bar .quick-links a{color:#ffffff}
.identity-bar .outline-button{border-color:#ffffff}
.utility-bar{background:#242424;color:#ffffff}
.utility-bar .district-links a,.utility-bar .social-links a{color:#ffffff}
.nav-bar,.primary-nav{background:#2c5a8c}
.primary-nav a,.primary-nav .nav-placeholder,.menu-button{color:#ffffff}
@media(max-width:1100px){.nav-bar{background:transparent}}
