body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*{box-sizing:border-box;margin:0;padding:0}:root{--background:#0a0a0a;--panel-bg:#1a1a1a;--panel-bg-light:#2a2a2a;--border-primary:#ff4040;--border-secondary:#ff6060;--text-primary:#f99;--text-secondary:#f0f0f0;--text-muted:#d0d0d0;--highlight-green:#40ff40;--highlight-green-light:#80ff80;--highlight-blue:#60c0ff;--highlight-blue-light:#80d0ff;--shadow-glow:0 0 0.5rem var(--border-primary)}body,html{-webkit-text-size-adjust:100%;background-color:#0a0a0a;background-color:var(--background);color:#f0f0f0;color:var(--text-secondary);font-family:Courier New,monospace;font-size:clamp(16px,1.5vw,20px);min-height:100vh;overflow-x:hidden;text-shadow:1px 1px 2px #000c;width:100%}html{scroll-behavior:smooth}.app{align-items:center;display:flex;flex-direction:column;gap:1rem;justify-content:center;min-height:100vh;padding:1rem}.action-button{background:linear-gradient(135deg,#1a1a1a,#2a2a2a);background:linear-gradient(135deg,var(--panel-bg),var(--panel-bg-light));border:2px solid #ff6060;border:2px solid var(--border-secondary);border-radius:6px;color:#f0f0f0;color:var(--text-secondary);cursor:pointer;font-family:Courier New,monospace;font-size:clamp(1rem,1.2vw,1.2rem);min-height:3rem;min-width:8rem;padding:.75rem 1.5rem;text-align:center;transition:all .4s ease}.action-button:hover{background:linear-gradient(135deg,#2a2a2a,#3a3a3a);background:linear-gradient(135deg,var(--panel-bg-light),#3a3a3a);transform:scale(1.05)}.action-button:hover,.panel{box-shadow:0 0 .5rem #ff4040;box-shadow:var(--shadow-glow)}.panel{background:linear-gradient(135deg,#1a1a1a,#2a2a2a);background:linear-gradient(135deg,var(--panel-bg),var(--panel-bg-light));border:2px solid #ff6060;border:2px solid var(--border-secondary);border-radius:8px;padding:1rem;width:100%}.error{color:#ff4040;color:var(--border-primary);font-size:clamp(.9rem,1vw,1rem);margin:.5rem 0;text-align:center}.start-screen{align-items:center;display:flex;flex-direction:column;gap:1rem;max-width:60rem;width:90%}.start-header{text-align:center}.start-header h1{color:#f99;color:var(--text-primary);font-size:clamp(2rem,3vw,3rem);margin-bottom:1rem;text-shadow:2px 2px 8px #ff4040;text-shadow:2px 2px 8px var(--border-primary)}.start-content{display:flex;flex-direction:column;gap:2rem;width:100%}.leaderboard-section{align-items:center;display:flex;flex-direction:column;gap:1rem}.leaderboard-section h2{color:#f99;color:var(--text-primary);font-size:clamp(1.5rem,2vw,2rem);text-shadow:2px 2px 6px #ff4040;text-shadow:2px 2px 6px var(--border-primary)}.leaderboard-wrapper{background:#1a1a1a;background:var(--panel-bg);border:2px solid #ff6060;border:2px solid var(--border-secondary);border-radius:8px;max-height:20rem;overflow-y:auto;width:100%}.leaderboard-table{border-collapse:collapse;width:100%}.leaderboard-table td,.leaderboard-table th{border-bottom:1px solid #ff6060;border-bottom:1px solid var(--border-secondary);font-size:clamp(.9rem,1vw,1rem);padding:.75rem;text-align:center}.leaderboard-table th{background:linear-gradient(135deg,#2a2a2a,#3a3a3a);background:linear-gradient(135deg,var(--panel-bg-light),#3a3a3a);color:#f99;color:var(--text-primary);text-shadow:1px 1px 2px #ff4040;text-shadow:1px 1px 2px var(--border-primary)}.leaderboard-table td{color:#f0f0f0;color:var(--text-secondary)}.auth-section{align-items:center;display:flex;flex-direction:column;gap:1rem}.auth-section h2{color:#f99;color:var(--text-primary);font-size:clamp(1.5rem,2vw,2rem);text-shadow:2px 2px 6px #ff4040;text-shadow:2px 2px 6px var(--border-primary)}.auth-form{gap:1rem;max-width:30rem;width:100%}.auth-form,.form-group{display:flex;flex-direction:column}.form-group{gap:.5rem}.form-group input{background-color:#1a1a1a;background-color:var(--panel-bg);border:2px solid #ff6060;border:2px solid var(--border-secondary);border-radius:6px;color:#f0f0f0;color:var(--text-secondary);font-family:Courier New,monospace;font-size:clamp(1rem,1.2vw,1.2rem);outline:none;padding:.75rem;width:100%}.class-options,.form-actions{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center}.class-options{flex-direction:row;width:100%}.class-option{background:linear-gradient(135deg,#1a1a1a,#2a2a2a);background:linear-gradient(135deg,var(--panel-bg),var(--panel-bg-light));border:2px solid #ff6060;border:2px solid var(--border-secondary);border-radius:8px;box-shadow:0 0 .5rem #ff4040;box-shadow:var(--shadow-glow);flex:1 1;max-width:15rem;min-width:12rem;padding:1rem;text-align:center}.class-option h3{color:#f99;color:var(--text-primary);font-size:clamp(1.1rem,1.5vw,1.5rem);margin-bottom:.5rem}.class-option p{font-size:clamp(.9rem,1vw,1rem);margin-bottom:.5rem}.class-option button{font-size:clamp(1rem,1.2vw,1.2rem);padding:.75rem 1rem;width:100%}.character-section{align-items:center;display:flex;flex-direction:column;gap:1rem;width:100%}.character-section h2{color:#f99;color:var(--text-primary);font-size:clamp(1.5rem,2vw,2rem);text-shadow:2px 2px 6px #ff4040;text-shadow:2px 2px 6px var(--border-primary)}.character-list{background:#1a1a1a;background:var(--panel-bg);border:2px solid #ff6060;border:2px solid var(--border-secondary);border-radius:8px;list-style:none;margin:0;max-height:20rem;max-width:40rem;overflow-y:auto;padding:0;width:100%}.character-item{align-items:center;border-bottom:1px solid #ff6060;border-bottom:1px solid var(--border-secondary);display:flex;font-size:clamp(.9rem,1vw,1rem);justify-content:space-between;padding:.75rem}.character-item:last-child{border-bottom:none}.new-character-form{display:flex;flex-direction:column;gap:1rem;max-width:30rem;width:100%}.health-bar{background-color:#1a1a1a;background-color:var(--panel-bg);border:2px solid #ff6060;border:2px solid var(--border-secondary);border-radius:6px;height:1.5rem;margin:.25rem 0;overflow:hidden;position:relative;width:100%}.health-bar-fill{height:100%;transition:width .3s ease}.health-bar-text{color:#fff;font-family:Courier New,monospace;font-size:clamp(.9rem,1vw,1rem);font-weight:700;left:50%;position:absolute;text-shadow:2px 2px 4px #000;top:50%;transform:translate(-50%,-50%)}.canvas-container{align-items:center;aspect-ratio:1/1;display:flex;height:60vmin;justify-content:center;max-height:90%;max-width:90%;position:relative;width:60vmin}.game canvas{aspect-ratio:1/1;background-color:#0a0a0a;background-color:var(--background);border:2px solid #ff6060;border:2px solid var(--border-secondary);box-shadow:0 0 .5rem #ff4040;box-shadow:var(--shadow-glow);height:100%;object-fit:contain;width:100%}.map-section{justify-content:center;max-height:60vmin;overflow:hidden;width:100%}.game-main{align-items:center}@media (max-width:1024px){.canvas-container{height:70vmin;width:70vmin}.map-section{max-height:70vmin}.game-main{max-height:calc(100vh - 15rem)}}@media (max-width:768px){.canvas-container{height:80vmin;width:80vmin}.map-section{max-height:80vmin}.game-main{max-height:calc(100vh - 20rem)}}@media (orientation:portrait) and (max-width:768px){.canvas-container{height:80vmin;width:80vmin}.map-section{max-height:80vmin}.game-main{max-height:calc(100vh - 25rem)}}@media (orientation:landscape) and (max-width:1024px){.canvas-container{height:50vmin;width:50vmin}.map-section{max-height:50vmin}.game-main{max-height:calc(100vh - 15rem)}}.touch-controls{background:#0a0a0acc;bottom:0;display:none;flex-direction:column;gap:.75rem;left:0;padding:.75rem .75rem env(safe-area-inset-bottom);position:fixed;width:100%;z-index:1002}.touch-button,.touch-controls{align-items:center;display:flex}.touch-button{background:#ffffff4d;border:2px solid #ff6060;border:2px solid var(--border-secondary);border-radius:10px;color:#f99;color:var(--text-primary);font-size:1.2rem;height:3.5rem;justify-content:center;touch-action:none;transition:background .2s ease;width:3.5rem}.touch-button:active{background:#ffffff80}.touch-movement{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-areas:". up ." "left . right" ". down ."}.touch-up{grid-area:up}.touch-left{grid-area:left}.touch-right{grid-area:right}.touch-down{grid-area:down}.touch-actions{display:flex;flex-direction:row;flex-wrap:wrap;gap:.75rem;justify-content:center;width:100%}@media (max-width:768px){.touch-controls{display:flex}}.game{grid-gap:1rem;background-color:#0a0a0ae6;border:2px solid #ff4040;border:2px solid var(--border-primary);border-radius:8px;box-sizing:border-box;display:grid;gap:1rem;grid-template-areas:"header header header" "stats main sidebar";grid-template-columns:20rem 1fr 20rem;grid-template-rows:auto 1fr;margin:0 auto;max-width:120rem;min-height:calc(100vh - 2rem);width:90%}.game,.game-header{box-shadow:0 0 .5rem #ff4040;box-shadow:var(--shadow-glow);padding:1rem}.game-header{background:linear-gradient(180deg,#1a1a1a,#141414);background:linear-gradient(180deg,var(--panel-bg),#141414);border-bottom:2px solid #ff6060;border-bottom:2px solid var(--border-secondary);grid-area:header;text-align:center}.game-header h1{color:#f99;color:var(--text-primary);font-size:clamp(1.5rem,2vw,2rem);margin-bottom:.5rem;text-shadow:2px 2px 4px #ff4040;text-shadow:2px 2px 4px var(--border-primary)}.zone-details{margin:0;padding:.5rem 0}.zone-details p{color:#f0f0f0;color:var(--text-secondary);font-size:clamp(.9rem,1vw,1rem);margin:.25rem 0;text-shadow:1px 1px 3px #ff404080}.zone-details strong{color:#f99;color:var(--text-primary);text-shadow:1px 1px 3px #ff4040;text-shadow:1px 1px 3px var(--border-primary)}.game-nav{border-top:1px solid #ff6060;border-top:1px solid var(--border-secondary);display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;margin-top:1rem;padding:.5rem 0}.nav-button{background:linear-gradient(135deg,#300,#500);border:2px solid #ff4040;border:2px solid var(--border-primary);border-radius:6px;color:#f99;color:var(--text-primary);cursor:pointer;font-size:clamp(1rem,1.2vw,1.2rem);min-height:3rem;min-width:8rem;padding:.75rem 1.5rem;text-shadow:1px 1px 2px #ff4040;text-shadow:1px 1px 2px var(--border-primary);transition:all .4s ease}.nav-button:hover{background:linear-gradient(135deg,#400,#600);box-shadow:0 0 .5rem #ff4040;box-shadow:var(--shadow-glow);transform:scale(1.05)}.game-body{display:contents}.game-sidebar.game-stats{grid-area:stats}.game-main,.game-sidebar.game-stats{display:flex;flex-direction:column;gap:1rem}.game-main{grid-area:main;max-height:calc(100vh - 12rem);overflow-y:auto}.logs-section{display:flex;flex-direction:column;gap:1rem}.combat-log,.game-log{font-size:clamp(.9rem,1vw,1rem);max-height:15rem;padding:.75rem}.combat-log h4,.game-log h4{font-size:clamp(1rem,1.2vw,1.2rem);margin-bottom:.5rem}.combat-log li,.game-log li{padding:.25rem 0}.combat-section{display:flex;flex-direction:column;gap:1rem}.health-bars{gap:1rem;padding:1rem}.enemy-stats-container{background:#2a2a2a;border:2px solid #ff4040;border:2px solid var(--border-primary);box-shadow:0 0 .5rem #ff4040;box-shadow:0 0 .5rem var(--border-primary)}.enemy-stats-container p{font-size:clamp(1rem,1.2vw,1.2rem);text-shadow:1px 1px 2px #000c}.enemy-stats-container p strong{font-weight:700;text-shadow:2px 2px 4px #ff4040;text-shadow:2px 2px 4px var(--border-primary)}.stat-bar{gap:1rem}.stat-bar p{font-size:clamp(.9rem,1vw,1rem)}.combat-actions{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;margin:.5rem 0}.map-section{align-items:center;display:flex;flex:1 1;flex-direction:column;gap:.5rem}.zone-effect{font-size:clamp(.9rem,1vw,1rem)}.header-actions{border-top:1px solid #ff6060;border-top:1px solid var(--border-secondary);display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center;margin-top:.75rem;padding:.75rem 0}.header-actions .action-button{background:linear-gradient(135deg,#300,#500);border:2px solid #ff4040;border:2px solid var(--border-primary);color:#f99;color:var(--text-primary);font-size:1rem;min-height:3rem;min-width:8rem;padding:.75rem 1rem;text-shadow:1px 1px 2px #ff4040;text-shadow:1px 1px 2px var(--border-primary)}.header-actions .action-button:hover{background:linear-gradient(135deg,#400,#600);box-shadow:0 0 .5rem #ff4040;box-shadow:var(--shadow-glow);transform:scale(1.05)}@media (hover:none){.header-actions .action-button:hover{background:linear-gradient(135deg,#300,#500);box-shadow:none;transform:none}}.player-stats{background:linear-gradient(135deg,#1a1a1a,#2a2a2a);background:linear-gradient(135deg,var(--panel-bg),var(--panel-bg-light));border:2px solid #ff6060;border:2px solid var(--border-secondary);border-radius:8px;box-shadow:0 0 .5rem #ff4040;box-shadow:var(--shadow-glow);padding:.75rem;width:100%}.game-sidebar.game-profile{display:flex;flex-direction:column;gap:1rem;grid-area:sidebar;max-height:calc(100vh - 12rem);overflow-y:auto;padding:.5rem}.character-profile{background:linear-gradient(135deg,#1a1a1a,#2a2a2a);background:linear-gradient(135deg,var(--panel-bg),var(--panel-bg-light));border:2px solid #ff6060;border:2px solid var(--border-secondary);border-radius:8px;box-shadow:0 0 .5rem #ff4040;box-shadow:var(--shadow-glow);display:flex;flex:1 1;flex-direction:column;gap:.5rem;max-height:none;min-height:0;overflow-y:auto;padding:1rem;width:100%}.character-profile .equipped-items,.character-profile .profile-section,.character-profile .progress-group,.character-profile .stats-group{background:#222;border:1px solid #ff4040;border:1px solid var(--border-primary);border-radius:6px;margin-bottom:.5rem;padding:.5rem}.character-profile .stats-group{grid-gap:.5rem;display:grid;gap:.5rem;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr))}.character-profile .panel-header h4,.character-profile .profile-section h4,.character-profile .stats-group h4{color:#f99;color:var(--text-primary);font-size:clamp(1rem,1.2vw,1.2rem);margin-bottom:.5rem;text-shadow:1px 1px 2px #ff4040;text-shadow:1px 1px 2px var(--border-primary)}.character-profile .equipped-items p,.character-profile .profile-section p,.character-profile .progress-group p,.character-profile .stats-group p{color:#f0f0f0;color:var(--text-secondary);font-size:clamp(.9rem,1vw,1rem);line-height:1.4;margin:.25rem 0;text-shadow:1px 1px 2px #000c}.character-profile .equipped-items,.character-profile .progress-group{grid-gap:.5rem;display:grid;gap:.5rem;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr))}@media (max-width:1024px){.game-sidebar.game-profile{max-height:25rem}.character-profile .equipped-items,.character-profile .progress-group,.character-profile .stats-group{grid-template-columns:repeat(auto-fit,minmax(8rem,1fr))}}@media (max-width:768px){.game-sidebar.game-profile{max-height:20rem}.character-profile .equipped-items,.character-profile .progress-group,.character-profile .stats-group{grid-template-columns:1fr}}.panel-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.panel-header h3,.panel-header h4{font-size:clamp(1rem,1.2vw,1.2rem);margin:0}.collapse-toggle{background:linear-gradient(135deg,#2a2a2a,#3a3a3a);background:linear-gradient(135deg,var(--panel-bg-light),#3a3a3a);border:2px solid #ff6060;border:2px solid var(--border-secondary);border-radius:6px;color:#f99;color:var(--text-primary);cursor:pointer;font-size:clamp(.9rem,1vw,1rem);min-height:2.75rem;padding:.5rem .75rem;text-shadow:1px 1px 2px #ff4040;text-shadow:1px 1px 2px var(--border-primary);transition:all .4s ease}.collapse-toggle:hover{background:linear-gradient(135deg,#3a3a3a,#4a4a4a);box-shadow:0 0 .5rem #ff4040;box-shadow:var(--shadow-glow);transform:scale(1.05)}@media (hover:none){.collapse-toggle:hover{background:linear-gradient(135deg,#2a2a2a,#3a3a3a);background:linear-gradient(135deg,var(--panel-bg-light),#3a3a3a);box-shadow:none;transform:none}}.logs-container-sidebar{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem}.combat-log,.game-log{background-color:#1a1a1a;background-color:var(--panel-bg);border:2px solid #ff6060;border:2px solid var(--border-secondary);border-radius:8px;font-size:.9rem;height:10rem;overflow-y:auto;padding:.5rem}.combat-log{color:#ff4040;color:var(--border-primary)}.combat-log h4{color:#f99;color:var(--text-primary);font-size:1rem;margin-bottom:.25rem}.game-log{color:#40ff40;color:var(--highlight-green)}.game-log h4{color:#80ff80;color:var(--highlight-green-light);font-size:1rem;margin-bottom:.25rem}.combat-log ul,.game-log ul{display:flex;flex-direction:column;list-style:none;margin:0;padding:0}.combat-log li,.game-log li{border-bottom:1px solid #ff6060;border-bottom:1px solid var(--border-secondary);padding:.1rem 0}.zone-effect{color:#f99;color:var(--text-primary);font-size:.9rem;margin-top:.5rem;text-align:center;text-shadow:1px 1px 2px #ff4040;text-shadow:1px 1px 2px var(--border-primary)}.zone-effect span{cursor:pointer}.game button.instructions-toggle{margin-top:.5rem}.action-buttons{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center;margin:.5rem 0}.attack-button{background:linear-gradient(135deg,#300,#500);border:2px solid #ff4040;border:2px solid var(--border-primary);border-radius:6px;color:#f99;color:var(--text-primary);cursor:pointer;font-size:1rem;min-height:3rem;min-width:8rem;padding:.75rem 1rem;text-shadow:1px 1px 2px #ff4040;text-shadow:1px 1px 2px var(--border-primary);transition:all .4s ease}.attack-button:hover{background:linear-gradient(135deg,#400,#600);box-shadow:0 0 .5rem #ff4040;box-shadow:var(--shadow-glow);transform:scale(1.05)}@media (hover:none){.attack-button:hover{background:linear-gradient(135deg,#300,#500);box-shadow:none;transform:none}}.instructions-modal{align-items:center;background:#0a0a0ae6;display:none;inset:0;justify-content:center;overflow-y:auto;position:fixed;z-index:1000}.instructions-modal.active{display:grid;place-items:center}.instructions-content{animation:fadeIn .3s ease-in-out;background:#1a1a1a;background:var(--panel-bg);border:2px solid #ff6060;border:2px solid var(--border-secondary);border-radius:8px;box-shadow:0 0 .5rem #ff4040;box-shadow:var(--shadow-glow);color:#f0f0f0;color:var(--text-secondary);max-height:90dvh;padding:.75rem;text-align:left;width:90%}.instructions-content h3{color:#f99;color:var(--text-primary);font-size:1.2rem;margin:0 0 .5rem;text-shadow:2px 2px 6px #ff4040;text-shadow:2px 2px 6px var(--border-primary)}.instructions-content p{color:#d0d0d0;color:var(--text-muted);font-size:.9rem;line-height:1.5;margin:.5rem 0}.instructions-content canvas{background-color:#0a0a0a;background-color:var(--background);border:2px solid #ff6060;border:2px solid var(--border-secondary);box-shadow:0 0 .5rem #ff4040;box-shadow:var(--shadow-glow);display:block;height:auto;margin-top:.5rem;max-width:20rem;width:100%}.achievements-modal,.game-over-modal,.hub-modal,.inventory-modal,.leaderboard-modal,.quests-modal,.waypoints-modal{align-items:center;background:#0a0a0ae6;display:none;inset:0;justify-content:center;overflow-y:auto;position:fixed;z-index:1000}.achievements-modal.active,.game-over-modal.active,.hub-modal.active,.inventory-modal.active,.leaderboard-modal.active,.quests-modal.active,.waypoints-modal.active{display:grid;place-items:center}.achievements-content,.game-over,.hub,.inventory-content,.leaderboard,.quests-content,.waypoints-content{align-items:center;background:linear-gradient(135deg,#1a1a1a,#2a2a2a);background:linear-gradient(135deg,var(--panel-bg),var(--panel-bg-light));border:2px solid #ff4040;border:2px solid var(--border-primary);border-radius:8px;box-shadow:0 0 .5rem #ff4040;box-shadow:var(--shadow-glow);display:flex;flex-direction:column;gap:.5rem;max-height:90dvh;overflow-y:auto;padding:.75rem;width:90%}.achievements-content h3,.game-over h2,.hub h2,.inventory-content h3,.leaderboard h2,.quests-content h4,.waypoints-content h3{color:#f99;color:var(--text-primary);font-size:1.5rem;margin-bottom:.5rem;text-shadow:2px 2px 6px #ff4040;text-shadow:2px 2px 6px var(--border-primary)}.hub-text{margin-bottom:.5rem}.hub-text p{color:#f0f0f0;color:var(--text-secondary);font-size:.9rem;margin:.25rem 0}.upgrade-list{grid-gap:.5rem;background:#1a1a1a;background:var(--panel-bg);border-radius:8px;display:grid;gap:.5rem;grid-template-columns:1fr;justify-items:center;margin-bottom:.5rem;max-height:15rem;overflow-y:auto}.upgrade-item,.upgrade-list{border:1px solid #ff4040;border:1px solid var(--border-primary);padding:.5rem}.upgrade-item{align-items:center;background:#222;border-radius:6px;display:flex;flex-direction:column;gap:.25rem;max-width:12rem;width:100%}.upgrade-item p{color:#f0f0f0;color:var(--text-secondary);font-size:.9rem;margin:0}.hub-button{font-size:1rem;max-width:12rem;padding:.75rem 1rem;width:100%}.hub-button.affordable{background:linear-gradient(135deg,#1a3a1a,#2a4a2a);border-color:#40ff40;border-color:var(--highlight-green);color:#80ff80;color:var(--highlight-green-light)}.hub-button.affordable:hover{background:linear-gradient(135deg,#2a4a2a,#3a5a3a);box-shadow:0 0 15px #40ff40;box-shadow:0 0 15px var(--highlight-green)}.hub-button:not(.affordable){cursor:not-allowed;opacity:.7}.packs-placeholder{margin-top:.5rem}.packs-placeholder p{color:#d0d0d0;color:var(--text-muted);font-size:.9rem;font-style:italic}.hub .close-button{align-items:center;background:#ff4040;background:var(--border-primary);border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:1rem;height:1.5rem;justify-content:center;position:absolute;right:.5rem;top:.5rem;width:1.5rem;z-index:1001}.hub .close-button:hover{background:#f66}@media (hover:none){.hub .close-button:hover{background:#ff4040;background:var(--border-primary)}}.hub-section{background:linear-gradient(135deg,#1a1a1a,#2a2a2a);background:linear-gradient(135deg,var(--panel-bg),var(--panel-bg-light));border:2px solid #ff6060;border:2px solid var(--border-secondary);border-radius:8px;box-shadow:0 0 .5rem #ff4040;box-shadow:var(--shadow-glow);padding:.75rem;text-align:center;width:100%}.hub-section h3{color:#f99;color:var(--text-primary);font-size:1.1rem;margin-bottom:.5rem;text-shadow:1px 1px 2px #ff4040;text-shadow:1px 1px 2px var(--border-primary)}.hub-section p{font-size:.9rem;line-height:1.4;margin:.25rem 0}.category-toggle{background:linear-gradient(135deg,#2a2a2a,#3a3a3a);background:linear-gradient(135deg,var(--panel-bg-light),#3a3a3a);border:2px solid #ff6060;border:2px solid var(--border-secondary);border-radius:6px;color:#f99;color:var(--text-primary);cursor:pointer;font-size:.95rem;margin-bottom:.25rem;min-height:2.75rem;padding:.5rem .75rem;text-align:left;transition:all .4s ease;width:100%}.category-toggle:hover{background:linear-gradient(135deg,#3a3a3a,#4a4a4a);box-shadow:0 0 .5rem #ff4040;box-shadow:var(--shadow-glow);transform:scale(1.02)}@media (hover:none){.category-toggle:hover{background:linear-gradient(135deg,#2a2a2a,#3a3a3a);background:linear-gradient(135deg,var(--panel-bg-light),#3a3a3a);box-shadow:none;transform:none}}.hub-header{justify-content:space-between;width:100%}.close-button,.hub-header{align-items:center;display:flex}.close-button{background:#ff4040;background:var(--border-primary);border:none;border-radius:50%;color:#fff;cursor:pointer;font-size:1rem;height:1.5rem;justify-content:center;width:1.5rem}.close-button:hover{background:#f66}.return-button{background:linear-gradient(135deg,#1a3a1a,#2a4a2a);border-color:#40ff40;border-color:var(--highlight-green);color:#80ff80;color:var(--highlight-green-light);font-size:1rem;padding:.75rem 1rem}.return-button:hover{background:linear-gradient(135deg,#2a4a2a,#3a5a3a);box-shadow:0 0 15px #40ff40;box-shadow:0 0 15px var(--highlight-green)}.mtx-buttons{grid-gap:.5rem;display:grid;gap:.5rem;grid-template-columns:1fr;justify-items:center;margin-bottom:.5rem}.quests-panel{background:none;border:none;box-shadow:none;padding:0;width:100%}.quests-panel h4{color:#f99;color:var(--text-primary);font-size:clamp(1rem,1.2vw,1.2rem);margin-bottom:.5rem;text-shadow:1px 1px 2px #ff4040;text-shadow:1px 1px 2px var(--border-primary)}.quest-list{display:flex;flex-direction:column;gap:.5rem;list-style:none;margin:0;padding:0}.quest-item{background:#222;border:1px solid #ff4040;border:1px solid var(--border-primary);border-radius:6px;margin-bottom:.5rem;padding:.75rem}.quest-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.25rem}.quest-header strong{color:#f99;color:var(--text-primary);font-size:clamp(.9rem,1vw,1rem);text-shadow:1px 1px 2px #ff4040;text-shadow:1px 1px 2px var(--border-primary)}.quest-completed{color:#40ff40;color:var(--highlight-green);font-size:clamp(.9rem,1vw,1rem)}.quest-description{color:#d0d0d0;color:var(--text-muted);font-size:clamp(.9rem,1vw,1rem);margin:.25rem 0}.quest-progress{margin-top:.25rem}.quest-progress p{color:#f0f0f0;color:var(--text-secondary);font-size:clamp(.9rem,1vw,1rem);margin-bottom:.25rem}.quest-progress-bar{background-color:#1a1a1a;background-color:var(--panel-bg);border:1px solid #ff6060;border:1px solid var(--border-secondary);border-radius:4px;height:.5rem;width:100%}.quest-progress-bar::-webkit-progress-bar{background-color:#1a1a1a;background-color:var(--panel-bg);border-radius:4px}.quest-progress-bar::-webkit-progress-value{background:linear-gradient(135deg,#ff4040,#f99);background:linear-gradient(135deg,var(--border-primary),var(--text-primary));border-radius:4px}.quest-progress-bar::-moz-progress-bar{background:linear-gradient(135deg,#ff4040,#f99);background:linear-gradient(135deg,var(--border-primary),var(--text-primary));border-radius:4px}.quest-reward{color:#40ff40;color:var(--highlight-green);font-size:clamp(.9rem,1vw,1rem);margin-top:.25rem}.dialogue-bubble{background:#0a0a0ae6;display:grid;inset:0;padding:1rem;place-items:center;position:fixed;z-index:1000}.dialogue-bubble:before{background:#0a0a0ae6;content:"";inset:0;position:fixed;z-index:-1}.dialogue-content{animation:fadeIn .3s ease-in-out;background:linear-gradient(135deg,#1a1a1a,#2a2a2a);border:3px solid #ff4040;border:3px solid var(--border-primary);border-radius:12px;box-shadow:0 0 1rem #ff4040,inset 0 0 .5rem #ff4040;box-shadow:0 0 1rem var(--border-primary),inset 0 0 .5rem var(--border-primary);color:#f0f0f0;color:var(--text-secondary);font-family:Courier New,monospace;max-height:calc(100vh - 4rem);max-width:40rem;overflow-y:auto;padding:1.5rem;width:90%}.dialogue-header{align-items:center;border-bottom:2px solid #ff6060;border-bottom:2px solid var(--border-secondary);display:flex;justify-content:space-between;margin-bottom:1rem;padding-bottom:.75rem}.dialogue-header h4{font-size:clamp(1.2rem,1.5vw,1.5rem);margin:0;text-shadow:2px 2px 4px #ff4040;text-shadow:2px 2px 4px var(--border-primary)}.dialogue-close,.dialogue-header h4{color:#f99;color:var(--text-primary)}.dialogue-close{align-items:center;background:linear-gradient(135deg,#3a1a1a,#4a2a2a);border:2px solid #ff4040;border:2px solid var(--border-primary);border-radius:6px;box-shadow:0 0 .5rem #ff4040;box-shadow:0 0 .5rem var(--border-primary);cursor:pointer;display:flex;font-size:clamp(1rem,1.2vw,1.2rem);justify-content:center;min-height:2.5rem;min-width:2.5rem;padding:.5rem .75rem;transition:all .4s ease}.dialogue-close:hover{background:linear-gradient(135deg,#4a2a2a,#5a3a3a);box-shadow:0 0 1rem #ff4040;box-shadow:0 0 1rem var(--border-primary);transform:scale(1.05)}@media (hover:none){.dialogue-close:hover{background:linear-gradient(135deg,#3a1a1a,#4a2a2a);box-shadow:0 0 .5rem #ff4040;box-shadow:0 0 .5rem var(--border-primary);transform:none}}.dialogue-content p{color:#f0f0f0;color:var(--text-secondary);font-size:clamp(1rem,1.2vw,1.2rem);line-height:1.6;margin-bottom:1rem;text-shadow:1px 1px 2px #000c}.dialogue-options{display:flex;flex-direction:column;gap:.75rem;list-style:none;margin:0;padding:0}.dialogue-options li{width:100%}.dialogue-options button{background:linear-gradient(135deg,#2a2a2a,#3a3a3a);border:2px solid #ff6060;border:2px solid var(--border-secondary);border-radius:8px;box-shadow:0 0 .3rem #ff6060;box-shadow:0 0 .3rem var(--border-secondary);color:#f99;color:var(--text-primary);cursor:pointer;font-size:clamp(.9rem,1.1vw,1.1rem);min-height:3.5rem;padding:.75rem 1rem;text-align:left;text-shadow:1px 1px 2px #ff4040;text-shadow:1px 1px 2px var(--border-primary);transition:all .4s ease;white-space:normal;width:100%;word-break:break-word}.dialogue-options button:hover{background:linear-gradient(135deg,#3a3a3a,#4a4a4a);border-color:#ff4040;border-color:var(--border-primary);box-shadow:0 0 .75rem #ff4040;box-shadow:0 0 .75rem var(--border-primary);transform:scale(1.02)}@media (hover:none){.dialogue-options button:hover{background:linear-gradient(135deg,#2a2a2a,#3a3a3a);border-color:#ff6060;border-color:var(--border-secondary);box-shadow:0 0 .3rem #ff6060;box-shadow:0 0 .3rem var(--border-secondary);transform:none}}.dialogue-options button:focus{border-color:#40ff40;border-color:var(--highlight-green);box-shadow:0 0 .5rem #40ff40;box-shadow:0 0 .5rem var(--highlight-green);outline:none}.inventory{background:none;border:none;box-shadow:none;padding:0;width:100%}.inventory-item{align-items:center;background:#222;border:1px solid #ff4040;border:1px solid var(--border-primary);border-radius:4px;display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.5rem;padding:.75rem;position:relative}.inventory-item p{flex:1 1 auto;font-size:clamp(.9rem,1vw,1rem);margin:0;min-width:0}.inventory-button{border:2px solid;border-radius:6px;cursor:pointer;flex:0 0 auto;font-size:clamp(.9rem,1vw,1rem);min-height:2.75rem;min-width:4rem;padding:.5rem .75rem;transition:all .4s ease;white-space:nowrap}.inventory-use{background:linear-gradient(135deg,#1a3a1a,#2a4a2a);border-color:#40ff40;border-color:var(--highlight-green);color:#80ff80;color:var(--highlight-green-light)}.inventory-use:hover{background:linear-gradient(135deg,#2a4a2a,#3a5a3a);box-shadow:0 0 10px #40ff40;box-shadow:0 0 10px var(--highlight-green)}.inventory-discard{background:linear-gradient(135deg,#3a1a1a,#4a2a2a);border-color:#ff6060;border-color:var(--border-secondary);color:#f99;color:var(--text-primary)}.inventory-discard:hover{background:linear-gradient(135deg,#4a2a2a,#5a3a3a);box-shadow:0 0 .5rem #ff4040;box-shadow:var(--shadow-glow)}.inventory-sell{background:linear-gradient(135deg,#1a2a3a,#2a3a4a);border-color:#60c0ff;border-color:var(--highlight-blue);color:#80d0ff;color:var(--highlight-blue-light)}.inventory-sell:hover{background:linear-gradient(135deg,#2a3a4a,#3a4a5a);box-shadow:0 0 10px #60c0ff;box-shadow:0 0 10px var(--highlight-blue)}.inventory-equip{background:linear-gradient(135deg,#2a1a3a,#3a2a4a);border-color:#c060ff;color:#d080ff}.inventory-equip:hover{background:linear-gradient(135deg,#3a2a4a,#4a3a5a);box-shadow:0 0 10px #c060ff}.inventory-unequip{background:linear-gradient(135deg,#3a2a1a,#4a3a2a);border-color:#ffa060;color:#ffc080}.inventory-unequip:hover{background:linear-gradient(135deg,#4a3a2a,#5a4a3a);box-shadow:0 0 10px #ffa060}.unequip-button{background-color:#f44;border:none;border-radius:3px;color:#fff;cursor:pointer;font-size:clamp(.75rem,.9vw,.9rem);margin-left:.5rem;min-height:1.5rem;padding:.25rem .5rem}.unequip-button:hover{background-color:#c00}.inventory-item:hover .tooltip{display:block}.tooltip{background:#333;border-radius:5px;color:#fff;display:none;font-size:clamp(.8rem,.9vw,.9rem);left:50%;padding:.25rem .5rem;position:absolute;top:-2rem;transform:translateX(-50%);white-space:nowrap;z-index:1000}.game-over-section{background:#222;border:2px solid #ff6060;border:2px solid var(--border-secondary);border-radius:8px;padding:.75rem;text-align:center;width:100%}.game-over-section h3{color:#f99;color:var(--text-primary);font-size:1.1rem;margin-bottom:.5rem;text-shadow:1px 1px 2px #ff4040;text-shadow:1px 1px 2px var(--border-primary)}.game-over-section p{font-size:.9rem;line-height:1.4;margin:.25rem 0}.share-button{background:linear-gradient(135deg,#1a2a3a,#2a3a4a);border-color:#60c0ff;border-color:var(--highlight-blue);color:#80d0ff;color:var(--highlight-blue-light);font-size:1rem;padding:.75rem 1rem}.share-button:hover{background:linear-gradient(135deg,#2a3a4a,#3a4a5a);box-shadow:0 0 15px #60c0ff;box-shadow:0 0 15px var(--highlight-blue)}@media (hover:none){.share-button:hover{background:linear-gradient(135deg,#1a2a3a,#2a3a4a);box-shadow:none}}.health-bars{background:linear-gradient(135deg,#1a1a1a,#2a2a2a);background:linear-gradient(135deg,var(--panel-bg),var(--panel-bg-light));border:2px solid #ff6060;border:2px solid var(--border-secondary);border-radius:8px;box-shadow:0 0 .5rem #ff4040;box-shadow:var(--shadow-glow);display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center;max-width:none;padding:.75rem;width:100%}.enemy-stats-container{background:#222;border:1px solid #ff4040;border:1px solid var(--border-primary);border-radius:6px;flex:1 1 100%;padding:.75rem;text-align:center}.enemy-stats-container p{color:#f0f0f0;color:var(--text-secondary);font-size:1rem;margin:.25rem 0}.enemy-stats-container p strong{color:#f99;color:var(--text-primary);text-shadow:1px 1px 2px #ff4040;text-shadow:1px 1px 2px var(--border-primary)}.stat-bar{align-items:center;display:flex;gap:.75rem;margin:.5rem 0}.stat-bar p{color:#f99;color:var(--text-primary);font-size:1rem;margin:0;min-width:3rem;text-shadow:1px 1px 2px #ff4040;text-shadow:1px 1px 2px var(--border-primary)}.stat-bar .health-bar{flex:1 1;height:1.5rem}.achievements-content ul{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));list-style:none;margin:0;max-height:calc(100vh - 8rem);overflow-y:auto;padding:0;width:100%}.achievement-item{background:#222;border:1px solid #ff4040;border:1px solid var(--border-primary);border-radius:6px;box-shadow:0 0 5px #ff40404d;padding:.75rem;transition:transform .2s ease}.achievement-item:hover{box-shadow:0 0 10px #ff404080;transform:scale(1.02)}.achievement-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.25rem}.achievement-header strong{color:#f99;color:var(--text-primary);font-size:clamp(.9rem,1vw,1rem);text-shadow:1px 1px 2px #ff4040;text-shadow:1px 1px 2px var(--border-primary)}.achievement-completed{color:#40ff40;color:var(--highlight-green);font-size:clamp(.9rem,1vw,1rem);font-style:italic}.achievement-description{color:#d0d0d0;color:var(--text-muted);font-size:clamp(.9rem,1vw,1rem);line-height:1.4;margin-bottom:.5rem}.achievement-progress{margin-top:.25rem}.achievement-progress p{color:#f0f0f0;color:var(--text-secondary);font-size:clamp(.9rem,1vw,1rem);margin-bottom:.25rem}.achievement-progress-bar{background-color:#1a1a1a;background-color:var(--panel-bg);border:1px solid #ff6060;border:1px solid var(--border-secondary);border-radius:4px;height:.75rem;width:100%}.achievement-item:has(.achievement-completed){background:#0a170a;border-color:#40ff40;border-color:var(--highlight-green)}.achievement-progress-bar::-webkit-progress-bar{background-color:#1a1a1a;background-color:var(--panel-bg);border-radius:4px}.achievement-progress-bar::-webkit-progress-value{background:linear-gradient(135deg,#ff4040,#f99);background:linear-gradient(135deg,var(--border-primary),var(--text-primary));border-radius:4px}.achievement-progress-bar::-moz-progress-bar{background:linear-gradient(135deg,#ff4040,#f99);background:linear-gradient(135deg,var(--border-primary),var(--text-primary));border-radius:4px}.waypoints-content ul{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));list-style:none;margin:0;max-height:calc(100vh - 8rem);overflow-y:auto;padding:0;width:100%}.waypoint-item{background:#222;border:1px solid #ff4040;border:1px solid var(--border-primary);border-radius:6px;box-shadow:0 0 5px #ff40404d;padding:.75rem;transition:transform .2s ease}.waypoint-item:hover{box-shadow:0 0 10px #ff404080;transform:scale(1.02)}.waypoint-header{color:#f99;color:var(--text-primary);font-size:clamp(.9rem,1vw,1rem);font-weight:700;margin-bottom:.25rem;text-shadow:1px 1px 2px #ff4040;text-shadow:1px 1px 2px var(--border-primary)}.waypoint-item p{color:#d0d0d0;color:var(--text-muted);font-size:clamp(.9rem,1vw,1rem);margin:.25rem 0}.waypoint-item button{background:linear-gradient(135deg,#300,#500);border:2px solid #ff4040;border:2px solid var(--border-primary);border-radius:6px;color:#f99;color:var(--text-primary);cursor:pointer;font-size:clamp(.9rem,1vw,1rem);min-height:3rem;padding:.75rem 1rem;text-align:center;text-shadow:1px 1px 2px #ff4040;text-shadow:1px 1px 2px var(--border-primary);transition:all .4s ease;width:100%}.waypoint-item button:hover{background:linear-gradient(135deg,#400,#600);box-shadow:0 0 .5rem #ff4040;box-shadow:var(--shadow-glow);transform:scale(1.05)}.waypoint-item button:disabled{background:linear-gradient(135deg,#2a2a2a,#3a3a3a);background:linear-gradient(135deg,var(--panel-bg-light),#3a3a3a);border-color:#555;box-shadow:none;color:#888;cursor:not-allowed;opacity:.7;transform:none}.loading-screen{align-items:center;background:#000c;color:#fff;display:flex;font-size:1.5rem;inset:0;justify-content:center;position:fixed;z-index:1000}@media (max-width:1024px){.game{grid-template-areas:"header header" "main main" "stats sidebar";grid-template-columns:1fr 1fr;grid-template-rows:auto 1fr auto;max-width:48rem;padding:.75rem}.game-main{max-height:calc(100vh - 15rem)}.game-sidebar.game-profile{display:flex;flex-direction:column;gap:1rem;grid-area:sidebar;max-height:calc(100vh - 12rem);overflow-y:auto;padding:.5rem}.canvas-container{height:70vmin;width:70vmin}.touch-controls{flex-direction:row;justify-content:space-between}.touch-actions{align-items:flex-end;flex-direction:column}.touch-button{height:3rem;width:3rem}.combat-log,.game-log{max-height:10rem}}@media (max-width:768px){.game{grid-template-areas:"header" "main" "stats" "sidebar";grid-template-columns:1fr;grid-template-rows:auto auto auto auto;padding:.5rem}.game-main{max-height:calc(100vh - 20rem)}.game-sidebar.game-profile,.game-sidebar.game-stats{max-height:15rem}.canvas-container{height:80vmin;width:80vmin}.game-nav{gap:.75rem}.nav-button{font-size:clamp(.9rem,1vw,1rem);min-width:7rem;padding:.5rem 1rem}}@media (orientation:portrait) and (max-width:768px){.game-main{max-height:calc(100vh - 25rem)}.touch-controls{align-items:center;flex-direction:column;gap:.75rem}.touch-actions{flex-direction:row;justify-content:center;width:100%}.touch-button{height:3.5rem;width:3.5rem}}@media (orientation:landscape) and (max-width:1024px){.game{grid-template-areas:"header header" "stats main" "sidebar sidebar";grid-template-columns:1fr 2fr;grid-template-rows:auto 1fr auto}.game-main{max-height:calc(100vh - 15rem)}}@media (prefers-reduced-motion:reduce){.action-button,.category-toggle,.close-button,.dialogue-close,.dialogue-options button,.inventory-button,.nav-button,.return-button,.share-button,.waypoint-item button{transform:none;transition:none}.achievements-content,.hub,.inventory-content,.modal-content,.quests-content,.waypoints-content{animation:none}}.modal{align-items:center;background:#0a0a0ae6;display:none;inset:0;justify-content:center;overflow-y:auto;position:fixed;z-index:1000}.modal.active{display:grid;place-items:center}.modal-content{animation:fadeIn .3s ease-in-out;background:linear-gradient(135deg,#1a1a1a,#2a2a2a);background:linear-gradient(135deg,var(--panel-bg),var(--panel-bg-light));border:2px solid #ff6060;border:2px solid var(--border-secondary);border-radius:8px;box-shadow:0 0 .5rem #ff4040;box-shadow:var(--shadow-glow);color:#f0f0f0;color:var(--text-secondary);display:flex;flex-direction:column;gap:1rem;max-height:calc(100vh - 4rem);max-width:60rem;overflow-y:auto;padding:1rem;width:90%}@keyframes fadeIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.modal-content h3{color:#f99;color:var(--text-primary);font-size:clamp(1.2rem,1.5vw,1.5rem);margin:0 0 .5rem;text-shadow:2px 2px 6px #ff4040;text-shadow:2px 2px 6px var(--border-primary)}.modal-content p{color:#d0d0d0;color:var(--text-muted);font-size:clamp(.9rem,1vw,1rem);line-height:1.5;margin:.5rem 0;text-align:center}.modal-content canvas{background-color:#0a0a0a;background-color:var(--background);border:2px solid #ff6060;border:2px solid var(--border-secondary);box-shadow:0 0 .5rem #ff4040;box-shadow:var(--shadow-glow);display:block;height:auto;margin-top:.5rem;max-width:20rem;width:100%}
/*# sourceMappingURL=main.53891478.css.map*/