:root{--radius-lg:16px;--radius-md:10px;--radius-sm:6px;--transition:all .3s cubic-bezier(.4, 0, .2, 1);--bg-color:#000;--text-color:#f0f0f0;--text-muted:#a0a0a5;--accent-color:#0ff;--accent-glow:#00ffff4d;--accent-secondary:#f0f;--panel-bg:#0f0f16a6;--panel-border:#ffffff14;--panel-shadow:0 8px 32px 0 #000c}[data-theme=default]{--bg-color:#000;--text-color:#f0f0f0;--text-muted:#a0a0a5;--accent-color:#0ff;--accent-glow:#00ffff4d;--accent-secondary:#f0f;--panel-bg:#0f0f16a6;--panel-border:#ffffff14}[data-theme=terminator]{--bg-color:#100;--text-color:#ffe6e6;--text-muted:#cfaaaa;--accent-color:#1ab2ff;--accent-glow:#1ab2ff4d;--accent-secondary:red;--panel-bg:#1e0505bf;--panel-border:#ff646426}[data-theme=retro]{--bg-color:#000500;--text-color:#0f4;--text-muted:#082;--accent-color:#0f4;--accent-glow:#00ff444d;--accent-secondary:#082;--panel-bg:#000a00d9;--panel-border:#0f43}body,html{background-color:var(--bg-color);width:100%;height:100%;color:var(--text-color);-webkit-font-smoothing:antialiased;margin:0;padding:0;font-family:system-ui,-apple-system,sans-serif;line-height:1.5;overflow:hidden}:focus-visible{outline:2px solid var(--accent-color);outline-offset:2px}#app{width:100vw;height:100vh;position:relative;overflow:hidden}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes glowPulse{0%{filter:drop-shadow(0 0 2px var(--accent-glow))}50%{filter:drop-shadow(0 0 8px var(--accent-glow))}to{filter:drop-shadow(0 0 2px var(--accent-glow))}}header{z-index:10;background:linear-gradient(#000000e6,#0000);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.5rem;padding:1.5rem 2rem;transition:opacity .3s cubic-bezier(.4,0,.2,1),transform .3s cubic-bezier(.4,0,.2,1),visibility .3s;display:flex;position:absolute;top:0;left:0;right:0;transform:translateY(0)}h1{letter-spacing:1px;color:var(--accent-color);text-transform:uppercase;margin:0;font-family:Silkscreen,cursive;font-size:1.4rem;font-weight:700;animation:.8s ease-out fadeInUp}.controls{flex-wrap:wrap;align-items:center;gap:.75rem;animation:.8s ease-out .1s both fadeInUp;display:flex}.toggle-control{color:var(--text-muted);cursor:pointer;border-radius:var(--radius-md);transition:var(--transition);background:#ffffff08;border:1px solid #0000;align-items:center;gap:.6rem;padding:.5rem .8rem;font-size:.85rem;display:flex}.toggle-control:hover:not(:has(input:disabled)){color:var(--text-color);background:#ffffff14}.toggle-control input[type=checkbox]{cursor:pointer;width:16px;height:16px;accent-color:var(--accent-color);margin:0}.toggle-control label{cursor:pointer;-webkit-user-select:none;user-select:none}.hidden-input{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.hidden-input:focus-visible+.btn{outline:2px solid var(--accent-color);outline-offset:2px}.hidden-input:disabled+.btn{opacity:.4;cursor:not-allowed}.btn{border:1px solid var(--panel-border);color:var(--text-color);border-radius:var(--radius-md);cursor:pointer;transition:var(--transition);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff0d;justify-content:center;align-items:center;gap:.5rem;height:40px;padding:0 1.25rem;font-family:inherit;font-size:.85rem;font-weight:500;display:inline-flex}.btn:hover:not(:disabled){border-color:var(--accent-color);background:#ffffff1f;transform:translateY(-1px);box-shadow:0 4px 12px #0000004d}.btn:active:not(:disabled){transform:translateY(0)}.btn:disabled{opacity:.4;cursor:not-allowed}.paused-style{border-color:var(--accent-color);color:var(--accent-color);background:#00ffff1a}.close-btn{color:var(--text-muted);cursor:pointer;width:36px;height:36px;transition:var(--transition);background:#ffffff0d;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:1.5rem;display:flex;position:absolute;top:1rem;right:1rem}.close-btn:hover{color:var(--text-color);background:#ffffff1a}#canvas-container{z-index:1;width:100%;height:100%;position:absolute;top:0;left:0}.centered-overlay{pointer-events:none;z-index:5;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}#welcome-msg{pointer-events:auto;text-align:center;background:var(--panel-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--panel-border);border-radius:var(--radius-lg);max-width:500px;box-shadow:var(--panel-shadow);padding:2rem;animation:1s ease-out fadeInUp;position:relative}#welcome-msg p{color:var(--text-muted);font-size:.95rem;line-height:1.6}#welcome-msg a{color:var(--accent-color);font-weight:500}#info-panel,#hover-panel{background:var(--panel-bg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--panel-border);border-radius:var(--radius-lg);box-shadow:var(--panel-shadow);z-index:20;width:260px;padding:1.5rem;transition:opacity .3s cubic-bezier(.4,0,.2,1),transform .3s cubic-bezier(.4,0,.2,1),visibility .3s;animation:.6s cubic-bezier(.16,1,.3,1) both fadeInUp;position:absolute}#info-panel{bottom:2rem;right:2rem}#hover-panel{pointer-events:none;top:6.5rem;left:2rem}h2{color:var(--accent-color);letter-spacing:.5px;text-transform:uppercase;margin-top:0;margin-bottom:1.25rem;font-family:Silkscreen,cursive;font-size:1rem;font-weight:400}.metric{justify-content:space-between;align-items:center;margin-bottom:.75rem;font-size:.85rem;display:flex}.metric label{color:var(--text-muted);font-weight:400}.metric span{color:var(--accent-color);font-weight:600}hr{border:0;border-top:1px solid var(--panel-border);margin:1.25rem 0}.bar-chart{align-items:flex-end;gap:3px;height:50px;margin-top:1rem;display:flex}.bar{background:linear-gradient(to top, var(--accent-secondary), var(--accent-color));opacity:.8;border-radius:3px 3px 1px 1px;flex:1;min-height:2px;transition:height .6s cubic-bezier(.34,1.56,.64,1)}.bar:hover{opacity:1;filter:brightness(1.2)}.app-footer{z-index:10;gap:1.25rem;transition:opacity .3s cubic-bezier(.4,0,.2,1),transform .3s cubic-bezier(.4,0,.2,1),visibility .3s;display:flex;position:absolute;bottom:1.5rem;left:2rem;transform:translateY(0)}.app-footer a{color:var(--text-muted);transition:var(--transition);align-items:center;gap:.4rem;font-size:.75rem;text-decoration:none;display:flex}.app-footer a:hover{color:var(--accent-color);transform:translateY(-1px)}#status-modal{background:var(--panel-bg);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--panel-border);border-radius:var(--radius-lg);color:var(--text-color);text-align:center;outline:none;padding:2.5rem;box-shadow:0 20px 50px #000c}#status-modal::backdrop{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#000000d9}#status-modal.pre-loading{background:var(--bg-color);z-index:9999;border:none;border-radius:0;flex-direction:column;justify-content:center;align-items:center;width:100vw;max-width:none;height:100vh;max-height:none;display:flex;position:fixed;inset:0}#status-modal.pre-loading .spinner{width:48px;height:48px}.spinner{border:3px solid #ffffff0d;border-top-color:var(--accent-color);border-radius:50%;width:32px;height:32px;margin:0 auto 1.5rem;animation:.8s cubic-bezier(.5,.1,.4,.9) infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.hidden{display:none}#app.ui-hidden header{opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-20px)}#app.ui-hidden #info-panel{opacity:0;visibility:hidden;pointer-events:none;transform:translateY(20px)}#app.ui-hidden #hover-panel{opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-20px)}.floating-btn{z-index:100;animation:.5s ease-out fadeInUp;display:none;position:absolute;top:1.5rem;right:2rem}#app.ui-hidden .floating-btn{opacity:1;display:inline-flex}@media (width<=850px){header{gap:1rem;padding:1rem}h1{font-size:1.25rem}.controls{gap:.5rem}.btn,.toggle-control{height:36px;padding:0 .75rem;font-size:.8rem}#info-panel{border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;max-height:60vh;bottom:0;left:0;right:0;overflow-y:auto}#hover-panel{width:auto;inset:auto 1rem calc(60vh + 1rem)}.close-btn{display:flex}.app-footer{bottom:1rem;left:1rem}}#drag-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;pointer-events:none;background:#0006;display:none}#canvas-container.drag-active #drag-overlay{display:flex}.drag-message{background:var(--panel-bg);border-radius:var(--radius-lg);border:2px dashed var(--accent-color);text-align:center;padding:2.5rem 4rem;animation:.4s ease-out fadeInUp;box-shadow:0 0 40px #00000080}.drag-message span{margin-bottom:1rem;font-size:3.5rem;display:block}.drag-message p{color:var(--accent-color);text-transform:uppercase;margin:0;font-family:Silkscreen,cursive;font-size:1.2rem}
