#loading-overlay{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;flex-direction:column;background-color:#1099bb;z-index:10000;opacity:1;transition:opacity .3s ease-out}#loading-overlay.hidden{opacity:0;pointer-events:none}#loading-spinner{width:60px;height:60px;border:5px solid rgba(255,255,255,.2);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}#authorization-wrapper{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;background-color:#00000080;opacity:0;pointer-events:none;transition:opacity .3s ease-out}#authorization-wrapper.visible{opacity:1;pointer-events:auto}#authorization-body{background-color:#fff;border-radius:8px;padding:20px;min-width:300px;max-width:400px;width:calc(100vw - 32px);margin:16px;box-shadow:0 4px 20px #0000004d;font-family:system-ui,-apple-system,sans-serif;transform:scale(.95) translateY(10px);transition:transform .2s ease-out,opacity .2s ease-out;opacity:0}#authorization-wrapper.visible #authorization-body{transform:scale(1) translateY(0);opacity:1}#authorization-body div:not(:last-child){margin-bottom:12px}.form-group{display:flex;flex-direction:column;gap:4px}#authorization-body label{font-size:13px;font-weight:500;color:#666}#authorization-body input{font-family:inherit;font-size:14px;padding:8px 10px;border:1px solid #ddd;border-radius:4px;transition:border-color .15s}#authorization-body input:focus{outline:none;border-color:#8eb55e}#authorization-body button{width:100%;padding:10px;border:none;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .15s;background-color:#8eb55e;color:#fff}#authorization-body button:hover{background-color:#7a9d51}#auth-error-message{background-color:#fee;color:#c00;padding:8px 12px;border-radius:4px;margin-bottom:12px;font-size:12px;text-align:center;border-left:3px solid #c00}#confirm-password-wrapper{display:none;flex-direction:column;gap:4px}#auth-form.register-mode #confirm-password-wrapper{display:flex}#auth-mode-toggle{text-align:center;margin-top:8px;font-size:13px;color:#666}#auth-mode-link{color:#8eb55e;text-decoration:none;font-weight:500;margin-left:4px;transition:color .15s}#auth-mode-link:hover{color:#7a9d51;text-decoration:underline}@media (max-width: 480px){#authorization-body{padding:16px;min-width:auto}#authorization-body label{font-size:12px}#authorization-body input{font-size:13px;padding:8px}#authorization-body button{font-size:13px;padding:9px}#auth-error-message{font-size:11px;padding:6px 10px}#auth-mode-toggle{font-size:12px}}#leaderboard-container{position:fixed;top:16px;right:16px;z-index:1000;min-width:220px;background-color:#fff;border-radius:6px;box-shadow:0 2px 10px #0003;font-family:system-ui,-apple-system,sans-serif;overflow:hidden;opacity:0;pointer-events:none;transition:opacity .3s ease-out}#leaderboard-container.visible{opacity:1;pointer-events:auto}#leaderboard-header{display:flex;align-items:center;gap:6px;padding:8px 10px;background-color:#f8f8f8;border-bottom:1px solid #e0e0e0}#player-info{flex:1;display:flex;flex-direction:column;gap:2px;overflow:hidden;min-width:0}#player-username{font-size:13px;font-weight:600;color:#333;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#player-score{font-size:11px;font-weight:600;color:#1099bb;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#player-score.hidden{display:none}#leaderboard-toggle,#copy-link-btn,#teleport-btn,#logout-btn{background:none;border:none;cursor:pointer;padding:6px 8px;border-radius:3px;transition:background-color .15s;line-height:1;width:28px;height:28px;display:flex;align-items:center;justify-content:center}#copy-link-btn{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71'/%3E%3Cpath d='M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71'/%3E%3C/svg%3E");background-size:16px 16px;background-repeat:no-repeat;background-position:center}#copy-link-btn:hover{background-color:#e8e8e8}#copy-link-btn.copied{background-color:#d4edda;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2328a745' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E")}#teleport-btn{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='4' width='16' height='16' rx='2'/%3E%3Ccircle cx='8' cy='8' r='1.2' fill='%23666'/%3E%3Ccircle cx='16' cy='8' r='1.2' fill='%23666'/%3E%3Ccircle cx='12' cy='12' r='1.2' fill='%23666'/%3E%3Ccircle cx='8' cy='16' r='1.2' fill='%23666'/%3E%3Ccircle cx='16' cy='16' r='1.2' fill='%23666'/%3E%3C/svg%3E");background-size:16px 16px;background-repeat:no-repeat;background-position:center}#teleport-btn:hover{background-color:#e8e8e8}#leaderboard-toggle{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-size:16px 16px;background-repeat:no-repeat;background-position:center;transition:background-color .15s}#leaderboard-toggle.collapsed{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='9 18 15 12 9 6'/%3E%3C/svg%3E")}#leaderboard-toggle:hover{background-color:#e8e8e8}#logout-btn{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ff4444' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'/%3E%3Cline x1='6' y1='6' x2='18' y2='18'/%3E%3C/svg%3E");background-size:14px 14px;background-repeat:no-repeat;background-position:center}#logout-btn:hover{background-color:#ffe8e8}#leaderboard{padding:4px 6px;font-size:13px;color:#333;max-height:400px;overflow-y:auto}#leaderboard.hidden{display:none}#leaderboard:empty{padding:0}#leaderboard .leaderboard-item{display:flex;align-items:center;padding:4px 6px;gap:8px;border-radius:3px;margin-bottom:1px;position:relative}#leaderboard .leaderboard-item:hover{background-color:#f8f8f8}#leaderboard .leaderboard-item.current-player{background:linear-gradient(90deg,#e3f2fd,#f3f9ff);border-left:3px solid #2196f3;padding-left:3px;font-weight:600;box-shadow:0 1px 3px #2196f31f}#leaderboard .leaderboard-item.current-player:hover{background:linear-gradient(90deg,#e3f2fd,#f3f9ff)}#leaderboard .leaderboard-item.current-player .username{color:#1976d2}#leaderboard .leaderboard-item.current-player .score{color:#0d47a1;font-weight:700}#leaderboard .leaderboard-item .rank{color:#999;min-width:28px;font-size:12px;text-align:center;font-weight:500}#leaderboard .leaderboard-item .username{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500;color:#333}#leaderboard .leaderboard-item .score{font-weight:600;color:#1099bb;font-size:12px;min-width:50px;text-align:right}#leaderboard .leaderboard-gap{text-align:center;padding:1px 0;color:#000;font-size:16px;letter-spacing:2px;-webkit-user-select:none;user-select:none}@media (max-width: 480px){#leaderboard-container{min-width:200px;right:8px;top:8px}#leaderboard-header{gap:4px;padding:6px 8px}#player-username{font-size:12px}#player-score{font-size:10px}#leaderboard-toggle,#copy-link-btn,#teleport-btn,#logout-btn{width:26px;height:26px;padding:5px 6px}}#location-container{position:fixed;bottom:16px;right:16px;z-index:1000;background-color:#fff;border-radius:6px;box-shadow:0 2px 10px #0003;font-family:system-ui,-apple-system,sans-serif;overflow:hidden;opacity:0;pointer-events:none;transition:opacity .3s ease-out;display:flex;align-items:center;gap:6px;padding:6px}@media (max-width: 480px){#location-container{bottom:8px;right:8px}}#location-container.visible{opacity:1;pointer-events:auto}#location-hex{color:#1099bb;font-weight:600;font-family:Courier New,monospace;font-size:13px}#teleport-location-btn{background:none;border:none;cursor:pointer;padding:6px;border-radius:3px;transition:background-color .15s;line-height:1;width:28px;height:28px;display:flex;align-items:center;justify-content:center;flex-shrink:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");background-size:16px 16px;background-repeat:no-repeat;background-position:center}#teleport-location-btn:hover{background-color:#e8e8e8}#teleport-modal{position:fixed;top:0;left:0;right:0;bottom:0;z-index:2000;background-color:#0000;display:flex;align-items:center;justify-content:center;font-family:system-ui,-apple-system,sans-serif;opacity:0;pointer-events:none;transition:opacity .2s ease-out,background-color .2s ease-out}#teleport-modal.visible{opacity:1;pointer-events:auto;background-color:#00000080}#teleport-modal-content{background-color:#fff;border-radius:8px;padding:20px;min-width:300px;max-width:400px;margin:16px;box-shadow:0 4px 20px #0000004d;transform:scale(.95) translateY(10px);transition:transform .2s ease-out,opacity .2s ease-out;opacity:0}#teleport-modal.visible #teleport-modal-content{transform:scale(1) translateY(0);opacity:1}#teleport-modal-content h3{margin:0 0 16px;font-size:16px;font-weight:600;color:#333}#teleport-form{display:flex;flex-direction:column;gap:12px}#teleport-form .form-group{display:flex;flex-direction:column;gap:4px}#teleport-form label{font-size:13px;font-weight:500;color:#666}#teleport-form input{padding:8px 10px;border:1px solid #ddd;border-radius:4px;font-size:14px;font-family:Courier New,monospace;transition:border-color .15s}#teleport-form input:focus{outline:none;border-color:#1099bb}#teleport-form .button-group{display:flex;gap:8px;margin-top:8px}#teleport-form button{flex:1;padding:10px;border:none;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .15s}#teleport-submit-btn{background-color:#1099bb;color:#fff}#teleport-submit-btn:hover{background-color:#0d7a94}#teleport-cancel-btn{background-color:#e0e0e0;color:#333}#teleport-cancel-btn:hover{background-color:#d0d0d0}#info-btn{position:fixed;bottom:16px;left:16px;z-index:1000;background-color:#fff;border:none;cursor:pointer;padding:6px;border-radius:6px;box-shadow:0 2px 10px #0003;transition:all .15s ease-out;line-height:1;width:32px;height:32px;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none}#info-btn.visible{opacity:1;pointer-events:auto}#info-btn:hover{background-color:#f8f8f8;transform:translateY(-1px);box-shadow:0 3px 12px #00000040}#info-btn:before{content:"";display:block;width:20px;height:20px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231099bb' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cline x1='12' y1='16' x2='12' y2='12'/%3E%3Cline x1='12' y1='8' x2='12.01' y2='8'/%3E%3C/svg%3E");background-size:contain;background-repeat:no-repeat;background-position:center}#info-modal{position:fixed;top:0;left:0;right:0;bottom:0;z-index:2000;background-color:#0000;display:flex;align-items:center;justify-content:center;font-family:system-ui,-apple-system,sans-serif;opacity:0;pointer-events:none;transition:opacity .2s ease-out,background-color .2s ease-out}#info-modal.visible{opacity:1;pointer-events:auto;background-color:#00000080}#info-modal-content{background-color:#fff;border-radius:8px;padding:20px;min-width:320px;max-width:500px;max-height:80vh;overflow-y:auto;box-shadow:0 4px 20px #0000004d;transform:scale(.95) translateY(10px);transition:transform .2s ease-out,opacity .2s ease-out;opacity:0}#info-modal.visible #info-modal-content{transform:scale(1) translateY(0);opacity:1}.info-section h3:has(#info-close-btn){display:flex;align-items:center;justify-content:space-between}#info-close-btn{background:none;border:none;cursor:pointer;padding:4px;border-radius:3px;transition:background-color .15s;width:24px;height:24px;display:flex;align-items:center;justify-content:center;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'/%3E%3Cline x1='6' y1='6' x2='18' y2='18'/%3E%3C/svg%3E");background-size:16px 16px;background-repeat:no-repeat;background-position:center}#info-close-btn:hover{background-color:#e8e8e8}.info-section{margin-bottom:20px}.info-section:last-child{margin-bottom:0}.info-section h3{margin:0 0 8px;font-size:14px;font-weight:600;color:#666;text-transform:uppercase;letter-spacing:.5px}.info-section h4{margin:12px 0 6px;font-size:13px;font-weight:600;color:#555}.info-section p{margin:0 0 8px;font-size:13px;line-height:1.5;color:#666}.info-section p:last-child{margin-bottom:0}.info-note{margin-top:12px;padding:8px 12px;background-color:#f5f5f5;border-left:3px solid #999;color:#777;font-size:12px;line-height:1.4}.info-section ul{margin:0;padding:0 0 0 20px;font-size:13px;line-height:1.6;color:#666}.info-section li{margin-bottom:4px}.info-section a{color:#1099bb;text-decoration:none;transition:color .15s}.info-section a:hover{color:#0d7a94;text-decoration:underline}@media (max-width: 480px){#info-btn{bottom:8px;left:8px;width:30px;height:30px}#info-btn:before{width:18px;height:18px}#info-modal-content{margin:16px;min-width:auto;max-width:calc(100vw - 32px);max-height:calc(100vh - 32px);padding:16px}.info-section{margin-bottom:16px}.info-section h3{font-size:13px}.info-section h4,.info-section p,.info-section ul{font-size:12px}.info-note{font-size:11px;padding:6px 10px}}
