.auth-modal{position:fixed;top:0;left:0;width:100%;height:100%;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1000}.auth-modal-inner{background:linear-gradient(135deg,#2c3e50,#34495e);border:4px solid #87CEEB;border-radius:16px;padding:32px;width:90%;max-width:480px;box-shadow:0 20px 40px #00000080;position:relative}.auth-modal-inner:before{content:"";position:absolute;top:-4px;left:-4px;right:-4px;bottom:-4px;background:#87ceeb;border-radius:16px;z-index:-1}.auth-modal-content h2{color:#ffe4b5;text-align:center;margin-bottom:24px;font-size:20px;text-shadow:2px 2px 0 #1a252f}.auth-form{display:flex;flex-direction:column;gap:16px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{color:#ffe4b5;font-size:12px;font-weight:700;text-shadow:1px 1px 0 #1a252f}.form-input{padding:12px;border:2px solid #34495E;border-radius:8px;background:#2c3e50e6;color:#ffe4b5;font-size:14px;font-family:inherit;transition:border-color .2s ease}.form-input:focus{outline:none;border-color:#87ceeb;box-shadow:0 0 0 2px #87ceeb33}.password-field{position:relative;display:flex;align-items:center}.password-toggle{position:absolute;right:8px;background:none;border:none;cursor:pointer;font-size:16px;color:#87ceeb;padding:4px;border-radius:4px;transition:background .2s ease}.password-toggle:hover{background:#87ceeb1a}.auth-validation{background:#e74c3c1a;border:2px solid #E74C3C;border-radius:8px;padding:12px;margin-top:8px}.validation-message{color:#e74c3c;font-size:12px;text-align:center;font-weight:700}.auth-actions{display:flex;flex-direction:column;gap:12px;margin-top:16px}.primary-auth-button{background:linear-gradient(135deg,#87ceeb,#5dade2);color:#2c3e50;border:none;padding:14px 24px;border-radius:8px;font-size:14px;font-weight:700;cursor:pointer;transition:all .2s ease;text-transform:uppercase;letter-spacing:1px}.primary-auth-button:hover{transform:translateY(-2px);box-shadow:0 4px 12px #87ceeb4d}.primary-auth-button:active{transform:translateY(0)}.secondary-auth-button{background:transparent;color:#87ceeb;border:2px solid #87CEEB;padding:12px 24px;border-radius:8px;font-size:12px;cursor:pointer;transition:all .2s ease;text-transform:uppercase;letter-spacing:1px}.secondary-auth-button:hover{background:#87ceeb1a;transform:translateY(-1px)}.auth-info{margin-top:16px;display:flex;flex-direction:column;gap:8px}.info-item{display:flex;align-items:center;gap:8px;color:#bdc3c7;font-size:10px}.info-icon{color:#87ceeb;font-size:12px}.demo-info{margin-top:24px;padding-top:16px;border-top:1px solid #34495E}.demo-accounts h4{color:#ffe4b5;font-size:12px;margin-bottom:12px;text-align:center;text-shadow:1px 1px 0 #1a252f}.demo-account{background:#2c3e5080;border:1px solid #34495E;border-radius:6px;padding:8px 12px;margin-bottom:8px;font-size:10px;color:#bdc3c7;text-align:center}.demo-account strong{color:#87ceeb}@media (max-width: 768px){.auth-modal-inner{padding:24px;width:95%;max-width:none}.auth-modal-content h2{font-size:18px}.form-input{font-size:16px}.auth-actions{gap:16px}.primary-auth-button,.secondary-auth-button{padding:16px 24px;font-size:16px}}.player-actions{margin-top:16px;padding-top:12px;border-top:1px solid #34495E;display:flex;justify-content:center}.logout-button{background:linear-gradient(135deg,#e74c3c,#c0392b);color:#ffe4b5;border:2px solid #E74C3C;border-radius:8px;padding:8px 16px;font-size:10px;font-weight:700;cursor:pointer;transition:all .2s ease;text-transform:uppercase;letter-spacing:1px;font-family:inherit}.logout-button:before{content:"";position:absolute;top:-2px;left:-2px;width:4px;height:4px;background:#e74c3c;border-radius:2px}.logout-button:hover{transform:translateY(-2px);box-shadow:0 4px 12px #e74c3c4d;background:linear-gradient(135deg,#c0392b,#a93226)}.logout-button:active{transform:translateY(0);box-shadow:0 2px 6px #e74c3c4d}@media (max-width: 768px){.logout-button{padding:12px 20px;font-size:12px}}.tournament-card.ending-soon{border-color:#ff6b35;background:#ff6b3533}.tournament-card.ending-soon:before{background:#ff6b35}.tournament-card.pinned{border-left:4px solid #FFD700;background:linear-gradient(135deg,#ffd7001a,#ffd7000d);position:relative}.tournament-card.pinned:after{content:"📌 PINNED";position:absolute;top:8px;left:12px;font-size:8px;color:gold;font-weight:700;text-shadow:1px 1px 0 #1a252f;letter-spacing:.5px;z-index:5}.tournament-card.pinned .tournament-admin-controls{top:32px}.tournament-card.pinned .tournament-name{margin-top:20px}@media (max-width: 768px){.tournament-card.pinned:after{font-size:9px;top:6px;left:10px}.tournament-card.pinned .tournament-admin-controls{top:28px}.tournament-card.pinned .tournament-name{margin-top:18px}}.tournament-name{font-size:14px;color:#ffe4b5;margin-bottom:25px;text-shadow:1px 1px 0 #1a252f}.tournament-meta{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:15px;font-size:9px}.tournament-meta .info-item{display:flex;justify-content:space-between}.tournament-admin-controls{position:absolute;top:12px;right:12px;display:flex;gap:8px;z-index:10}.admin-icon-btn{width:32px;height:32px;border:none;background:#2c3e50e6;border:2px solid #34495E;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;transition:all .2s ease;position:relative}@media (max-width: 768px){.tournament-admin-controls{position:absolute;top:8px;right:8px;gap:6px!important;z-index:10}.admin-icon-btn{width:40px!important;height:40px!important;font-size:16px!important;border-width:3px!important}}.admin-icon-btn:before{content:"";position:absolute;top:-2px;left:-2px;width:4px;height:4px;background:#87ceeb}.admin-icon-btn:hover{transform:translateY(-2px);box-shadow:0 4px #2c3e50,0 6px 8px #0000004d}.admin-icon-btn:active{transform:translateY(0);box-shadow:0 2px #2c3e50,0 3px 4px #0000004d}.pin-icon-btn{border-color:#87ceeb;background:#87ceeb1a}.pin-icon-btn:before{background:#87ceeb}.pin-icon-btn.pinned{border-color:gold;background:#ffd70033}.pin-icon-btn.pinned:before{background:gold}.edit-icon-btn{border-color:gold;background:#ffd7001a}.edit-icon-btn:before{background:gold}.edit-icon-btn:hover{background:#ffd70033;border-color:#ffe55c;box-shadow:0 4px #b8860b,0 6px 8px #ffd7004d}.delete-icon-btn{border-color:#ff6b35;background:#ff6b351a}.delete-icon-btn:before{background:#ff6b35}.delete-icon-btn:hover{background:#ff6b3533;border-color:#ff7a47;box-shadow:0 4px #cc4f2a,0 6px 8px #ff6b354d}.tournament-actions{display:flex;gap:10px;justify-content:center;margin-top:20px}.tournament-card-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:15px}.tournament-action-btn{padding:10px 15px;border:none;font-family:"Press Start 2P",cursive;font-size:9px;cursor:pointer;position:relative;text-shadow:1px 1px 0 rgba(0,0,0,.5);min-width:120px;transition:none}.tournament-action-btn.join-btn{background:#4caf50;color:#fff;box-shadow:0 4px #2e7d32,0 8px #1b5e20,0 8px 12px #0000004d}.tournament-action-btn.join-btn:hover{background:#5cbf60;transform:translateY(-2px);box-shadow:0 6px #2e7d32,0 10px #1b5e20,0 10px 16px #0000004d}.tournament-action-btn.view-btn{background:#3498db;color:#fff;box-shadow:0 4px #2980b9,0 8px #1f5582,0 8px 12px #0000004d}.tournament-action-btn.view-btn:hover{background:#4fb3d9;transform:translateY(-2px);box-shadow:0 6px #2980b9,0 10px #1f5582,0 10px 16px #0000004d}.tournament-action-btn:active{transform:translateY(4px)}.tournament-action-btn.join-btn:active{box-shadow:0 2px #2e7d32,0 4px #1b5e20,0 4px 8px #0000004d}.tournament-action-btn.view-btn:active{box-shadow:0 2px #2980b9,0 4px #1f5582,0 4px 8px #0000004d}.create-tournament-btn{padding:12px 20px;background:gold;color:#2c3e50;border:none;font-family:"Press Start 2P",cursive;font-size:10px;cursor:pointer;box-shadow:0 4px #b8860b,0 8px #8b6914,0 8px 12px #0000004d;text-shadow:1px 1px 0 rgba(255,255,255,.5)}.create-tournament-btn:hover{background:#ffe55c;transform:translateY(-2px);box-shadow:0 6px #b8860b,0 10px #8b6914,0 10px 16px #0000004d}.back-button{padding:12px 20px;background:#87ceeb;color:#2c3e50;border:none;font-family:"Press Start 2P",cursive;font-size:10px;cursor:pointer;box-shadow:0 4px #4682b4,0 8px #2f4f4f,0 8px 12px #0000004d;text-shadow:1px 1px 0 rgba(255,255,255,.5)}.back-button:hover{background:#b0e0e6;transform:translateY(-2px);box-shadow:0 6px #4682b4,0 10px #2f4f4f,0 10px 16px #0000004d}.tournament-leaderboard-modal{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:3000;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:modalFadeIn .3s ease-out}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}.tournament-leaderboard-content{background:#2c3e50f2;border:4px solid #1a252f;position:relative;box-shadow:4px 4px #1a252f,8px 8px #34495e,12px 12px 30px #0009;max-width:900px;width:95%;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;animation:modalSlideIn .4s ease-out}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.tournament-leaderboard-content:before{content:"";position:absolute;top:-4px;left:-4px;width:8px;height:8px;background:#ff6b35;box-shadow:calc(100% + 0px) 0 0 #ff6b35,0 calc(100% + 0px) 0 #ff6b35,calc(100% + 0px) calc(100% + 0px) 0 #ff6b35}.tournament-leaderboard-header{display:flex;justify-content:space-between;align-items:center;padding:20px 25px;border-bottom:3px solid #34495E;background:#ff6b351a}.tournament-leaderboard-header h2{font-family:"Press Start 2P",cursive;font-size:16px;color:#ff6b35;text-shadow:2px 2px 0 #1a252f;margin:0}.close-modal-btn{width:32px;height:32px;background:#e74c3c33;border:2px solid #e74c3c;color:#ffe4b5;font-family:"Press Start 2P",cursive;font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.close-modal-btn:hover{background:#e74c3c66;transform:scale(1.1)}.close-modal-btn:active{transform:scale(.95)}.tournament-leaderboard-info{padding:20px 25px;border-bottom:2px solid #34495E;background:#87ceeb0d}.tournament-meta-info{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:15px}.meta-item{display:flex;justify-content:space-between;align-items:center;font-size:10px}.meta-label{color:#87ceeb;text-shadow:1px 1px 0 #1a252f}.meta-value{color:#ffe4b5;font-weight:700;text-shadow:1px 1px 0 #1a252f}.meta-value.status-active{color:#4caf50}.meta-value.status-ending-soon{color:#ff6b35}.meta-value.status-ended{color:#95a5a6}.tournament-leaderboard-controls{display:flex;justify-content:center;align-items:center;padding:15px 25px;border-bottom:2px solid #34495E;background:#2c3e504d}.leaderboard-actions{display:flex;gap:10px}.join-tournament-btn,.refresh-leaderboard-btn{padding:8px 15px;border:none;font-family:"Press Start 2P",cursive;font-size:8px;cursor:pointer;text-shadow:1px 1px 0 rgba(0,0,0,.5)}.join-tournament-btn{background:#4caf50;color:#fff;box-shadow:0 3px #2e7d32,0 6px #1b5e20,0 6px 8px #0000004d}.join-tournament-btn:hover{background:#5cbf60;transform:translateY(-1px);box-shadow:0 4px #2e7d32,0 7px #1b5e20,0 7px 10px #0000004d}.refresh-leaderboard-btn{background:#3498db;color:#fff;box-shadow:0 3px #2980b9,0 6px #1f5582,0 6px 8px #0000004d}.refresh-leaderboard-btn:hover{background:#4fb3d9;transform:translateY(-1px);box-shadow:0 4px #2980b9,0 7px #1f5582,0 7px 10px #0000004d}.tournament-leaderboard-table{flex:1;overflow:hidden;display:flex;flex-direction:column}.leaderboard-header{display:grid;grid-template-columns:50px 1fr 100px;gap:10px;padding:15px 25px;background:#ff6b351a;border-bottom:2px solid #FF6B35;font-family:"Press Start 2P",cursive;font-size:9px;color:#ff6b35;text-shadow:1px 1px 0 #1a252f}.header-rank{text-align:center}.header-player{text-align:left}.header-score{text-align:center}.leaderboard-entries{flex:1;overflow-y:auto;padding:0 25px}.tournament-leaderboard-entry{display:grid;grid-template-columns:50px 1fr 100px;gap:10px;padding:12px 0;border-bottom:1px solid rgba(52,73,94,.5);font-size:9px;align-items:center;transition:background-color .2s ease}.tournament-leaderboard-entry:hover{background:#87ceeb1a}.tournament-leaderboard-entry.current-player{background:#ffe4b533;border:1px solid rgba(255,228,181,.5);border-radius:0;margin:2px 0;padding:11px 10px}.tournament-leaderboard-entry.rank-1 .entry-rank{color:gold;font-weight:700}.tournament-leaderboard-entry.rank-2 .entry-rank{color:silver;font-weight:700}.tournament-leaderboard-entry.rank-3 .entry-rank{color:#cd7f32;font-weight:700}.entry-rank{text-align:center;font-family:"Press Start 2P",cursive;color:#87ceeb;text-shadow:1px 1px 0 #1a252f}.entry-player{display:flex;align-items:center;gap:8px}.entry-player-name{color:#ffe4b5;text-shadow:1px 1px 0 #1a252f;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.entry-player-badge{font-size:8px}.entry-score{text-align:center;color:#4caf50;font-family:"Press Start 2P",cursive;text-shadow:1px 1px 0 #1a252f}.leaderboard-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;color:#87ceeb}.loading-spinner{width:30px;height:30px;border:3px solid rgba(135,206,235,.3);border-top:3px solid #87CEEB;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:15px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-spinner+.loading-text{font-family:"Press Start 2P",cursive;font-size:10px;text-shadow:1px 1px 0 #1a252f}.tournament-leaderboard-footer{padding:15px 25px;border-top:2px solid #34495E;background:#2c3e5099;display:flex;justify-content:space-between;align-items:center}.my-position{display:flex;align-items:center;gap:10px;font-size:10px}.position-label{color:#87ceeb;text-shadow:1px 1px 0 #1a252f}.position-rank{color:gold;font-family:"Press Start 2P",cursive;text-shadow:1px 1px 0 #1a252f}.position-score{color:#4caf50;font-family:"Press Start 2P",cursive;text-shadow:1px 1px 0 #1a252f}.modal-actions{display:flex;gap:10px}.modal-action-btn{padding:8px 15px;border:none;font-family:"Press Start 2P",cursive;font-size:9px;cursor:pointer;text-shadow:1px 1px 0 rgba(0,0,0,.5)}.modal-action-btn.secondary{background:#95a5a6;color:#2c3e50;box-shadow:0 3px #7f8c8d,0 6px #5a6872,0 6px 8px #0000004d}.modal-action-btn.secondary:hover{background:#a9b8b9;transform:translateY(-1px);box-shadow:0 4px #7f8c8d,0 7px #5a6872,0 7px 10px #0000004d}.modal-action-btn:active{transform:translateY(3px);box-shadow:0 1px #7f8c8d,0 2px #5a6872,0 2px 4px #0000004d}.game-title{font-family:"Press Start 2P",cursive;font-size:36px;color:#fff;text-shadow:2px 2px 0 #2C3E50,4px 4px 0 #34495E,6px 6px 0 #3E5A7C,8px 8px 12px rgba(0,0,0,.3);letter-spacing:2px;animation:float 3s ease-in-out infinite;position:relative;z-index:1;margin-bottom:20px}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.main-container{display:flex;gap:30px;align-items:flex-start;padding:20px;position:relative;z-index:1}.game-section{display:flex;flex-direction:column;align-items:center}.info-section{display:flex;flex-direction:column;gap:20px;padding:10px;min-width:300px}canvas{border:4px solid #2C3E50;background:#d9fbe6;display:block;margin:0 auto;image-rendering:pixelated;image-rendering:-moz-crisp-edges;image-rendering:crisp-edges}.container{max-width:none;width:auto;padding:0;background:none;box-shadow:none;text-align:center;position:relative;margin:0 auto;display:flex;justify-content:center;align-items:center}.current-mode-info{background:#2c3e50;border:3px solid #1a252f;padding:15px;position:relative}.current-mode-info:before{content:"";position:absolute;top:-3px;left:-3px;width:6px;height:6px;background:#ffe4b5;box-shadow:calc(100% + 0px) 0 0 #f30,0 calc(100% + 0px) 0 #f30,calc(100% + 0px) calc(100% + 0px) 0 #f30}.mode-indicator{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font-size:10px}.mode-label{color:#87ceeb;text-shadow:1px 1px 0 #1a252f}.mode-value{color:#ffe4b5;font-weight:700;text-shadow:1px 1px 0 #1a252f}.mode-value.practice{color:#4caf50}.mode-value.tournament{color:#ff6b35}.change-mode-btn{width:100%;padding:8px;background:#87ceeb;color:#2c3e50;border:none;font-family:"Press Start 2P",cursive;font-size:8px;cursor:pointer;box-shadow:0 3px #4682b4,0 6px #2f4f4f,0 6px 8px #0000004d;text-shadow:1px 1px 0 rgba(255,255,255,.5)}.change-mode-btn:hover{background:#b0e0e6;transform:translateY(-1px);box-shadow:0 4px #4682b4,0 7px #2f4f4f,0 7px 10px #0000004d}.player-info,.leaderboard-panel{background:#2c3e50;border:3px solid #1a252f;padding:15px;position:relative}.player-info:before,.leaderboard-panel:before{content:"";position:absolute;top:-3px;left:-3px;width:6px;height:6px;background:#ffe4b5;box-shadow:calc(100% + 0px) 0 0 #ffe4b5,0 calc(100% + 0px) 0 #ffe4b5,calc(100% + 0px) calc(100% + 0px) 0 #ffe4b5}.player-info h3,.leaderboard-panel h3{color:#ffe4b5;margin-bottom:15px;font-size:14px;text-align:center;text-shadow:2px 2px 0 #1a252f}.info-item{display:flex;justify-content:space-between;margin-bottom:10px;font-size:10px}.info-item .label{color:#87ceeb;text-shadow:1px 1px 0 #1a252f}.info-item .value{color:#fff;font-weight:700;text-shadow:1px 1px 0 #1a252f}#player-name{color:#ffe4b5}#player-role{color:#87ceeb;font-size:9px}#player-role.ADMIN{color:gold}.tournament-info{background:#2c3e50;border:3px solid #1a252f;padding:15px;position:relative;border-left:6px solid #FF6B35}.tournament-info:before{content:"";position:absolute;top:-3px;left:-3px;width:6px;height:6px;background:#ff6b35;box-shadow:calc(100% + 0px) 0 0 #ff6b35,0 calc(100% + 0px) 0 #ff6b35,calc(100% + 0px) calc(100% + 0px) 0 #ff6b35}.tournament-info h3{color:#ff6b35;margin-bottom:15px;font-size:12px;text-align:center;text-shadow:2px 2px 0 #1a252f}.leaderboard-list{max-height:133px;overflow-y:auto;margin-bottom:10px}.leaderboard-entry{display:grid;grid-template-columns:30px 1fr 80px;gap:10px;padding:8px;margin-bottom:5px;background:#87ceeb33;border:2px solid transparent;font-size:9px;align-items:center;position:relative;transition:none}.leaderboard-entry.gold{background:gold;border:2px solid #B8860B;color:#000;box-shadow:inset -2px -2px #b8860b,2px 2px #b8860b}.leaderboard-entry.silver{background:silver;border:2px solid #808080;color:#000;box-shadow:inset -2px -2px gray,2px 2px gray}.leaderboard-entry.bronze{background:#cd7f32;border:2px solid #8B4513;color:#000;box-shadow:inset -2px -2px #8b4513,2px 2px #8b4513}.leaderboard-entry.current-player{border:2px solid #FFE4B5;background:#ffe4b54d;box-shadow:0 0 0 1px #ffe4b5,inset 0 0 10px #ffe4b54d}.rank{text-align:center;font-weight:700}.player-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.score{text-align:right;font-weight:700}.refresh-button{width:100%;padding:10px;background:#4caf50;color:#fff;border:none;font-family:"Press Start 2P",cursive;font-size:10px;cursor:pointer;position:relative;box-shadow:0 4px #2e7d32,0 8px #1b5e20,0 12px 12px #0000004d;transition:none;text-shadow:1px 1px 0 #1B5E20}.refresh-button:hover{background:#5cbf60;transform:translateY(-2px);box-shadow:0 6px #2e7d32,0 10px #1b5e20,0 14px 16px #0000004d}.refresh-button:active{transform:translateY(4px);box-shadow:0 2px #2e7d32,0 4px #1b5e20,0 6px 8px #0000004d}.restart-button,.start-button{display:none;position:absolute;padding:12px 24px;background-color:#ffe4b5;color:#2c3e50;border:none;font-family:"Press Start 2P",cursive;font-size:12px;cursor:pointer;text-transform:uppercase;box-shadow:0 0 0 3px #2c3e50,0 6px #2c3e50,0 12px #1a252f,0 12px 20px #0000004d;transition:none;text-shadow:1px 1px 0 rgba(255,255,255,.5)}.restart-button{top:60%;left:50%;transform:translate(-50%,-50%)}.start-button{top:50%;left:50%;transform:translate(-50%,-50%);z-index:50}.restart-button:hover,.start-button:hover{background-color:#fff;transform:translate(-50%,-52%)}.restart-button:active,.start-button:active{transform:translate(-50%,-48%);box-shadow:0 0 0 3px #2c3e50,0 3px #2c3e50,0 6px #1a252f,0 6px 10px #0000004d}.restart-button.show,.start-button.show{display:inline-block;opacity:0;animation:bounceIn .6s ease-out forwards}@keyframes bounceIn{0%{opacity:0;transform:translate(-50%,-50%) scale(.3)}50%{transform:translate(-50%,-50%) scale(1.1)}70%{transform:translate(-50%,-50%) scale(.9)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.chain-info{background:#2c3e50;border:3px solid #1a252f;padding:15px;font-size:9px;position:relative}.chain-info:before{content:"";position:absolute;top:-3px;left:-3px;width:6px;height:6px;background:#ffe4b5;box-shadow:calc(100% + 0px) 0 0 #f30,0 calc(100% + 0px) 0 #f30,calc(100% + 0px) calc(100% + 0px) 0 #f30}.linera-badge{display:flex;align-items:center;gap:8px;margin-bottom:10px;padding-bottom:10px;border-bottom:2px solid #34495E}.linera-badge img{filter:drop-shadow(1px 1px 2px rgba(0,0,0,.3));image-rendering:-webkit-optimize-contrast;image-rendering:-moz-crisp-edges;image-rendering:crisp-edges}.linera-badge span{font-size:10px;color:#ffe4b5;text-shadow:1px 1px 0 #1a252f}.chain-id-text{font-size:8px;word-break:break-all;display:block;margin-top:5px;color:#87ceeb;background:#1a252f;padding:5px;border:1px solid #34495E;font-family:monospace}.loading{text-align:center;color:#87ceeb;padding:20px;font-size:10px;text-shadow:1px 1px 0 #1a252f}.admin-only{display:none}.admin-badge{color:gold;margin-left:5px}.leaderboard-list::-webkit-scrollbar,.tournament-list-container::-webkit-scrollbar{width:8px}.leaderboard-list::-webkit-scrollbar-track,.tournament-list-container::-webkit-scrollbar-track{background:#1a252f;border:1px solid #34495E}.leaderboard-list::-webkit-scrollbar-thumb,.tournament-list-container::-webkit-scrollbar-thumb{background:#87ceeb;border:1px solid #1a252f}.leaderboard-list::-webkit-scrollbar-thumb:hover,.tournament-list-container::-webkit-scrollbar-thumb:hover{background:#98d8e8}@media (max-width: 768px){.initial-loading .game-title{font-size:28px;margin-bottom:30px}.loading-container{padding:30px 20px;margin:0 20px;min-width:auto;width:90%}.linera-logo-loading img{width:60px;height:60px}.loading-text{font-size:10px}.step{font-size:9px}.loading-bar-container{flex-direction:column;gap:10px}.main-container{flex-direction:column;align-items:center}.info-section{width:100%;max-width:350px}.game-title{font-size:24px}.mode-selection{padding:30px 20px;margin:0 20px}.mode-button{width:240px;font-size:12px;padding:16px}.mode-description{font-size:9px}.tournament-list{padding:30px 20px;margin:0 20px}.tournament-creation{padding:20px;margin:10px;max-height:90vh}.form-row{grid-template-columns:1fr;gap:10px}.form-actions{flex-direction:column;align-items:center}.cancel-button,.create-button{width:100%;max-width:200px}.tournament-card-actions{flex-direction:column;align-items:center}.tournament-action-btn{width:100%;max-width:200px}.username-modal-content{padding:30px 20px;margin:20px}.username-modal-content h2{font-size:14px;margin-bottom:25px}.username-actions{flex-direction:column;align-items:center}.random-name-button,.confirm-name-button{width:100%;max-width:200px}.tournament-leaderboard-content{width:98%;max-height:95vh}.tournament-leaderboard-header{padding:15px 20px}.tournament-leaderboard-header h2{font-size:14px}.tournament-meta-info{grid-template-columns:1fr;gap:10px}.tournament-leaderboard-controls{flex-direction:column;gap:15px;padding:15px 20px}.leaderboard-actions{justify-content:center}.leaderboard-header{grid-template-columns:40px 1fr 80px;padding:10px 20px;font-size:8px}.tournament-leaderboard-entry{grid-template-columns:40px 1fr 80px;font-size:8px}.leaderboard-entries{padding:0 20px}.tournament-leaderboard-footer{flex-direction:column;gap:15px;padding:15px 20px}.my-position{font-size:9px}}*{margin:0;padding:0;box-sizing:border-box}body{display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(to bottom,#87ceeb,#87ceeb 40%,#98d8e8 70%,#b0e0e6 85%,khaki 95%,#ffe4b5);min-height:100vh;margin:0;font-family:"Press Start 2P",cursive;font-size:12px;color:#fff;position:relative}body:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background-image:radial-gradient(ellipse 600px 200px at 20% 30%,rgba(255,255,255,.3),transparent),radial-gradient(ellipse 500px 150px at 80% 20%,rgba(255,255,255,.2),transparent),radial-gradient(ellipse 400px 100px at 60% 60%,rgba(255,255,255,.2),transparent);pointer-events:none;opacity:.6}.initial-loading{position:fixed;top:0;left:0;width:100%;height:100%;background:linear-gradient(to bottom,#87ceeb,#87ceeb 40%,#98d8e8 70%,#b0e0e6 85%,khaki 95%,#ffe4b5);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:1000;font-family:"Press Start 2P",cursive}.initial-loading:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background-image:radial-gradient(ellipse 600px 200px at 20% 30%,rgba(255,255,255,.3),transparent),radial-gradient(ellipse 500px 150px at 80% 20%,rgba(255,255,255,.2),transparent),radial-gradient(ellipse 400px 100px at 60% 60%,rgba(255,255,255,.2),transparent);pointer-events:none;opacity:.6}.initial-loading .game-title{font-size:42px;color:#fff;text-shadow:2px 2px 0 #2C3E50,4px 4px 0 #34495E,6px 6px 0 #3E5A7C,8px 8px 12px rgba(0,0,0,.3);letter-spacing:3px;animation:float 3s ease-in-out infinite;position:relative;z-index:1;margin-bottom:50px}.loading-container{background:#2c3e50e6;border:4px solid #1a252f;padding:40px;position:relative;z-index:1;box-shadow:4px 4px #1a252f,8px 8px #34495e,12px 12px 20px #0000004d;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);min-width:400px;text-align:center}.loading-container:before{content:"";position:absolute;top:-4px;left:-4px;width:8px;height:8px;background:#ffe4b5;box-shadow:calc(100% + 0px) 0 0 #f30,0 calc(100% + 0px) 0 #f30,calc(100% + 0px) calc(100% + 0px) 0 #f30}.linera-logo-loading{position:relative;display:inline-block;margin-bottom:30px}.linera-logo-loading img{filter:drop-shadow(4px 4px 8px rgba(0,0,0,.3));image-rendering:-webkit-optimize-contrast;image-rendering:-moz-crisp-edges;image-rendering:crisp-edges;animation:logoFloat 2s ease-in-out infinite}@keyframes logoFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.loading-text{font-size:12px;color:#ffe4b5;margin-bottom:25px;text-shadow:1px 1px 0 #1a252f;min-height:20px}.loading-bar-container{margin-bottom:30px;display:flex;align-items:center;gap:15px}.loading-bar{flex:1;height:16px;background:#1a252f;border:2px solid #34495E;position:relative;overflow:hidden}.loading-progress{height:100%;width:0%;transition:width .3s ease;position:relative}.loading-progress:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);animation:shimmer 2s infinite}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.loading-percentage{font-size:11px;color:#87ceeb;text-shadow:1px 1px 0 #1a252f;min-width:35px}.loading-steps{display:flex;flex-direction:column;gap:8px;text-align:left}.step{display:flex;align-items:center;gap:10px;font-size:10px;transition:all .3s ease}.step-icon{font-size:12px;width:15px;text-align:center}.step.pending{color:#87ceeb;opacity:.6}.step.active{color:#ffe4b5;opacity:1}.step.active .step-icon{color:#f30;animation:stepPulse 1s ease-in-out infinite}.step.completed{color:#4caf50;opacity:1}.step.completed .step-icon{color:#4caf50}@keyframes stepPulse{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}.loading-error{text-align:center;padding:20px;background:#ff6b3533;border:2px solid #FF6B35;margin-top:20px}.error-message{font-size:11px;color:#ffe4b5;margin-bottom:15px;text-shadow:1px 1px 0 #1a252f}.retry-button{padding:10px 20px;background:#ff6b35;color:#fff;border:none;font-family:"Press Start 2P",cursive;font-size:9px;cursor:pointer;box-shadow:0 4px #cc4f2a,0 8px #99371f,0 8px 12px #0000004d;text-shadow:1px 1px 0 #99371F}.retry-button:hover{background:#ff7a47;transform:translateY(-2px);box-shadow:0 6px #cc4f2a,0 10px #99371f,0 10px 16px #0000004d}.retry-button:active{transform:translateY(4px);box-shadow:0 2px #cc4f2a,0 4px #99371f,0 4px 8px #0000004d}.username-modal{position:fixed;top:0;left:0;width:100%;height:100%;background:#000c;display:flex;align-items:center;justify-content:center;z-index:2000;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.username-modal-content{background:#2c3e50f2;border:4px solid #1a252f;padding:40px;position:relative;box-shadow:4px 4px #1a252f,8px 8px #34495e,12px 12px 20px #00000080;max-width:500px;width:90%;text-align:center}.username-modal-content:before{content:"";position:absolute;top:-4px;left:-4px;width:8px;height:8px;background:#4caf50;box-shadow:calc(100% + 0px) 0 0 #4caf50,0 calc(100% + 0px) 0 #4caf50,calc(100% + 0px) calc(100% + 0px) 0 #4caf50}.username-modal-content h2{font-family:"Press Start 2P",cursive;font-size:16px;color:#ffe4b5;text-shadow:2px 2px 0 #1a252f;margin-bottom:30px;animation:float 3s ease-in-out infinite}.username-form{display:flex;flex-direction:column;gap:20px;align-items:center}.username-form label{font-family:"Press Start 2P",cursive;font-size:12px;color:#87ceeb;text-shadow:1px 1px 0 #1a252f;margin-bottom:10px}.username-input{width:100%;max-width:300px;padding:12px 15px;background:#1a252f;border:3px solid #34495E;color:#fff;font-family:"Press Start 2P",cursive;font-size:11px;text-align:center;box-shadow:inset 3px 3px 6px #0000004d;transition:border-color .3s ease}.username-input:focus{outline:none;border-color:#4caf50;box-shadow:inset 3px 3px 6px #0000004d,0 0 0 3px #4caf504d}.username-input::placeholder{color:#7f8c8d;opacity:.8}.username-validation{background:#e74c3c33;border:2px solid #e74c3c;padding:10px 15px;width:100%;max-width:300px}.validation-message{font-family:"Press Start 2P",cursive;font-size:9px;color:#ffe4b5;text-shadow:1px 1px 0 #1a252f}.username-info{display:flex;flex-direction:column;gap:8px;background:#87ceeb1a;border:2px solid #34495E;padding:15px;width:100%;max-width:300px}.info-item{display:flex;align-items:center;gap:8px;font-family:"Press Start 2P",cursive;font-size:9px;color:#87ceeb;text-shadow:1px 1px 0 #1a252f}.info-icon{font-size:11px;color:#ffe4b5}.username-actions{display:flex;gap:15px;justify-content:center;flex-wrap:wrap;margin-top:10px}.random-name-button,.confirm-name-button{padding:12px 20px;border:none;font-family:"Press Start 2P",cursive;font-size:10px;cursor:pointer;position:relative;text-shadow:1px 1px 0 rgba(0,0,0,.5);min-width:120px}.random-name-button{background:#95a5a6;color:#2c3e50;box-shadow:0 4px #7f8c8d,0 8px #5a6872,0 8px 12px #0000004d}.random-name-button:hover{background:#a9b8b9;transform:translateY(-2px);box-shadow:0 6px #7f8c8d,0 10px #5a6872,0 10px 16px #0000004d}.confirm-name-button{background:#4caf50;color:#fff;box-shadow:0 4px #2e7d32,0 8px #1b5e20,0 8px 12px #0000004d}.confirm-name-button:hover{background:#5cbf60;transform:translateY(-2px);box-shadow:0 6px #2e7d32,0 10px #1b5e20,0 10px 16px #0000004d}.confirm-name-button:disabled{background:#7f8c8d;color:#95a5a6;cursor:not-allowed;box-shadow:0 2px #5a6872,0 4px #34495e,0 4px 8px #0000004d;transform:none}.confirm-name-button:disabled:hover{transform:none;box-shadow:0 2px #5a6872,0 4px #34495e,0 4px 8px #0000004d}.random-name-button:active,.confirm-name-button:active{transform:translateY(4px);box-shadow:0 2px #7f8c8d,0 4px #5a6872,0 4px 8px #0000004d}.confirm-name-button:active:not(:disabled){box-shadow:0 2px #2e7d32,0 4px #1b5e20,0 4px 8px #0000004d}.mode-selection{display:flex;flex-direction:column;gap:30px;align-items:center;z-index:1;position:relative;padding:40px;background:#2c3e50e6;border:4px solid #1a252f;box-shadow:4px 4px #1a252f,8px 8px #34495e,12px 12px 20px #0000004d;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);margin-top:20px}.mode-selection:before{content:"";position:absolute;top:-4px;left:-4px;width:8px;height:8px;background:#ffe4b5;box-shadow:calc(100% + 0px) 0 0 #f30,0 calc(100% + 0px) 0 #f30,calc(100% + 0px) calc(100% + 0px) 0 #f30}.mode-selection h2{font-size:16px;color:#ffe4b5;text-shadow:2px 2px 0 #1a252f;margin-bottom:10px;text-align:center}.mode-button{width:280px;padding:20px;background:#4caf50;color:#fff;border:none;font-family:"Press Start 2P",cursive;font-size:14px;cursor:pointer;position:relative;text-align:center;transition:none;text-shadow:2px 2px 0 #1B5E20;box-shadow:0 6px #2e7d32,0 12px #1b5e20,0 12px 20px #0000004d}.mode-button:hover{transform:translateY(-3px);box-shadow:0 9px #2e7d32,0 15px #1b5e20,0 15px 25px #0006}.mode-button:active{transform:translateY(6px);box-shadow:0 3px #2e7d32,0 6px #1b5e20,0 6px 10px #0000004d}.mode-button.practice{background:#4caf50;border:3px solid #2E7D32}.mode-button.practice:hover{background:#5cbf60}.mode-button.tournament{background:#ff6b35;border:3px solid #CC4F2A;box-shadow:0 6px #cc4f2a,0 12px #99371f,0 12px 20px #0000004d;text-shadow:2px 2px 0 #99371F}.mode-button.tournament:hover{background:#ff7a47;box-shadow:0 9px #cc4f2a,0 15px #99371f,0 15px 25px #0006}.mode-button.tournament:active{box-shadow:0 3px #cc4f2a,0 6px #99371f,0 6px 10px #0000004d}.mode-icon{font-size:24px;margin-bottom:10px;display:block}.mode-description{font-size:10px;margin-top:8px;color:#ffffffe6;line-height:1.4;text-shadow:1px 1px 0 rgba(0,0,0,.5)}.tournament-creation{display:flex;flex-direction:column;gap:20px;align-items:center;z-index:1;position:relative;padding:40px;background:#2c3e50e6;border:4px solid #1a252f;box-shadow:4px 4px #1a252f,8px 8px #34495e,12px 12px 20px #0000004d;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);margin-top:20px;max-width:700px;width:90%;max-height:80vh;overflow-y:auto}.tournament-creation:before{content:"";position:absolute;top:-4px;left:-4px;width:8px;height:8px;background:gold;box-shadow:calc(100% + 0px) 0 0 gold,0 calc(100% + 0px) 0 gold,calc(100% + 0px) calc(100% + 0px) 0 gold}.tournament-creation h2{font-size:18px;color:gold;text-shadow:2px 2px 0 #1a252f;text-align:center;margin-bottom:10px}.tournament-form{width:100%;display:flex;flex-direction:column;gap:25px}.form-section{background:#87ceeb1a;border:2px solid #34495E;padding:20px;position:relative}.form-section:before{content:"";position:absolute;top:-2px;left:-2px;width:4px;height:4px;background:#87ceeb}.form-section h3{font-size:12px;color:#ffe4b5;text-shadow:1px 1px 0 #1a252f;margin-bottom:15px;border-bottom:1px solid #34495E;padding-bottom:8px}.form-group{margin-bottom:15px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-group label{display:block;font-size:10px;color:#87ceeb;text-shadow:1px 1px 0 #1a252f;margin-bottom:5px}.form-input,.form-textarea,.form-select{width:100%;padding:8px 10px;background:#1a252f;border:2px solid #34495E;color:#fff;font-family:"Press Start 2P",cursive;font-size:9px;box-shadow:inset 2px 2px 4px #0000004d}.form-input:focus,.form-textarea:focus,.form-select:focus{outline:none;border-color:#87ceeb;box-shadow:inset 2px 2px 4px #0000004d,0 0 0 2px #87ceeb4d}.form-textarea{resize:vertical;min-height:60px;max-height:100px}.form-select{cursor:pointer}.form-select option{background:#1a252f;color:#fff}.form-actions{display:flex;gap:15px;justify-content:center;flex-wrap:wrap;margin-top:10px}.cancel-button,.create-button{padding:12px 20px;border:none;font-family:"Press Start 2P",cursive;font-size:10px;cursor:pointer;position:relative;text-shadow:1px 1px 0 rgba(0,0,0,.5);min-width:120px}.cancel-button{background:#95a5a6;color:#2c3e50;box-shadow:0 4px #7f8c8d,0 8px #5a6872,0 8px 12px #0000004d}.cancel-button:hover{background:#a9b8b9;transform:translateY(-2px);box-shadow:0 6px #7f8c8d,0 10px #5a6872,0 10px 16px #0000004d}.create-button{background:gold;color:#2c3e50;box-shadow:0 4px #b8860b,0 8px #8b6914,0 8px 12px #0000004d}.create-button:hover{background:#ffe55c;transform:translateY(-2px);box-shadow:0 6px #b8860b,0 10px #8b6914,0 10px 16px #0000004d}.cancel-button:active,.create-button:active{transform:translateY(4px);box-shadow:0 2px #7f8c8d,0 4px #5a6872,0 4px 8px #0000004d}.create-button:active{box-shadow:0 2px #b8860b,0 4px #8b6914,0 4px 8px #0000004d}.tournament-list{display:flex;flex-direction:column;gap:20px;align-items:center;z-index:1;position:relative;padding:40px;background:#2c3e50e6;border:4px solid #1a252f;box-shadow:4px 4px #1a252f,8px 8px #34495e,12px 12px 20px #0000004d;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);margin-top:20px;max-width:600px;width:90%}.tournament-list:before{content:"";position:absolute;top:-4px;left:-4px;width:8px;height:8px;background:#ffe4b5;box-shadow:calc(100% + 0px) 0 0 #f30,0 calc(100% + 0px) 0 #f30,calc(100% + 0px) calc(100% + 0px) 0 #f30}.tournament-list h2{font-size:16px;color:#ffe4b5;text-shadow:2px 2px 0 #1a252f;text-align:center}.tournament-list-container{width:100%;max-height:400px;overflow-y:auto;display:flex;flex-direction:column;gap:15px}.tournament-card{background:#87ceeb33;border:3px solid #34495E;padding:15px;position:relative}.tournament-card:before{content:"";position:absolute;top:-3px;left:-3px;width:6px;height:6px;background:#87ceeb}.tournament-card.active{border-color:#4caf50}.tournament-card.active:before{background:#4caf50}.mobile-touch-target{min-width:44px \!important;min-height:44px \!important;padding:8px \!important}.admin-icon-btn.mobile-touch-target{width:44px \!important;height:44px \!important;font-size:18px \!important;margin:2px \!important}.close-modal-btn.mobile-touch-target{width:48px \!important;height:48px \!important;font-size:18px \!important}.tournament-action-btn.mobile-touch-target{font-size:12px \!important;padding:12px 16px \!important;min-height:44px \!important}.game-section{display:flex;justify-content:center;align-items:center;padding:10px;box-sizing:border-box;overflow:hidden}#gameCanvas{max-width:90vw;max-height:none;width:auto;height:auto;touch-action:manipulation;object-fit:contain;border-radius:8px;box-shadow:0 4px 12px #0000004d}#gameCanvas.mobile-canvas{max-width:95vw;max-height:75vh;border-radius:12px;box-shadow:0 6px 20px #0006}@media (max-width: 768px){body{overflow-x:hidden}.main-container{width:100vw;max-width:100%;overflow-x:hidden;box-sizing:border-box;flex-direction:column!important}.game-section{width:100%;max-width:100%;padding:5px;margin:0;flex:none}.info-section{width:100%;max-width:100%;padding:10px;margin:0;box-sizing:border-box;overflow-x:hidden}.container{max-width:100%;width:100%;padding:0 5px;box-sizing:border-box}#gameCanvas{max-width:90vw!important;max-height:70vh!important}#gameCanvas.mobile-canvas{max-width:95vw!important;max-height:75vh!important}.start-button,.restart-button,.mode-button,.primary-auth-button,.refresh-button{min-height:48px!important;padding:12px 20px!important;font-size:14px!important;touch-action:manipulation}.mobile-touch-target{min-height:44px!important;min-width:44px!important;padding:8px!important}.tournament-meta,.info-item,.step{font-size:12px \!important}.loading-text{font-size:14px \!important}.meta-item{font-size:12px \!important}.username-modal-content,.tournament-leaderboard-content{width:95vw \!important;max-width:400px \!important;margin:10px \!important;padding:20px \!important}.tournament-list{width:95vw \!important;max-width:95vw \!important;padding:20px 15px \!important;margin:10px auto \!important;box-sizing:border-box}.tournament-list-container{max-height:50vh \!important;width:100% \!important;padding:0 \!important}.tournament-card{padding:15px \!important;margin-bottom:12px \!important;width:100% \!important;box-sizing:border-box;position:relative}.tournament-meta{display:flex \!important;flex-direction:column \!important;gap:12px \!important;font-size:11px \!important;width:100% \!important}.tournament-meta .info-item{display:flex \!important;justify-content:space-between \!important;width:100% \!important;min-height:24px \!important;align-items:center \!important;padding:4px 0 \!important;border-bottom:1px solid rgba(52,73,94,.3) \!important}.tournament-meta .info-item .label{flex:0 0 auto \!important;margin-right:10px \!important}.tournament-meta .info-item .value{flex:1 1 auto \!important;text-align:right \!important;word-break:break-word \!important}.tournament-creation{width:95vw \!important;max-width:95vw \!important;padding:20px 15px \!important;margin:10px auto \!important;max-height:85vh \!important;box-sizing:border-box}.tournament-form{gap:20px \!important}.form-section{padding:15px \!important}.form-row{display:flex \!important;flex-direction:column \!important;gap:20px \!important;width:100% \!important}.form-row .form-group{width:100% \!important;margin-bottom:0 \!important;flex:none \!important}.form-group{width:100% \!important;margin-bottom:15px \!important}.form-group label{display:block \!important;width:100% \!important;margin-bottom:8px \!important;font-size:12px \!important}.form-input,.form-textarea,.form-select{font-size:12px \!important;padding:10px \!important;width:100% \!important;box-sizing:border-box}.form-actions{flex-direction:column \!important;gap:10px \!important}.cancel-button,.create-button{width:100% \!important;min-height:48px \!important;font-size:12px \!important}.tournament-name{font-size:16px \!important}.mode-button{min-height:60px \!important;padding:15px \!important;font-size:14px \!important}.start-button,.restart-button{min-height:50px \!important;font-size:16px \!important;padding:12px 24px \!important}.tournament-actions{gap:15px \!important;padding:20px \!important}.back-button,.create-tournament-btn{min-height:48px \!important;font-size:14px \!important;padding:12px 20px \!important}}@media (max-width: 480px){.username-modal-content,.tournament-leaderboard-content{width:98vw \!important;margin:5px \!important;padding:15px \!important}.tournament-list{width:98vw \!important;max-width:98vw \!important;padding:15px 10px \!important;margin:5px auto \!important}.tournament-creation{width:98vw \!important;max-width:98vw \!important;padding:15px 10px \!important;margin:5px auto \!important;max-height:90vh \!important}.tournament-meta{display:flex \!important;flex-direction:column \!important;gap:12px \!important;font-size:11px \!important;width:100% \!important}.tournament-meta .info-item{display:flex \!important;justify-content:space-between \!important;width:100% \!important;min-height:24px \!important;align-items:center \!important;padding:4px 0 \!important;border-bottom:1px solid rgba(52,73,94,.3) \!important}.tournament-meta .info-item .label{flex:0 0 auto \!important;margin-right:10px \!important}.tournament-meta .info-item .value{flex:1 1 auto \!important;text-align:right \!important;word-break:break-word \!important}.game-title{font-size:18px \!important}.tournament-card-actions{flex-direction:column \!important;gap:10px \!important}.tournament-action-btn{width:100% \!important;font-size:10px \!important;padding:12px 8px \!important}.tournament-card,.form-section{padding:12px \!important}.form-input,.form-textarea,.form-select{font-size:10px \!important;padding:8px \!important}}@media screen and (max-width: 768px){.tournament-card .tournament-meta{display:flex!important;flex-direction:column!important;gap:12px!important;grid-template-columns:none!important}.tournament-card .tournament-meta .info-item{display:flex!important;flex-direction:row!important;justify-content:space-between!important;width:100%!important;flex-wrap:nowrap!important}.tournament-form .form-row{display:flex!important;flex-direction:column!important;grid-template-columns:none!important}.tournament-form .form-row .form-group{width:100%!important;margin-bottom:15px!important}}@media (hover: none) and (pointer: coarse){.mode-button:hover,.tournament-action-btn:hover,.admin-icon-btn:hover{transform:none \!important}.mobile-touch-target:active{transform:scale(.95);opacity:.8}.tournament-admin-controls{gap:12px \!important}}@media (orientation: landscape) and (max-height: 500px){.initial-loading{padding:10px \!important}.game-title{font-size:16px \!important;margin-bottom:10px \!important}.loading-container{gap:15px \!important}#gameCanvas{max-height:80vh \!important}}@media (-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi){.game-title,.mode-button,.tournament-name{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}button.loading{opacity:.7;cursor:not-allowed;position:relative}button.loading:after{content:"";position:absolute;width:16px;height:16px;margin:auto;border:2px solid transparent;border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes spin{0%{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}}button:disabled{opacity:.7;cursor:not-allowed}input:disabled{opacity:.7;cursor:not-allowed}.linera-loading-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000e6;-webkit-backdrop-filter:none;backdrop-filter:none;display:flex;align-items:center;justify-content:center;z-index:10000;opacity:0;transition:opacity .2s ease;image-rendering:pixelated;image-rendering:-moz-crisp-edges;image-rendering:crisp-edges}.linera-loading-overlay.visible{opacity:1}.linera-loading-overlay.hiding{opacity:0}.linera-loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2rem;max-width:500px;width:90%}.linera-logo-spinner{position:relative;margin-bottom:2rem}.pixel-logo-container{display:flex;flex-direction:column;align-items:center;gap:20px}.pixel-text-linera{display:flex;gap:8px;justify-content:center;align-items:center;animation:pixelGlow 2s ease-in-out infinite alternate}.pixel-text-flappy{display:flex;gap:8px;justify-content:center;align-items:center;margin-top:12px;animation:pixelGlow 2s ease-in-out infinite alternate;animation-delay:.5s}.pixel-letter{display:flex;flex-direction:column;gap:2px}.pixel-row{display:flex;gap:2px}.pixel{width:8px;height:8px;border-radius:1px;transition:all .2s ease}.pixel.on{background-color:#de2a02;box-shadow:0 0 4px #de2a02,inset 1px 1px #ffffff4d,inset -1px -1px #0000004d;animation:pixelPulse 1.5s ease-in-out infinite alternate}.pixel.off{background-color:#2a0a05;box-shadow:inset 1px 1px #00000080}.pixel-blockchain{display:flex;align-items:center;justify-content:center;gap:4px;animation:blockchainFloat 3s ease-in-out infinite}.pixel-block{display:flex;flex-direction:column;gap:1px;animation:blockPulse 2s ease-in-out infinite}.pixel-block.block-1{animation-delay:0s}.pixel-block.block-2{animation-delay:.7s}.pixel-block.block-3{animation-delay:1.4s}.pixel-block-row{display:flex;gap:1px}.block-pixel{width:6px;height:6px;background-color:#4a0f07;border-radius:1px;box-shadow:inset 1px 1px #00000080}.block-pixel.active{background-color:#de2a02;box-shadow:0 0 3px #de2a02,inset 1px 1px #ffffff4d;animation:activePixelPulse 1s ease-in-out infinite alternate}.pixel-connection{display:flex;flex-direction:column;gap:1px;margin:0 2px}.connection-pixel{width:3px;height:2px;background-color:#de2a02;border-radius:1px;opacity:.7;animation:connectionFlow 1.5s ease-in-out infinite}.connection-pixel:nth-child(1){animation-delay:0s}.connection-pixel:nth-child(2){animation-delay:.2s}.connection-pixel:nth-child(3){animation-delay:.4s}.loading-text-container{width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.loading-title{color:#fff;font-family:"Press Start 2P",monospace;font-size:1rem;font-weight:400;margin:0 0 1rem;text-shadow:2px 2px 0 #de2a02,4px 4px 0 rgba(0,0,0,.5);animation:titleFlicker 3s ease-in-out infinite;line-height:1.4}.loading-message{color:#e2e8f0;font-family:"Press Start 2P",monospace;font-size:.7rem;margin:0 0 1.5rem;min-height:2rem;animation:messageSlide .3s ease;line-height:1.4}.loading-progress{display:flex;justify-content:center;align-items:center;width:100%;margin-top:1rem}.progress-dots{display:flex;gap:8px;justify-content:center;align-items:center;width:100%;max-width:300px;margin:0 auto}.progress-dots .dot{width:12px;height:12px;border-radius:2px;background-color:#de2a02;box-shadow:0 0 4px #de2a02,inset 2px 2px #fff3,inset -2px -2px #0000004d;animation:pixelDotBounce 1.4s ease-in-out infinite both}.progress-dots .dot:nth-child(1){animation-delay:-.56s}.progress-dots .dot:nth-child(2){animation-delay:-.48s}.progress-dots .dot:nth-child(3){animation-delay:-.4s}.progress-dots .dot:nth-child(4){animation-delay:-.32s}.progress-dots .dot:nth-child(5){animation-delay:-.24s}.progress-dots .dot:nth-child(6){animation-delay:-.16s}.progress-dots .dot:nth-child(7){animation-delay:-.08s}.progress-dots .dot:nth-child(8){animation-delay:0s}.linera-logo-spinner.blockchain .pixel.on{background-color:#de2a02;box-shadow:0 0 6px #de2a02,inset 1px 1px #ffffff4d}.linera-logo-spinner.tournament .pixel.on{background-color:#ff3d1a;box-shadow:0 0 6px #ff3d1a,inset 1px 1px #ffffff4d}.linera-logo-spinner.score .pixel.on{background-color:#de2a02;box-shadow:0 0 6px #de2a02,inset 1px 1px #ffffff4d}.linera-logo-spinner.leaderboard .pixel.on{background-color:#fbbf24;box-shadow:0 0 6px #fbbf24,inset 1px 1px #ffffff4d}.linera-logo-spinner.auth .pixel.on{background-color:#ef4444;box-shadow:0 0 6px #ef4444,inset 1px 1px #ffffff4d}@keyframes pixelPulse{0%{transform:scale(1);filter:brightness(1)}50%{transform:scale(1.1);filter:brightness(1.3)}to{transform:scale(1);filter:brightness(1)}}@keyframes pixelGlow{0%{filter:brightness(1) contrast(1)}to{filter:brightness(1.2) contrast(1.1)}}@keyframes blockchainFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes blockPulse{0%,to{transform:scale(1);filter:brightness(1)}50%{transform:scale(1.05);filter:brightness(1.2)}}@keyframes activePixelPulse{0%{opacity:1;filter:brightness(1)}to{opacity:.7;filter:brightness(1.5)}}@keyframes connectionFlow{0%,to{opacity:.3;transform:scaleX(1)}50%{opacity:1;transform:scaleX(1.2)}}@keyframes titleFlicker{0%,to{opacity:1;text-shadow:2px 2px 0 #de2a02,4px 4px 0 rgba(0,0,0,.5)}50%{opacity:.9;text-shadow:2px 2px 0 #ff3d1a,4px 4px 0 rgba(0,0,0,.5)}}@keyframes messageSlide{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes pixelDotBounce{0%,80%,to{transform:scale(.8);filter:brightness(.8)}40%{transform:scale(1.2);filter:brightness(1.3)}}@media (max-width: 768px){.linera-loading-container{padding:1.5rem}.pixel{width:6px;height:6px}.block-pixel{width:5px;height:5px}.loading-title{font-size:.8rem}.loading-message{font-size:.6rem}.progress-dots{gap:6px;max-width:250px}.progress-dots .dot{width:10px;height:10px}}@media (max-width: 480px){.pixel{width:5px;height:5px}.block-pixel{width:4px;height:4px}.loading-title{font-size:.7rem}.loading-message{font-size:.55rem}.progress-dots{gap:5px;max-width:200px}.progress-dots .dot{width:8px;height:8px}.pixel-text-linera,.pixel-text-flappy{gap:6px}.pixel-text-flappy{margin-top:8px}.pixel-letter,.pixel-row{gap:1px}}@media (prefers-contrast: high){.linera-loading-overlay{background:#000000f2}.loading-title{color:#fff;text-shadow:2px 2px 0 #de2a02}.loading-message{color:#fff}.pixel.on{box-shadow:0 0 8px #de2a02}}@media (prefers-reduced-motion: reduce){.pixel.on,.block-pixel.active,.connection-pixel,.progress-dots .dot,.pixel-text-linera,.pixel-blockchain,.loading-title{animation:none}.pixel.on{filter:brightness(1.2)}}@media (min-width: 769px){.linera-loading-overlay:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(transparent 0%,rgba(222,42,2,.03) 50%,transparent 100%);background-size:100% 4px;animation:scanlines .1s linear infinite;pointer-events:none}}@keyframes scanlines{0%{background-position:0 0}to{background-position:0 4px}}
