.chat-panel-container{height:100%;width:100%;display:flex;flex-direction:column;background:#1e1e1e;border:2px solid #404040;position:relative;overflow:hidden}.model-selector{padding:10px;position:relative}.model-selector select{width:100%;position:relative}.chat-content{flex:1;overflow:hidden;position:relative;display:flex;flex-direction:column}.chat-messages{flex:1;overflow-y:auto;padding:1rem}.chat-input{padding:1rem;border-top:1px solid #404040;background:#1e1e1e}.panel{height:100%;width:100%;display:flex;flex-direction:column;overflow:hidden}.panel-resize-handle{width:4px;background:#404040;cursor:col-resize;transition:background-color .2s}.panel-resize-handle:hover{background:#0f0}*{margin:0;padding:0;box-sizing:border-box}#root{width:100%;height:100vh;overflow:hidden}.chat-panel{flex:1;width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden}[data-panel-resize-handle-id]{margin:0 2px}.chat-input-wrapper{margin-top:auto;padding-bottom:0}.chat-container{display:flex;flex-direction:column;height:100%;background:#0a0e17;color:#0cf;position:relative;border:1px solid rgba(0,204,255,.2);overflow:hidden;--grid-animation-speed: 3s;--grid-animation-opacity: 1}.chat-container:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background-color:transparent;background-image:linear-gradient(rgba(0,204,255,.3) 1px,transparent 1px),linear-gradient(90deg,rgba(0,204,255,.3) 1px,transparent 1px);background-size:20px 20px;z-index:1;pointer-events:none;opacity:var(--grid-animation-opacity);animation:gridPulse var(--grid-animation-speed) ease-in-out infinite}@keyframes gridPulse{0%{opacity:var(--grid-animation-opacity)}50%{opacity:calc(var(--grid-animation-opacity) * .8)}to{opacity:var(--grid-animation-opacity)}}.chat-container.no-animations:before{animation:none!important;opacity:.7!important}.cyberpunk-chat .scroll-container{flex:1;overflow-y:auto;min-height:0;position:relative;z-index:2}.chat-messages-wrapper{position:relative;min-height:150%;padding-bottom:10vh}.chat-messages{display:flex;flex-direction:column;gap:1rem;padding:1rem}.chat-message{padding:1rem;border-radius:2px;max-width:80%;word-break:break-word;position:relative;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.chat-message.user{align-self:flex-end;background:#00ccff1a;color:#fff;border:1px solid rgba(0,204,255,.4);box-shadow:0 0 10px #00ccff4d}.chat-message.user:before{content:"";position:absolute;top:5px;left:5px;width:8px;height:8px;border-top:1px solid rgba(0,204,255,.5);border-left:1px solid rgba(0,204,255,.5)}.chat-message.user:after{content:"";position:absolute;bottom:5px;right:5px;width:8px;height:8px;border-bottom:1px solid rgba(0,204,255,.5);border-right:1px solid rgba(0,204,255,.5)}.chat-message.ai{align-self:flex-start;background:#ff00de1a;color:#00ff8c;border:1px solid rgba(255,0,222,.4);box-shadow:0 0 10px #ff00de4d}.chat-message.ai:before{content:"";position:absolute;top:5px;left:5px;width:8px;height:8px;border-top:1px solid rgba(255,0,222,.5);border-left:1px solid rgba(255,0,222,.5)}.chat-message.ai:after{content:"";position:absolute;bottom:5px;right:5px;width:8px;height:8px;border-bottom:1px solid rgba(255,0,222,.5);border-right:1px solid rgba(255,0,222,.5)}.chat-message.warning{background-color:#ffdd571a;color:#ffdd57;text-align:center;font-size:.8rem;padding:8px;margin:8px 0;border-radius:2px;border:1px solid rgba(255,221,87,.4);box-shadow:0 0 10px #ffdd574d;text-shadow:0 0 5px rgba(255,221,87,.5)}.chat-message.error{background-color:#ff38601a;color:#ff3860;text-align:center;font-size:.8rem;padding:8px;margin:8px 0;border-radius:2px;border:1px solid rgba(255,56,96,.4);box-shadow:0 0 10px #ff38604d;text-shadow:0 0 5px rgba(255,56,96,.5)}.chat-message.info{background:#00ccff0d;border:1px solid rgba(0,204,255,.2);color:#0cf;text-shadow:0 0 5px rgba(0,204,255,.5)}.message-content{white-space:pre-wrap;word-break:break-word;font-family:Roboto Mono,monospace;line-height:1.5}.message-content code{background:#0a0e17cc;color:#00ff8c;padding:2px 5px;border-radius:2px;font-family:Fira Code,monospace;text-shadow:0 0 5px rgba(0,255,140,.5)}.thinking-indicator{display:flex;align-items:center;gap:.5rem;color:#00ff8c;font-style:italic;text-shadow:0 0 5px rgba(0,255,140,.5);font-family:Orbitron,sans-serif;letter-spacing:1px}.chat-input-wrapper{flex-shrink:0;background:#121218cc;border-top:1px solid rgba(255,0,222,.3);position:sticky;bottom:0;z-index:10;margin-top:auto;padding-bottom:10px}.problem-workspace-panel-group .chat-input-wrapper{padding-bottom:20px;margin-bottom:15px}.chat-input-container{position:relative;padding:1rem;display:flex;gap:.5rem;width:100%;align-items:flex-start}.chat-input-container textarea{flex:1;background:#0a0e17cc;color:#0cf;border:1px solid rgba(0,204,255,.3);padding:.8rem;resize:vertical;min-height:40px;max-height:120px;border-radius:2px;overflow-y:auto;transition:border-color .3s,box-shadow .3s;font-family:Roboto Mono,monospace}.problem-workspace-panel-group .chat-input-container textarea{min-height:60px}.chat-input-container textarea:focus{outline:none;border-color:#0cf;box-shadow:0 0 10px #00ccff80}.chat-input-container textarea::placeholder{color:#00ccff80}.scroll-container::-webkit-scrollbar{width:8px}.scroll-container::-webkit-scrollbar-track{background:#0a0e1780}.scroll-container::-webkit-scrollbar-thumb{background:#00ccff4d;border-radius:2px}.scroll-container::-webkit-scrollbar-thumb:hover{background:#00ccff80}.send-button{padding:.8rem 1.2rem;background:transparent;color:#0cf;border:1px solid #00ccff;border-radius:2px;cursor:pointer;font-weight:700;transition:all .2s ease;align-self:flex-start;position:relative;font-family:Orbitron,sans-serif;letter-spacing:1px;text-shadow:0 0 5px rgba(0,204,255,.5);overflow:hidden}.send-button:before{content:"";position:absolute;top:5px;left:5px;width:5px;height:5px;border-top:1px solid rgba(0,204,255,.5);border-left:1px solid rgba(0,204,255,.5)}.send-button:after{content:"";position:absolute;bottom:5px;right:5px;width:5px;height:5px;border-bottom:1px solid rgba(0,204,255,.5);border-right:1px solid rgba(0,204,255,.5)}.send-button:hover{background:#00ccff1a;box-shadow:0 0 15px #00ccff80;transform:translateY(-2px)}.send-button:disabled{background:transparent;border-color:#0cf3;color:#00ccff4d;cursor:not-allowed;transform:none;box-shadow:none}.chat-warning{padding:8px 12px;border-radius:2px;background-color:#ffdd571a;margin:8px 0;border:1px solid rgba(255,221,87,.3);text-shadow:0 0 5px rgba(255,221,87,.5);font-family:Orbitron,sans-serif;letter-spacing:1px}.chat-disabled{padding:8px 12px;border-radius:2px;background-color:#ff38601a;margin:8px 0;border:1px solid rgba(255,56,96,.3);text-shadow:0 0 5px rgba(255,56,96,.5);font-family:Orbitron,sans-serif;letter-spacing:1px}.chat-message.ai.refusal{background-color:#ffa5001a;border:1px solid rgba(255,165,0,.4);box-shadow:0 0 10px #ffa5004d}.chat-message.ai[data-role=system]{background-color:#4b00821a;border:1px solid rgba(75,0,130,.4);box-shadow:0 0 10px #4b00824d}.chat-message.ai[data-role=assistant]{background:#ff00de1a;color:#00ff8c;border:1px solid rgba(255,0,222,.4);box-shadow:0 0 10px #ff00de4d}.chat-actions{display:flex;flex-direction:column;gap:.5rem;padding:.5rem 1rem;background:#121218cc}.chat-extra-credits{padding:8px 12px;background-color:#a855f71a;color:#a855f7;margin:8px 0;border-radius:2px;border:1px solid rgba(168,85,247,.3);text-shadow:0 0 5px rgba(168,85,247,.5);font-family:Orbitron,sans-serif;letter-spacing:1px;text-align:center}.watch-ad-button{padding:8px 16px;background:transparent;color:#ffdd57;border:1px solid #ffdd57;font-family:Orbitron,sans-serif;letter-spacing:1px;border-radius:2px;cursor:pointer;transition:all .2s ease;text-shadow:0 0 5px rgba(255,221,87,.5);position:relative}.watch-ad-button:hover{background:#ffdd571a;box-shadow:0 0 15px #ffdd5780;transform:translateY(-2px)}.watch-ad-button:before{content:"";position:absolute;top:5px;left:5px;width:5px;height:5px;border-top:1px solid rgba(255,221,87,.5);border-left:1px solid rgba(255,221,87,.5)}.watch-ad-button:after{content:"";position:absolute;bottom:5px;right:5px;width:5px;height:5px;border-bottom:1px solid rgba(255,221,87,.5);border-right:1px solid rgba(255,221,87,.5)}.upgrade-link{padding:8px 16px;background:transparent;color:#00ff8c;border:1px solid #00ff8c;font-family:Orbitron,sans-serif;letter-spacing:1px;border-radius:2px;cursor:pointer;transition:all .2s ease;text-shadow:0 0 5px rgba(0,255,140,.5);text-align:center;text-decoration:none;display:block;position:relative}.upgrade-link:hover{background:#00ff8c1a;box-shadow:0 0 15px #00ff8c80;transform:translateY(-2px)}.upgrade-link:before{content:"";position:absolute;top:5px;left:5px;width:5px;height:5px;border-top:1px solid rgba(0,255,140,.5);border-left:1px solid rgba(0,255,140,.5)}.upgrade-link:after{content:"";position:absolute;bottom:5px;right:5px;width:5px;height:5px;border-bottom:1px solid rgba(0,255,140,.5);border-right:1px solid rgba(0,255,140,.5)}.ad-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;justify-content:center;align-items:center;z-index:1000}.ad-modal{width:90%;max-width:600px;background-color:#121218f2;border-radius:2px;border:1px solid rgba(0,204,255,.3);box-shadow:0 0 25px #00ccff4d;overflow:hidden;position:relative}.ad-modal:before{content:"";position:absolute;top:10px;left:10px;width:15px;height:15px;border-top:1px solid rgba(0,204,255,.5);border-left:1px solid rgba(0,204,255,.5)}.ad-modal:after{content:"";position:absolute;bottom:10px;right:10px;width:15px;height:15px;border-bottom:1px solid rgba(0,204,255,.5);border-right:1px solid rgba(0,204,255,.5)}.ad-modal-header{padding:15px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid rgba(0,204,255,.3);background:#0a0e17cc}.ad-modal-header h3{margin:0;color:#0cf;font-size:1rem;font-family:Orbitron,sans-serif;letter-spacing:1px;text-shadow:0 0 5px rgba(0,204,255,.5)}.close-ad-button{padding:4px 10px;background:transparent;color:#0cf;border:1px solid #00ccff;border-radius:2px;cursor:pointer;font-family:Orbitron,sans-serif;letter-spacing:1px;font-size:12px;text-shadow:0 0 5px rgba(0,204,255,.5);transition:all .2s ease}.close-ad-button:hover{background:#00ccff1a;box-shadow:0 0 10px #00ccff80}.ad-modal-content{padding:20px}.ad-timer{display:flex;align-items:center;justify-content:center;gap:8px;margin:15px 0;padding:10px;background:#0a0e17cc;border-radius:2px;color:#00ff8c;font-family:Orbitron,sans-serif;letter-spacing:1px;text-shadow:0 0 5px rgba(0,255,140,.5);border:1px solid rgba(0,255,140,.3)}.ad-complete-button{width:100%;padding:10px;margin-top:15px;background:transparent;color:#00ff8c;border:1px solid #00ff8c;border-radius:2px;cursor:pointer;font-weight:700;font-family:Orbitron,sans-serif;letter-spacing:1px;transition:all .2s ease;text-shadow:0 0 5px rgba(0,255,140,.5);position:relative}.ad-complete-button:hover{background:#00ff8c1a;box-shadow:0 0 15px #00ff8c80;transform:translateY(-2px)}.ad-complete-button:before{content:"";position:absolute;top:5px;left:5px;width:8px;height:8px;border-top:1px solid rgba(0,255,140,.5);border-left:1px solid rgba(0,255,140,.5)}.ad-complete-button:after{content:"";position:absolute;bottom:5px;right:5px;width:8px;height:8px;border-bottom:1px solid rgba(0,255,140,.5);border-right:1px solid rgba(0,255,140,.5)}.react-resizable{position:relative}.react-resizable-handle{position:absolute;width:20px;height:20px;background-repeat:no-repeat;background-origin:content-box;box-sizing:border-box;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2IDYiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYwMCIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI2cHgiIGhlaWdodD0iNnB4Ij48ZyBvcGFjaXR5PSIwLjMwMiI+PHBhdGggZD0iTSA2IDYgTCAwIDYgTCAwIDQuMiBMIDQgNC4yIEwgNC4yIDQuMiBMIDQuMiAwIEwgNiAwIEwgNiA2IEwgNiA2IFoiIGZpbGw9IiMwMDAwMDAiLz48L2c+PC9zdmc+);background-position:bottom right;padding:0 3px 3px 0}.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-resizable-handle-w,.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-resizable-handle-n,.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}.custom-handle{width:100%;height:10px;background:#00ff8c33;cursor:row-resize;display:flex;justify-content:center;align-items:center;transition:background-color .2s ease}.custom-handle:hover{background:#00ff8c66}.handle-bar{width:50px;height:4px;background:#00ff8c99;border-radius:2px;box-shadow:0 0 5px #00ff8c80}.custom-handle:hover .handle-bar{box-shadow:0 0 10px #00ff8ccc}.react-resizable{position:relative;background-color:transparent}.react-resizable-handle{position:absolute;width:100%;height:10px;top:0;cursor:row-resize;z-index:10}.react-resizable-handle-n{top:-5px}.terminal-container{width:100%;position:relative;background-color:transparent}.terminal-animate{animation:slideUp .6s ease-out forwards}.terminal-content{animation:fadeIn .5s ease-out forwards}.terminal-scrollable{overflow-y:auto!important;max-height:100%;will-change:transform;transform:translateZ(0);-webkit-overflow-scrolling:touch}.terminal-content{white-space:pre-wrap!important;word-wrap:break-word!important}.terminal-content .success{color:#00ff8c!important;text-shadow:0 0 5px rgba(0,255,140,.7)!important}.terminal-content .error{color:#ff3860!important;text-shadow:0 0 5px rgba(255,56,96,.7)!important}.terminal-content .warning{color:#ffdd57!important;text-shadow:0 0 5px rgba(255,221,87,.7)!important}.terminal-content .input{color:#0cf!important;text-shadow:0 0 5px rgba(0,204,255,.7)!important}.terminal-content span[class^=span]{display:inline!important}@keyframes slideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.terminal-cursor{animation:blink 1s infinite}.high-performance-mode{--shadow-intensity: .6;--glow-intensity: .7;transform:translateZ(0)}.high-performance-mode .monaco-editor,.high-performance-mode .editor-panel{will-change:transform;transform:translateZ(0)}.high-performance-mode .editor-panel,.high-performance-mode .chat-panel-container,.high-performance-mode .problem-panel{box-shadow:none!important}.high-performance-mode .chat-container:after,.high-performance-mode .problem-description:after{background-size:100% 8px!important}.high-performance-mode .glowing-text{text-shadow:0 0 5px rgba(0,204,255,.5)!important}.high-performance-mode .monaco-editor{--vscode-editor-scrollbar-scrollByPage: true}.high-performance-mode .message-content,.high-performance-mode .chat-message,.high-performance-mode .chakra-modal__content,.high-performance-mode .chakra-popover__content,.high-performance-mode .chakra-tooltip{transition-duration:.15s!important}.high-performance-mode .monaco-editor .cursor,.high-performance-mode .monaco-editor .line-numbers{transition-duration:.1s!important}.high-performance-mode [style*=animation]{animation-timing-function:steps(10)!important}.high-performance-mode [style*=linear-gradient]{background-size:40px 40px!important}.cyberpunk-terminal{background:linear-gradient(#000000f2,#000a14e6);border:1px solid #0066ff;box-shadow:0 0 15px #00c8ff33,inset 0 0 10px #0096ff1a;font-family:Courier New,monospace;position:relative;--glitch-intensity: .8;--text-shadow-strength: .08em;--transform-strength: .04em;--animation-speed: 2.5s;--shake-intensity: 4px;--shake-animation-speed: .8s}.cyberpunk-terminal:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(to right,transparent,#00ccff,transparent);opacity:.8}.cyberpunk-terminal:after{content:"";position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(to right,transparent,#00ccff,transparent);opacity:.5}@keyframes typeWrite{0%{width:0}to{width:100%}}@keyframes blink{0%,49%{opacity:1}50%,to{opacity:0}}@keyframes glitch{0%{text-shadow:var(--text-shadow-strength) 0 0 #ff00ff,calc(-1 * var(--text-shadow-strength)) calc(-.5 * var(--text-shadow-strength)) 0 #00ffff}10%{text-shadow:var(--text-shadow-strength) 0 0 #ff00ff,calc(-1 * var(--text-shadow-strength)) calc(-.5 * var(--text-shadow-strength)) 0 #00ffff}11%{text-shadow:calc(-1 * var(--text-shadow-strength)) calc(-.5 * var(--text-shadow-strength)) 0 #ff00ff,calc(.5 * var(--text-shadow-strength)) calc(.5 * var(--text-shadow-strength)) 0 #00ffff}15%{text-shadow:calc(-1 * var(--text-shadow-strength)) calc(-.5 * var(--text-shadow-strength)) 0 #ff0055,calc(.5 * var(--text-shadow-strength)) calc(.5 * var(--text-shadow-strength)) 0 #00ffaa}30%{text-shadow:calc(-1 * var(--text-shadow-strength)) calc(-.5 * var(--text-shadow-strength)) 0 #ff5500,calc(.5 * var(--text-shadow-strength)) calc(.5 * var(--text-shadow-strength)) 0 #00ffff}31%{text-shadow:calc(.5 * var(--text-shadow-strength)) var(--text-shadow-strength) 0 #ff00ff,var(--text-shadow-strength) 0 0 #00ffff}45%{text-shadow:calc(.5 * var(--text-shadow-strength)) var(--text-shadow-strength) 0 #ff00ff,var(--text-shadow-strength) 0 0 #00ffff}46%{text-shadow:calc(-.5 * var(--text-shadow-strength)) 0 0 #ff00ff,calc(-.5 * var(--text-shadow-strength)) calc(-.5 * var(--text-shadow-strength)) 0 #00ffff}60%{text-shadow:calc(-.5 * var(--text-shadow-strength)) 0 0 #ff5500,calc(-.5 * var(--text-shadow-strength)) calc(-.5 * var(--text-shadow-strength)) 0 #00ffff}61%{text-shadow:calc(.5 * var(--text-shadow-strength)) var(--text-shadow-strength) 0 #ff00ff,var(--text-shadow-strength) 0 0 #55ffff}75%{text-shadow:calc(.5 * var(--text-shadow-strength)) var(--text-shadow-strength) 0 #ff00ff,var(--text-shadow-strength) 0 0 #00ffff}76%{text-shadow:calc(-1 * var(--text-shadow-strength)) calc(-.5 * var(--text-shadow-strength)) 0 #ff0055,calc(.5 * var(--text-shadow-strength)) calc(.5 * var(--text-shadow-strength)) 0 #00ffff}90%{text-shadow:calc(-1 * var(--text-shadow-strength)) calc(-.5 * var(--text-shadow-strength)) 0 #ff00ff,calc(.5 * var(--text-shadow-strength)) calc(.5 * var(--text-shadow-strength)) 0 #00ffff}91%{text-shadow:var(--text-shadow-strength) 0 0 #ff00ff,calc(-1 * var(--text-shadow-strength)) calc(-.5 * var(--text-shadow-strength)) 0 #00ffff}to{text-shadow:var(--text-shadow-strength) 0 0 #ff00ff,calc(-1 * var(--text-shadow-strength)) calc(-.5 * var(--text-shadow-strength)) 0 #00ffff}}@keyframes severe-glitch{0%{text-shadow:calc(1.2 * var(--text-shadow-strength)) 0 0 #ff0055,calc(-1.2 * var(--text-shadow-strength)) calc(-.6 * var(--text-shadow-strength)) 0 #00ffff;transform:translate(calc(.2 * var(--transform-strength)))}10%{text-shadow:calc(1.2 * var(--text-shadow-strength)) 0 0 #ff0055,calc(-1.2 * var(--text-shadow-strength)) calc(-.6 * var(--text-shadow-strength)) 0 #00ffff;transform:translate(calc(-.2 * var(--transform-strength)))}11%{text-shadow:calc(-1.2 * var(--text-shadow-strength)) calc(-.6 * var(--text-shadow-strength)) 0 #ff0055,calc(.6 * var(--text-shadow-strength)) calc(.6 * var(--text-shadow-strength)) 0 #00ffff;transform:translate(calc(.75 * var(--transform-strength)))}20%{text-shadow:calc(-1.2 * var(--text-shadow-strength)) calc(-.6 * var(--text-shadow-strength)) 0 #ff0055,calc(.6 * var(--text-shadow-strength)) calc(.6 * var(--text-shadow-strength)) 0 #00ffff;transform:translate(calc(-.625 * var(--transform-strength)))}21%{text-shadow:calc(var(--text-shadow-strength)) calc(1.4 * var(--text-shadow-strength)) 0 #ff5500,calc(1.4 * var(--text-shadow-strength)) 0 0 #00ffff;transform:translate(calc(-.2 * var(--transform-strength)),calc(.425 * var(--transform-strength)))}30%{text-shadow:calc(var(--text-shadow-strength)) calc(1.4 * var(--text-shadow-strength)) 0 #ff5500,calc(1.4 * var(--text-shadow-strength)) 0 0 #00ffff;transform:translate(calc(.425 * var(--transform-strength)),calc(-.2 * var(--transform-strength)))}31%{text-shadow:calc(-.6 * var(--text-shadow-strength)) 0 0 #ff0055,calc(-.6 * var(--text-shadow-strength)) calc(-.6 * var(--text-shadow-strength)) 0 #55ffff;transform:translateY(calc(-.2 * var(--transform-strength)))}45%{text-shadow:calc(-.6 * var(--text-shadow-strength)) 0 0 #ff0055,calc(-.6 * var(--text-shadow-strength)) calc(-.6 * var(--text-shadow-strength)) 0 #55ffff;transform:translate(calc(.425 * var(--transform-strength)))}46%{text-shadow:calc(.6 * var(--text-shadow-strength)) calc(1.4 * var(--text-shadow-strength)) 0 #ff0055,calc(1.4 * var(--text-shadow-strength)) 0 0 #00ffff;transform:translateY(calc(.425 * var(--transform-strength)))}65%{text-shadow:calc(.6 * var(--text-shadow-strength)) calc(1.4 * var(--text-shadow-strength)) 0 #ff0055,calc(1.4 * var(--text-shadow-strength)) 0 0 #00ffff;transform:translate(calc(-.425 * var(--transform-strength)))}66%{text-shadow:calc(-1.2 * var(--text-shadow-strength)) calc(-.6 * var(--text-shadow-strength)) 0 #ff5500,calc(.6 * var(--text-shadow-strength)) calc(.6 * var(--text-shadow-strength)) 0 #00ffff;transform:translate(calc(-.2 * var(--transform-strength)),calc(-.2 * var(--transform-strength)))}80%{text-shadow:calc(-1.2 * var(--text-shadow-strength)) calc(-.6 * var(--text-shadow-strength)) 0 #ff5500,calc(.6 * var(--text-shadow-strength)) calc(.6 * var(--text-shadow-strength)) 0 #00ffff;transform:translate(calc(.2 * var(--transform-strength)),calc(.2 * var(--transform-strength)))}81%{text-shadow:calc(1.2 * var(--text-shadow-strength)) 0 0 #ff0055,calc(-1.2 * var(--text-shadow-strength)) calc(-.6 * var(--text-shadow-strength)) 0 #00ffff;transform:translate(calc(.2 * var(--transform-strength)),calc(-.425 * var(--transform-strength)))}to{text-shadow:calc(1.2 * var(--text-shadow-strength)) 0 0 #ff0055,calc(-1.2 * var(--text-shadow-strength)) calc(-.6 * var(--text-shadow-strength)) 0 #00ffff;transform:translate(0)}}@keyframes critical-glitch{0%{text-shadow:calc(1.7 * var(--text-shadow-strength)) 0 0 #ff0055,calc(-1.7 * var(--text-shadow-strength)) calc(-.8 * var(--text-shadow-strength)) 0 #00ffff,calc(.8 * var(--text-shadow-strength)) calc(.8 * var(--text-shadow-strength)) 0 #ffff00;transform:translate(calc(.425 * var(--transform-strength))) skew(1.7deg)}7%{text-shadow:calc(1.7 * var(--text-shadow-strength)) 0 0 #ff0055,calc(-1.7 * var(--text-shadow-strength)) calc(-.8 * var(--text-shadow-strength)) 0 #00ffff,calc(.8 * var(--text-shadow-strength)) calc(.8 * var(--text-shadow-strength)) 0 #ffff00;transform:translate(calc(-.425 * var(--transform-strength))) skew(-2.5deg)}8%{text-shadow:calc(-1.7 * var(--text-shadow-strength)) calc(.8 * var(--text-shadow-strength)) 0 #ff5500,calc(1.7 * var(--text-shadow-strength)) 0 0 #22ffff,calc(-1.4 * var(--text-shadow-strength)) calc(-1.4 * var(--text-shadow-strength)) 0 #ff0000;transform:translate(calc(.75 * var(--transform-strength)),calc(.425 * var(--transform-strength))) skew(4.2deg)}15%{text-shadow:calc(-1.7 * var(--text-shadow-strength)) calc(.8 * var(--text-shadow-strength)) 0 #ff5500,calc(1.7 * var(--text-shadow-strength)) 0 0 #22ffff,calc(-1.4 * var(--text-shadow-strength)) calc(-1.4 * var(--text-shadow-strength)) 0 #ff0000;transform:translate(calc(-.625 * var(--transform-strength)),calc(-.425 * var(--transform-strength))) skew(-.8deg)}16%{text-shadow:calc(.8 * var(--text-shadow-strength)) calc(-.8 * var(--text-shadow-strength)) 0 #ff0055,calc(-.8 * var(--text-shadow-strength)) 0 0 #00ffff,0 calc(1.7 * var(--text-shadow-strength)) 0 #ffff00;transform:translateY(calc(.625 * var(--transform-strength))) skew(1.7deg) scale(1.025)}to{text-shadow:calc(1.7 * var(--text-shadow-strength)) 0 0 #ff0055,calc(-1.7 * var(--text-shadow-strength)) calc(.8 * var(--text-shadow-strength)) 0 #00ffff,calc(.8 * var(--text-shadow-strength)) calc(-.8 * var(--text-shadow-strength)) 0 #ffff00;transform:translate(0) skew(0)}}.terminal-no-glitch,.terminal-no-glitch *,.terminal-no-glitch .terminal-text-container,.terminal-no-glitch .terminal-line,.terminal-no-glitch .critical-message,.terminal-no-glitch .alert-message,.terminal-no-glitch .breach-message,.terminal-no-glitch .system-message,.terminal-no-glitch .security-message,.terminal-no-glitch .success-message,.terminal-no-glitch .verify-message,.terminal-no-glitch .warning-message{animation:none!important;text-shadow:none!important;transform:none!important;transition:none!important;will-change:auto!important;filter:none!important}.cyberpunk-terminal.terminal-no-glitch{animation:none!important}.terminal-no-glitch .critical-message{color:#f35;text-shadow:0 0 5px rgba(255,51,85,.5)!important}.terminal-no-glitch .alert-message{color:#fc0;text-shadow:0 0 5px rgba(255,204,0,.5)!important}.terminal-no-glitch .system-message{color:#3cf;text-shadow:0 0 5px rgba(51,204,255,.5)!important}.terminal-glitch-high .critical-message{animation:critical-glitch calc(var(--animation-speed) * .75) infinite;will-change:text-shadow,transform}.terminal-glitch-high .alert-message{animation:severe-glitch var(--animation-speed) infinite;will-change:text-shadow,transform}.terminal-cursor-blink{animation:blink 1s infinite;margin-left:2px}.terminal-line{line-height:1.4;margin-bottom:3px;white-space:pre-wrap;overflow-wrap:break-word;color:#0f0}.system-message{color:#0cf;font-weight:700}.kernel-message{color:#ff9800;font-weight:700}.alert-message{color:#ff3d00;font-weight:700;text-shadow:0 0 5px rgba(255,61,0,.5)}.breach-message{color:#0f6}.success-message{color:#6f0;font-weight:700;text-shadow:0 0 10px rgba(102,255,0,.4)}.critical-message{color:#f05;font-weight:700;text-shadow:0 0 10px rgba(255,0,85,.7)}.module-message{color:#00e5ff}.upgrade-message{color:#a0f}.security-message{color:#ff4081}.verify-message{color:#ff0;text-shadow:0 0 5px rgba(255,255,0,.5)}.warning-message{color:#ffab00;font-weight:700}.protocol-message{color:#64ffda}.analytics-message{color:#fc0;font-weight:700;text-shadow:0 0 8px rgba(255,204,0,.6);letter-spacing:.5px;background:linear-gradient(90deg,rgba(255,204,0,.05),transparent);padding-left:4px;border-left:2px solid rgba(255,204,0,.5)}.ascii-art{color:#0f6;font-weight:700;line-height:1;text-shadow:0 0 5px rgba(0,255,102,.5);max-width:100%}.ascii-success{color:#0f6;font-weight:700;line-height:1;text-shadow:0 0 8px rgba(0,255,102,.7);max-width:100%}.ascii-fail{color:#f05;font-weight:700;line-height:1;text-shadow:0 0 8px rgba(255,0,85,.7);max-width:100%}.terminal-text-container:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(to bottom,transparent 50%,rgba(0,0,0,.05) 50%);background-size:100% 4px;pointer-events:none;z-index:10;opacity:.1}@keyframes flicker{0%{opacity:.9}5%{opacity:.95}10%{opacity:.9}15%{opacity:.95}20%{opacity:1}80%{opacity:.9}85%{opacity:.95}90%{opacity:.9}95%{opacity:.95}to{opacity:1}}.cyberpunk-terminal{animation:flicker 5s infinite}.terminal-container{position:relative;width:100%;height:300px;min-height:150px;max-height:80vh;overflow:hidden;margin:0;padding:0;border-top:none}.terminal-ad-container{margin:0;padding:0}.resizable-terminal{min-height:150px;max-height:80vh}.custom-handle{width:100%;height:10px;background:#111;cursor:row-resize;display:flex;justify-content:center;align-items:center;border-bottom:1px solid #0066ff;-webkit-user-select:none;user-select:none}.handle-bar{width:40px;height:4px;background:#06f;border-radius:2px}.custom-handle:hover{background:#1a1a2e}.custom-handle:hover .handle-bar{background:#0cf;box-shadow:0 0 5px #0cf}@media (max-width: 768px){.ascii-art{font-size:10px!important;line-height:.9}}@media (max-width: 576px){.ascii-art{font-size:8px!important;line-height:.8}}@keyframes terminal-shake-low{0%{transform:translate(0)}5%{transform:translate(calc(-.7 * var(--shake-intensity)))}10%{transform:translate(calc(.5 * var(--shake-intensity)),calc(-.3 * var(--shake-intensity)))}15%{transform:translate(calc(-.3 * var(--shake-intensity)),calc(.7 * var(--shake-intensity)))}20%{transform:translate(calc(.7 * var(--shake-intensity)))}25%{transform:translateY(calc(-.5 * var(--shake-intensity)))}30%{transform:translate(calc(-.5 * var(--shake-intensity)),calc(.3 * var(--shake-intensity)))}35%{transform:translate(calc(.3 * var(--shake-intensity)),calc(-.7 * var(--shake-intensity)))}40%{transform:translateY(calc(.5 * var(--shake-intensity)))}45%{transform:translate(calc(-.7 * var(--shake-intensity)))}50%{transform:translate(calc(.5 * var(--shake-intensity)),calc(-.5 * var(--shake-intensity)))}55%{transform:translateY(calc(.7 * var(--shake-intensity)))}60%{transform:translate(calc(-.5 * var(--shake-intensity)))}65%{transform:translate(calc(.7 * var(--shake-intensity)),calc(-.3 * var(--shake-intensity)))}70%{transform:translateY(calc(.5 * var(--shake-intensity)))}75%{transform:translate(calc(-.3 * var(--shake-intensity)),calc(-.7 * var(--shake-intensity)))}80%{transform:translate(calc(.5 * var(--shake-intensity)))}85%{transform:translate(calc(-.7 * var(--shake-intensity)),calc(.3 * var(--shake-intensity)))}90%{transform:translate(calc(.3 * var(--shake-intensity)),calc(-.5 * var(--shake-intensity)))}95%{transform:translate(calc(-.5 * var(--shake-intensity)))}to{transform:translate(0)}}@keyframes terminal-shake-medium{0%{transform:translate(0) rotate(0)}5%{transform:translate(calc(-1.2 * var(--shake-intensity)),calc(.7 * var(--shake-intensity))) rotate(-.3deg)}10%{transform:translate(calc(1.4 * var(--shake-intensity)),calc(-.5 * var(--shake-intensity))) rotate(.2deg)}15%{transform:translate(calc(-.7 * var(--shake-intensity)),calc(1.4 * var(--shake-intensity))) rotate(-.1deg)}20%{transform:translate(calc(1.2 * var(--shake-intensity)),calc(-.7 * var(--shake-intensity))) rotate(.3deg)}25%{transform:translate(calc(-1.4 * var(--shake-intensity)),calc(.3 * var(--shake-intensity))) rotate(-.2deg)}30%{transform:translate(calc(.5 * var(--shake-intensity)),calc(1.2 * var(--shake-intensity))) rotate(.1deg)}35%{transform:translate(calc(1.2 * var(--shake-intensity)),calc(-1 * var(--shake-intensity))) rotate(-.3deg)}40%{transform:translate(calc(-.7 * var(--shake-intensity)),calc(.7 * var(--shake-intensity))) rotate(.2deg)}45%{transform:translate(calc(.5 * var(--shake-intensity)),calc(-1.4 * var(--shake-intensity))) rotate(-.1deg)}50%{transform:translate(calc(-1.2 * var(--shake-intensity))) rotate(.3deg)}55%{transform:translate(calc(1.4 * var(--shake-intensity)),calc(.7 * var(--shake-intensity))) rotate(-.2deg)}60%{transform:translate(calc(-.7 * var(--shake-intensity)),calc(-1.2 * var(--shake-intensity))) rotate(.1deg)}65%{transform:translate(calc(1 * var(--shake-intensity)),calc(.5 * var(--shake-intensity))) rotate(-.3deg)}70%{transform:translate(calc(-1.4 * var(--shake-intensity)),calc(-.3 * var(--shake-intensity))) rotate(.2deg)}75%{transform:translate(calc(.3 * var(--shake-intensity)),calc(1.4 * var(--shake-intensity))) rotate(-.1deg)}80%{transform:translate(calc(1.2 * var(--shake-intensity)),calc(-.7 * var(--shake-intensity))) rotate(.3deg)}85%{transform:translate(calc(-1 * var(--shake-intensity)),calc(.5 * var(--shake-intensity))) rotate(-.2deg)}90%{transform:translate(calc(.7 * var(--shake-intensity)),calc(-1.2 * var(--shake-intensity))) rotate(.1deg)}95%{transform:translate(calc(-1.4 * var(--shake-intensity)),calc(-.7 * var(--shake-intensity))) rotate(-.3deg)}to{transform:translate(0) rotate(0)}}@keyframes terminal-shake-high{0%{transform:translate(0) rotate(0) scale(1)}4%{transform:translate(calc(-2 * var(--shake-intensity)),calc(1.2 * var(--shake-intensity))) rotate(-.5deg) scale(1.004)}8%{transform:translate(calc(1.8 * var(--shake-intensity)),calc(-1.6 * var(--shake-intensity))) rotate(.5deg) scale(.996)}12%{transform:translate(calc(-1.6 * var(--shake-intensity)),calc(2 * var(--shake-intensity))) rotate(-.4deg) scale(1.006)}16%{transform:translate(calc(2.2 * var(--shake-intensity)),calc(-.8 * var(--shake-intensity))) rotate(.6deg) scale(.994)}20%{transform:translate(calc(-1 * var(--shake-intensity)),calc(-1.8 * var(--shake-intensity))) rotate(-.6deg) scale(1.008)}24%{transform:translate(calc(1.4 * var(--shake-intensity)),calc(1.4 * var(--shake-intensity))) rotate(.4deg) scale(.992)}28%{transform:translate(calc(-2.2 * var(--shake-intensity)),calc(-1 * var(--shake-intensity))) rotate(-.7deg) scale(1.005)}32%{transform:translate(calc(1 * var(--shake-intensity)),calc(1.8 * var(--shake-intensity))) rotate(.7deg) scale(.995)}36%{transform:translate(calc(-1.4 * var(--shake-intensity)),calc(-1.4 * var(--shake-intensity))) rotate(-.4deg) scale(1.007)}40%{transform:translate(calc(2.2 * var(--shake-intensity)),calc(.6 * var(--shake-intensity))) rotate(.6deg) scale(.993)}44%{transform:translate(calc(-1.8 * var(--shake-intensity)),calc(1.6 * var(--shake-intensity))) rotate(-.6deg) scale(1.006)}48%{transform:translate(calc(1.6 * var(--shake-intensity)),calc(-2 * var(--shake-intensity))) rotate(.5deg) scale(.994)}52%{transform:translate(calc(-2 * var(--shake-intensity)),calc(-.6 * var(--shake-intensity))) rotate(-.5deg) scale(1.005)}56%{transform:translate(calc(.8 * var(--shake-intensity)),calc(2.2 * var(--shake-intensity))) rotate(.7deg) scale(.993)}60%{transform:translate(calc(-1.4 * var(--shake-intensity)),calc(-1.8 * var(--shake-intensity))) rotate(-.7deg) scale(1.007)}64%{transform:translate(calc(2 * var(--shake-intensity)),calc(1 * var(--shake-intensity))) rotate(.4deg) scale(.995)}68%{transform:translate(calc(-.6 * var(--shake-intensity)),calc(-2.2 * var(--shake-intensity))) rotate(-.6deg) scale(1.004)}72%{transform:translate(calc(1.8 * var(--shake-intensity)),calc(.8 * var(--shake-intensity))) rotate(.6deg) scale(.996)}76%{transform:translate(calc(-2.2 * var(--shake-intensity)),calc(-1 * var(--shake-intensity))) rotate(-.4deg) scale(1.006)}80%{transform:translate(calc(1 * var(--shake-intensity)),calc(2 * var(--shake-intensity))) rotate(.5deg) scale(.994)}84%{transform:translate(calc(-1.6 * var(--shake-intensity)),calc(-1.6 * var(--shake-intensity))) rotate(-.7deg) scale(1.003)}88%{transform:translate(calc(2.2 * var(--shake-intensity)),calc(.6 * var(--shake-intensity))) rotate(.7deg) scale(.997)}92%{transform:translate(calc(-1 * var(--shake-intensity)),calc(1.8 * var(--shake-intensity))) rotate(-.3deg) scale(1.002)}96%{transform:translate(calc(1.4 * var(--shake-intensity)),calc(-2.2 * var(--shake-intensity))) rotate(.3deg) scale(.998)}to{transform:translate(0) rotate(0) scale(1)}}.terminal-glitch-low .terminal-content{animation:terminal-shake-low var(--shake-animation-speed) infinite;will-change:transform}.terminal-glitch-medium .terminal-content{animation:terminal-shake-medium var(--shake-animation-speed) infinite;will-change:transform}.terminal-glitch-high .terminal-content{animation:terminal-shake-high calc(var(--shake-animation-speed) * .6) infinite;will-change:transform}.terminal-glitch-low .terminal-text-container{animation:glitch var(--animation-speed) infinite;will-change:text-shadow}.terminal-glitch-medium .terminal-text-container{animation:severe-glitch var(--animation-speed) infinite;will-change:text-shadow,transform}.terminal-glitch-high .terminal-text-container{animation:critical-glitch var(--animation-speed) infinite;will-change:text-shadow,transform}.tower-defense-chat-container{display:flex;flex-direction:column;height:100%;background:#0a0014cc;color:#d8b4fe;position:relative;font-family:Orbitron,sans-serif;font-size:14px;line-height:1.6}.tower-defense-scroll-container{flex:1;overflow-y:auto;min-height:0;scrollbar-width:thin;scrollbar-color:rgba(168,85,247,.5) rgba(26,0,51,.3)}.tower-defense-scroll-container::-webkit-scrollbar{width:8px}.tower-defense-scroll-container::-webkit-scrollbar-track{background:#1a00334d}.tower-defense-scroll-container::-webkit-scrollbar-thumb{background:#a855f780;border-radius:4px}.tower-defense-scroll-container::-webkit-scrollbar-thumb:hover{background:#a855f7cc}.tower-defense-chat-messages-wrapper{position:relative;min-height:150%;padding-bottom:10vh}.tower-defense-chat-messages{display:flex;flex-direction:column;gap:1rem;padding:1rem}.tower-defense-chat-message{padding:1rem;border-radius:.5rem;max-width:85%;word-break:break-word;box-shadow:0 2px 5px #0003;position:relative;font-size:14px;line-height:1.6}.tower-defense-chat-message.user{align-self:flex-end;background:#4c1d9580;color:#e9d8fd;border-right:2px solid #d8b4fe;border-top-right-radius:.25rem;text-shadow:0 0 2px rgba(168,85,247,.5)}.tower-defense-chat-message.ai{align-self:flex-start;background:#1a003380;color:#d8b4fe;border-left:2px solid #a855f7;border-top-left-radius:.25rem;box-shadow:0 0 8px #8000ff26}.tower-defense-chat-message.warning{background-color:#ffd70026;color:gold;text-align:center;font-size:.8rem;padding:8px;margin:8px 0;border-radius:4px;border:1px solid rgba(255,215,0,.3);text-shadow:0 0 3px rgba(255,215,0,.5)}.tower-defense-chat-message.error{background-color:#ff000026;color:#f44;text-align:center;font-size:.8rem;padding:8px;margin:8px 0;border-radius:4px;border:1px solid rgba(255,0,0,.3);text-shadow:0 0 3px rgba(255,0,0,.5)}.tower-defense-chat-message.refusal{background-color:#ffa50026;border-left:3px solid #ffa500;text-shadow:0 0 3px rgba(255,165,0,.5)}.tower-defense-thinking-indicator{display:flex;align-items:center;gap:.75rem;color:#a855f7;font-style:italic;text-shadow:0 0 3px rgba(168,85,247,.5)}.tower-defense-message-content{white-space:pre-wrap;word-break:break-word}.tower-defense-message-content .md-h1{font-size:1.5em;font-weight:700;color:#a855f7;margin:16px 0 12px;text-shadow:0 0 5px rgba(168,85,247,.5);border-bottom:2px solid rgba(168,85,247,.3);padding-bottom:4px}.tower-defense-message-content .md-h2{font-size:1.3em;font-weight:700;color:#d8b4fe;margin:14px 0 10px;text-shadow:0 0 3px rgba(216,180,254,.5);border-bottom:1px solid rgba(216,180,254,.3);padding-bottom:2px}.tower-defense-message-content .md-h3{font-size:1.1em;font-weight:700;color:#e9d8fd;margin:12px 0 8px;text-shadow:0 0 2px rgba(233,216,253,.5)}.tower-defense-message-content .md-bold{font-weight:700;color:#fbbf24;text-shadow:0 0 2px rgba(251,191,36,.3)}.tower-defense-message-content .md-inline-code{background:#0006;border:1px solid rgba(128,0,255,.2);border-radius:3px;padding:2px 6px;font-family:Courier New,monospace;font-size:13px;color:#e2e8f0}.tower-defense-message-content .md-ul{margin:8px 0;padding-left:0;list-style:none}.tower-defense-message-content .md-li{margin:4px 0;padding-left:20px;position:relative;line-height:1.5}.tower-defense-message-content .md-li:before{content:"▸";position:absolute;left:0;color:#a855f7;font-weight:700;text-shadow:0 0 3px rgba(168,85,247,.5)}.tower-defense-message-content pre{background:#0009;border:1px solid rgba(128,0,255,.3);border-radius:6px;padding:12px;margin:8px 0;overflow-x:auto;font-family:Courier New,monospace;font-size:13px;line-height:1.4;position:relative}.tower-defense-message-content code{background:#0006;border:1px solid rgba(128,0,255,.2);border-radius:3px;padding:2px 6px;font-family:Courier New,monospace;font-size:13px;color:#e2e8f0}.tower-defense-message-content pre code{background:transparent;border:none;padding:0;color:#e2e8f0}.code-block-container{position:relative;margin:8px 0}.code-copy-button{position:absolute;top:8px;right:8px;background:#8000ff33;border:1px solid rgba(128,0,255,.4);border-radius:4px;color:#d8b4fe;padding:4px 8px;font-size:11px;cursor:pointer;font-family:Orbitron,sans-serif;transition:all .2s ease}.code-copy-button:hover{background:#8000ff66;box-shadow:0 0 8px #8000ff80}.code-copy-button.copied{background:#00ff8033;border-color:#00ff8066;color:#90ee90}.tower-defense-chat-warning{margin-top:auto;width:100%}.tower-defense-chat-actions{padding:12px;background:#1a0033b3;display:flex;flex-direction:column;gap:8px}.tower-defense-chat-input-wrapper{flex-shrink:0;background:#1a0033b3;border-top:1px solid rgba(128,0,255,.4);position:sticky;bottom:0;z-index:10;margin-top:auto;padding-bottom:10px}.tower-defense-chat-input-container{position:relative;padding:12px;display:flex;gap:10px;width:100%;align-items:flex-start}.tower-defense-chat-input-container textarea{flex:1;min-height:40px;max-height:120px;overflow-y:auto}.tower-defense-chat-input-container textarea:focus{outline:none;border-color:#a855f7cc!important;box-shadow:0 0 0 1px #a855f7cc!important}.tower-defense-chat-input-container textarea::placeholder{color:#a855f7b3}.tower-defense-refusal-note{margin-top:8px;padding:4px 8px;background:#ffa50026;border-left:2px solid #ffa500;font-size:.8rem;color:gold}.limit-message{padding:8px;display:flex;flex-direction:column;gap:10px}.limit-actions{display:flex;gap:8px;justify-content:center;margin-top:8px}.tower-defense-ad-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000000d9;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;justify-content:center;align-items:center;z-index:1000;animation:glitch-fade-in .3s ease forwards}.tower-defense-ad-modal{width:90%;max-width:600px;background-color:#0f001ee6;border-radius:8px;box-shadow:0 0 20px #8000ff80,0 0 60px #8000ff4d;border:1px solid rgba(128,0,255,.6);overflow:hidden;animation:glitch-in .4s ease forwards}.tower-defense-ad-modal-header{padding:12px 16px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid rgba(128,0,255,.4);background:linear-gradient(90deg,#1a0033cc,#4c1d95cc)}.tower-defense-ad-modal-header h3{margin:0;font-family:Orbitron,sans-serif;color:#d8b4fe;text-shadow:0 0 5px rgba(168,85,247,.7);letter-spacing:1px}.tower-defense-ad-modal-content{padding:20px}.tower-defense-ad-timer{display:flex;align-items:center;justify-content:center;gap:8px;margin:15px 0;padding:8px;background:#1a003399;border-radius:4px;border:1px solid rgba(128,0,255,.3)}.tower-defense-ad-timer span{font-family:Orbitron,sans-serif;color:#d8b4fe;font-size:.9rem;text-shadow:0 0 5px rgba(168,85,247,.5)}@keyframes glitch-fade-in{0%{opacity:0}10%{opacity:.5}12%{opacity:.1}70%{opacity:.7}to{opacity:1}}@keyframes glitch-in{0%{transform:translateY(10px) scale(.95);opacity:0}20%{transform:translate(5px,5px) scale(.98);opacity:.8}40%{transform:translate(-3px) scale(.97);opacity:.4}60%{transform:translate(0) scale(1);opacity:.8}80%{transform:translate(-2px) scale(1.01);opacity:.9}to{transform:translate(0) scale(1);opacity:1}}.celebration-container{position:absolute;width:100%;height:100%;top:0;left:0;pointer-events:none;z-index:1000;overflow:visible}.particle{position:absolute;border-radius:50%;opacity:0;animation:float-up 2.5s ease-out forwards}.particle:nth-child(1){left:10%;width:8px;height:8px;background:#5dade2;animation-delay:.2s}.particle:nth-child(2){left:20%;width:12px;height:12px;background:#f4d03f;animation-delay:.4s}.particle:nth-child(3){left:30%;width:6px;height:6px;background:#2ecc71;animation-delay:.6s}.particle:nth-child(4){left:40%;width:10px;height:10px;background:#e74c3c;animation-delay:.8s}.particle:nth-child(5){left:50%;width:7px;height:7px;background:#9b59b6;animation-delay:1s}.particle:nth-child(6){left:60%;width:9px;height:9px;background:#3498db;animation-delay:1.2s}.particle:nth-child(7){left:70%;width:11px;height:11px;background:#f39c12;animation-delay:1.4s}.particle:nth-child(8){left:80%;width:8px;height:8px;background:#16a085;animation-delay:1.6s}.particle:nth-child(9){left:90%;width:10px;height:10px;background:#8e44ad;animation-delay:1.8s}@keyframes float-up{0%{transform:translateY(100%) scale(0);opacity:0}10%{opacity:1}90%{opacity:.8}to{transform:translateY(-100vh) scale(1.5) rotate(360deg);opacity:0}}.sparkle-container{position:absolute;width:100%;height:100%;top:0;left:0;pointer-events:none;overflow:hidden;z-index:1010}.sparkle{position:absolute;width:8px;height:8px;border-radius:50%;background-color:#fff;opacity:0;box-shadow:0 0 8px 2px #ffffffe6;animation:sparkle 2s linear infinite}.sparkle:nth-child(1){top:15%;left:45%;animation-delay:0s}.sparkle:nth-child(2){top:20%;right:30%;animation-delay:.3s}.sparkle:nth-child(3){top:30%;left:30%;animation-delay:.6s}.sparkle:nth-child(4){top:40%;right:25%;animation-delay:.9s}.sparkle:nth-child(5){top:50%;left:25%;animation-delay:1.2s}.sparkle:nth-child(6){top:60%;right:30%;animation-delay:1.5s}.sparkle:nth-child(7){top:70%;left:30%;animation-delay:1.8s}.sparkle:nth-child(8){top:80%;right:35%;animation-delay:2.1s}.sparkle:nth-child(9){top:85%;left:40%;animation-delay:2.4s}.sparkle:nth-child(10){top:25%;left:55%;animation-delay:2.7s}.sparkle:nth-child(11){top:45%;left:70%;animation-delay:1.5s}.sparkle:nth-child(12){top:65%;left:65%;animation-delay:.7s}.sparkle:nth-child(13){top:35%;left:38%;animation-delay:.9s}.sparkle:nth-child(14){top:55%;left:55%;animation-delay:1.2s}.sparkle:nth-child(15){top:75%;left:48%;animation-delay:.3s}@keyframes sparkle{0%,to{opacity:0;transform:scale(0)}50%{opacity:1;transform:scale(1.5)}}.gold-sparkle{width:10px;height:10px;background-color:gold;box-shadow:0 0 10px 4px #ffd700e6}.blue-sparkle{width:10px;height:10px;background-color:#1e90ff;box-shadow:0 0 10px 4px #1e90ffe6}.success-modal{background:#1a202c;border-radius:16px;box-shadow:0 10px 40px #00000080;border:1px solid rgba(255,255,255,.1);animation:modal-appear .5s cubic-bezier(.26,.53,.74,1.48) forwards;transform:scale(.8);opacity:0;max-width:450px!important;margin:0 auto;overflow:hidden;position:relative;color:#e2e8f0}.compact-modal{max-width:380px!important;margin:0 auto}.success-modal:after{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#00f5a0,#00d9f5);z-index:5}@keyframes modal-appear{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.high-score-modal{background:#1a202c}.high-score-modal:after{background:linear-gradient(90deg,gold,orange)}.best-time-modal{background:#1a202c}.best-time-modal:after{background:linear-gradient(90deg,#00d2ff,#3a7bd5)}.double-achievement-modal{background:#1a202c}.double-achievement-modal:after{background:linear-gradient(90deg,gold,#00d2ff,orange,#3a7bd5)}.success-modal-header{background-color:#0003;border-bottom:1px solid rgba(255,255,255,.1)!important;padding-bottom:1rem!important;padding-top:1.5rem!important}.success-modal-body{padding:1.5rem!important;background-color:#2d3748}.success-modal-footer{border-top:1px solid rgba(255,255,255,.1)!important;background-color:#0003;padding:1rem 1.5rem!important}.stats-container{display:flex;flex-direction:column;gap:12px;background:#2d3748;border-radius:12px;padding:16px;margin:.5rem 0 1rem;box-shadow:0 2px 4px #0000004d;border:1px solid rgba(255,255,255,.1)}.stat-item{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-radius:8px;background:#4a5568}.stat-label{font-weight:700;color:#e2e8f0;font-size:16px}.score-value,.time-value{display:inline-block;font-weight:700;font-size:1.2em;padding:6px 14px;border-radius:8px;background:#2d3748;margin-left:12px;box-shadow:0 2px 4px #0000004d;min-width:90px;text-align:center;color:#fff}.score-value{color:gold;background:#2d3748}.time-value{color:#56ccf2;background:#2d3748}.success-icon{display:flex;align-items:center;justify-content:center;width:70px;height:70px;border-radius:50%;background:#4a5568;margin:0 auto 15px;position:relative;animation:icon-pulse 2s ease infinite;box-shadow:0 5px 15px #0000004d}.success-icon:before{content:"✓";font-size:42px;color:#e2e8f0}.achievement-badge{display:inline-flex;align-items:center;margin:8px 5px;padding:6px 14px;border-radius:30px;font-weight:700;animation:badge-appear .5s ease-out forwards .5s;opacity:0;transform:translateY(20px);box-shadow:0 3px 10px #0000004d}.achievements-container{display:flex;justify-content:center;flex-wrap:wrap;margin:.5rem 0;gap:10px}.modern-button{position:relative;padding:12px 20px;border-radius:10px;border:none;background:#4d63ff;color:#fff;font-weight:700;letter-spacing:1px;overflow:hidden;transition:all .3s ease;box-shadow:0 4px 8px #0000001a;margin:8px 0;height:auto}.modern-button:hover{transform:translateY(-2px);box-shadow:0 6px 12px #0003;background:#3b52f5}.freeplay-button{background:#4d63ff!important;position:relative;color:#fff!important}.freeplay-button:hover{background:#3b52f5!important}.freeplay-button:before{content:"🎮";position:absolute;left:15px;font-size:16px}.ranked-button{background:#27ae60!important;position:relative;color:#fff!important}.ranked-button:hover{background:#219653!important}.ranked-button:before{content:"🏆";position:absolute;left:15px;font-size:16px}.challenge-button{background:#e53e3e!important;position:relative;color:#fff!important}.challenge-button:hover{background:#c53030!important}.challenge-button:before{content:"🔥";position:absolute;left:15px;font-size:16px}.return-button{background:#4a5568!important;position:relative;color:#fff!important}.return-button:hover{background:#2d3748!important}.return-button:before{content:"⬅️";position:absolute;left:15px;font-size:16px}.close-button{background:#4a5568!important;color:#e2e8f0!important;border:1px solid rgba(255,255,255,.1);transition:all .3s ease;font-weight:700}.close-button:hover{background:#2d3748!important;color:#fff!important}@keyframes icon-pulse{0%,to{transform:scale(1);box-shadow:0 0 #ffffffb3}50%{transform:scale(1.1);box-shadow:0 0 0 10px #fff0}}.trophy-icon{position:relative;display:inline-block;margin-right:10px;font-size:24px;animation:trophy-shine 3s ease infinite;transform-origin:center;filter:drop-shadow(0 0 4px rgba(255,215,0,.7))}@keyframes trophy-shine{0%,to{transform:rotate(-5deg);text-shadow:0 0 5px gold}50%{transform:rotate(5deg);text-shadow:0 0 15px gold,0 0 5px white}}.lightning-icon{position:relative;display:inline-block;margin-right:10px;font-size:24px;animation:lightning-flash 1.5s ease infinite;filter:drop-shadow(0 0 4px rgba(30,144,255,.7))}@keyframes lightning-flash{0%,to{opacity:1;transform:scale(1);text-shadow:0 0 5px #1E90FF}50%{opacity:.8;transform:scale(1.2);text-shadow:0 0 15px #1E90FF,0 0 5px white}}.high-score-badge{background:#f5a623;color:#333;box-shadow:0 3px 10px #f5a6234d}.best-time-badge{background:#2d9cdb;color:#fff;box-shadow:0 3px 10px #2d9cdb4d}@keyframes badge-appear{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modern-button:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:all .5s ease;z-index:1}.modern-button:hover:before{left:100%}.modal-title{color:#fff;font-weight:700}.modal-text{color:#e2e8f0}.button-text{padding-left:25px;color:#fff!important;font-weight:700}html{height:100%;margin:0;padding:0;overflow-x:auto;min-width:1200px;background-color:#1e1e1e}body{margin:0;padding:0;min-height:100%;width:100%;overflow-x:visible!important;position:relative;min-width:1200px;background-color:#1e1e1e}#root{display:flex;flex-direction:column;min-height:100vh;width:100%;min-width:1200px;overflow-x:auto;align-items:center}::-webkit-scrollbar{width:8px;height:8px;background-color:#1e1e1e}::-webkit-scrollbar-thumb{background-color:#404040;border-radius:4px;min-height:50px;min-width:50px}::-webkit-scrollbar-thumb:hover{background-color:#666}::-webkit-scrollbar-track{background-color:#1e1e1e}::-webkit-scrollbar-corner{background-color:#121212}.page-container{width:100%;max-width:1400px;min-width:1200px;margin:0 auto;background-color:#121212;position:relative;box-sizing:border-box;overflow:auto}.chat-message.user{background-color:#007bff;color:#fff;align-self:flex-end}.chat-message.ai{background-color:#f0f0f0;color:#333;align-self:flex-start}body{background-color:#121212;color:#0f0;font-family:Courier New,Courier,monospace;min-height:100vh}.nav-container{background-color:#000;padding:1rem;display:flex;justify-content:space-between;align-items:center}.nav-links a{color:#0f0;text-decoration:none;padding:.5rem 1rem;border-radius:4px}.nav-links a:hover{background-color:#0c0}.panel{background:#2a2a2a;box-shadow:0 2px 4px #00000080;border-radius:8px;padding:1rem;margin:1rem}.problem-card{background:#333;border:1px solid #00ff00;border-radius:8px;padding:1rem;margin:.5rem 0}.problem-card h3{color:#0f0}.difficulty{display:inline-block;padding:.25rem .5rem;border-radius:4px;font-size:.875rem}.difficulty.EASY{background-color:#2ecc71;color:#fff}.difficulty.MEDIUM{background-color:#f1c40f;color:#000}.difficulty.HARD{background-color:#e74c3c;color:#fff}.chat-message{padding:.5rem 1rem;border-radius:1rem;margin-bottom:.5rem}.editor-controls{background:#000;padding:10px;border-top:1px solid #00ff00}.editor-controls select{background:#333;color:#0f0;border:1px solid #00ff00;border-radius:4px;padding:5px}.primary-button{background-color:#0c0;color:#fff;border:none;border-radius:4px;padding:10px 15px;cursor:pointer}.primary-button:hover{background-color:#0f0}.error-message{color:#e74c3c;text-align:center;padding:2rem}.problem-workspace{display:flex;height:calc(100vh - 64px);width:100%;overflow:hidden;background:#1e1e1e}.panel{background:#2a2a2a;box-shadow:0 2px 4px #00000080;margin:0;padding:1rem;display:flex;flex-direction:column}.problem-panel{width:30%;min-width:300px;overflow-y:auto;border-right:1px solid #404040}.editor-panel{width:45%;min-width:400px;padding:0;display:flex;flex-direction:column;background:#1e1e1e}.chat-panel{width:25%;min-width:250px;border-left:1px solid #404040;display:flex;flex-direction:column}#monaco-editor{flex-grow:1;height:calc(100% - 50px)!important}.editor-controls{height:50px;padding:8px;background:#252526;border-top:1px solid #404040;display:flex;align-items:center;gap:8px}.chat-messages{flex-grow:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:1rem}.chat-input{padding:1rem;border-top:1px solid #404040;display:flex;gap:.5rem}.chat-input textarea{flex-grow:1;background:#333;color:#0f0;border:1px solid #404040;border-radius:4px;padding:.5rem;resize:none}.problem-description{color:#0f0;line-height:1.6}.problem-description pre{background:#333;padding:1rem;border-radius:4px;overflow-x:auto;margin:1rem 0}.problem-description code{font-family:Courier New,monospace;background:#333;padding:.2rem .4rem;border-radius:3px}.editor-controls select,.editor-controls button{height:34px;padding:0 12px}.editor-controls>*+*{margin-left:8px}.resize-handle{width:4px;background:#404040;transition:background-color .2s;cursor:col-resize;margin:0;padding:0;z-index:2}.resize-handle:hover,.resize-handle[data-resize-handle-active]{background:#666;width:4px}.problem-panel{height:100%;overflow-y:auto;padding:1.5rem;color:#0f0;font-size:1rem;line-height:1.6;background:#1e1e1e}[data-panel-id]{margin:0;padding:0;background:#1e1e1e;width:100%}[data-panel-group]{gap:0;width:100%}.problem-panel h1{font-size:1.8rem;margin-bottom:1rem;color:#0f0}.problem-stats{display:flex;gap:1rem;margin-bottom:1.5rem;align-items:center}.problem-content{color:#0f0}.problem-content pre{background:#1e1e1e;padding:1rem;border-radius:4px;overflow-x:auto;margin:1rem 0;border:1px solid #404040}.problem-content code{font-family:Courier New,monospace;background:#1e1e1e;padding:.2rem .4rem;border-radius:3px}.chakra-box{height:100%}.panel-content{height:100%;background:#1e1e1e;overflow:hidden;width:100%}.problem-panel{height:100%;width:100%;overflow-y:auto;padding:1.5rem 1rem 1.5rem 1.5rem;color:#0f0;font-size:1rem;line-height:1.6;background:#1e1e1e}.problem-content{width:100%;min-width:min-content;overflow-x:auto;padding-bottom:8px}.matrix-effect{position:relative}.matrix-line{background:#1e1e1e!important;color:transparent!important;width:100%!important;position:relative;z-index:1}.matrix-char{color:transparent!important;background:#1e1e1e!important}.matrix-overlay{color:#0f0!important;font-family:Courier New,monospace;background:#1e1e1e!important;position:absolute;left:0;top:0;width:100%!important;height:100%;z-index:2;pointer-events:none;-webkit-user-select:none;user-select:none;white-space:pre;display:block}.ai-problems-create-page{min-width:900px;width:100%;overflow-x:auto!important}.fixed-width-page{min-width:1200px;width:100%;overflow-x:visible}.problem-card,.panel,form>div,.form-group{padding:20px;margin-bottom:20px}select,input,button,.form-control{margin:10px 0;padding:10px}.problem-parameters-container{padding:20px;margin-right:30px}.generate-problem-container{padding:20px}.scrollable-content{overflow:auto;padding-right:14px}.app-footer{background-color:#1a1a1a;width:100%;bottom:0;position:fixed;z-index:1000}main,.content-area{flex:1 0 auto;min-height:calc(100vh - 150px);background-color:#121212}.ai-problems-create-container{min-width:1200px;width:100%;overflow-x:auto!important;position:relative;padding-bottom:50px}.ai-problems-create-container .chakra-grid{min-width:1200px;width:100%}.ai-problems-create-container [role=gridcell]{min-width:250px;overflow:visible}.ai-problems-create-container .chakra-grid>.chakra-grid{min-width:900px;width:100%}.ai-problems-create-container .chakra-grid>.chakra-grid>[role=gridcell]:first-of-type{min-width:500px;width:70%}.ai-problems-create-container .chakra-grid>.chakra-grid>[role=gridcell]:last-of-type{min-width:250px;width:30%;display:block!important}.ai-problems-create-container .chakra-card,.ai-problems-create-container .chakra-box[bg="#1e1e1e"]{min-width:fit-content}.code-background .keyword{color:#ff00de;text-shadow:0 0 5px rgba(255,0,222,.7)}.code-background .function{color:#0ff;text-shadow:0 0 5px rgba(0,255,255,.7)}.code-background .string{color:#00ff8c;text-shadow:0 0 5px rgba(0,255,140,.7)}@keyframes blink{0%,to{opacity:0}50%{opacity:1}}.code-background span{animation:blink 1s step-end infinite}
