.storage-wrapper{position:fixed;top:0;left:0;width:100vw;height:100dvh;background:var(--color-bg-app);z-index:var(--z-interface);display:flex;flex-direction:column;overflow:hidden}.storage-content{flex:1;display:flex;overflow:hidden;position:relative}.storage-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg) var(--spacing-xxl);background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--glass-border);box-shadow:0 2px 8px var(--glass-shadow);flex-shrink:0;gap:var(--spacing-md);z-index:var(--z-docks)}.storage-header-center,.storage-header-left,.storage-header-right{display:flex;align-items:center;gap:var(--spacing-md)}.storage-header-left{flex:1}.storage-header-center{gap:var(--spacing-xl)}.storage-header-right{gap:var(--spacing-sm)}.mode-selector{display:flex;gap:var(--spacing-sm);background:var(--color-bg-panel);padding:var(--spacing-xs);border-radius:var(--radius-pill);border:1px solid var(--color-border-light)}.mode-btn{background:0 0;border:none;padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-pill);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;color:var(--color-text-muted);transition:all var(--transition-base);display:flex;align-items:center;gap:var(--spacing-xs);white-space:nowrap}.mode-btn:hover{background:rgba(0,0,0,.05);color:var(--color-text-dark)}.mode-btn.active{background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));color:var(--color-text-light);box-shadow:0 2px 8px rgba(0,0,0,.15)}.mode-btn:disabled{opacity:.5;cursor:not-allowed!important;pointer-events:none}.storage-timer{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);background:var(--color-bg-panel);padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-pill);border:1px solid var(--color-border-light);font-weight:700;font-size:var(--font-size-md);color:var(--color-text-dark);min-width:120px}.storage-timer.warning{color:var(--color-warning);border-color:var(--color-warning);animation:1s infinite pulse}.storage-timer.danger{color:var(--color-danger);border-color:var(--color-danger);animation:.5s infinite pulse}.storage-stats{display:flex;gap:var(--spacing-md);align-items:center}.stat-display{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-md);background:var(--color-bg-panel);border:1px solid var(--color-border-light);border-radius:var(--radius-pill);font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-muted)}.stat-display i{color:var(--color-primary)}.stat-display .stat-value{color:var(--color-text-dark);font-weight:700}.storage-header-right .menu-btn{width:40px;height:40px;border:none;background:var(--color-bg-panel);color:var(--color-text-dark);border-radius:var(--radius-circle);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-base);font-size:16px;box-shadow:0 2px 8px rgba(0,0,0,.05)}.storage-header-right .menu-btn:hover{background:var(--color-primary);color:#fff;transform:scale(1.05)}.storage-header-right .menu-btn.active{background:var(--color-primary);color:#fff}.storage-canvas{flex:1;position:relative;overflow:hidden;transition:flex var(--transition-slow);z-index:1}.storage-background-canvas{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0}.storage-canvas svg{width:100%;height:100%;position:relative;z-index:1}.storage-root-circle{fill:var(--color-primary)!important;stroke:var(--color-bg-app)!important;stroke-width:4px;transition:fill var(--transition-base),stroke var(--transition-base)}.storage-root-text{fill:var(--color-text-on-primary)!important;font-weight:700;font-size:var(--font-size-md);pointer-events:none;transition:fill var(--transition-base)}.storage-control-panel{width:320px;height:100vh;background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-left:1px solid var(--glass-border);box-shadow:-2px 0 12px var(--glass-shadow);display:flex;flex-direction:column;overflow-y:auto;flex-shrink:0;transition:width var(--transition-slow),transform var(--transition-slow);z-index:var(--z-session-header)}.storage-control-panel.collapsed{width:0;min-width:0;transform:translateX(100%);pointer-events:none;overflow:hidden}.control-section{padding:var(--spacing-lg);border-bottom:1px solid var(--color-border-light)}.control-section h3{font-size:var(--font-size-sm);font-weight:700;color:var(--color-primary-dark);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--spacing-md)}.difficulty-selector{display:flex;flex-direction:column;gap:var(--spacing-sm)}.difficulty-option{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md);background:var(--color-bg-panel);border:2px solid var(--color-border-light);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base)}.difficulty-option:hover{border-color:var(--color-primary);transform:translateX(4px)}.difficulty-option.active{border-color:var(--color-primary);background:rgba(59,130,246,.05)}.difficulty-option.active .difficulty-icon{color:var(--color-primary)}.difficulty-option.disabled{opacity:.5;cursor:not-allowed!important;pointer-events:none;border-color:var(--color-border)!important;background:var(--color-bg-panel)!important}.difficulty-info{display:flex;flex-direction:column;gap:2px}.difficulty-name{font-weight:700;font-size:var(--font-size-sm);color:var(--color-text-dark)}.difficulty-desc{font-size:var(--font-size-xs);color:var(--color-text-muted)}.difficulty-icon{font-size:1.2rem}.action-buttons{display:flex;flex-direction:column;gap:var(--spacing-sm);padding:var(--spacing-lg)}.storage-action-btn{width:100%;padding:var(--spacing-md);border:none;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:700;cursor:pointer;transition:all var(--transition-base);display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm)}.storage-action-btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.storage-action-btn.primary{background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));color:var(--color-text-light);box-shadow:0 4px 12px rgba(0,0,0,.15)}.storage-action-btn.primary:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(0,0,0,.2)}.storage-action-btn.secondary{background:var(--color-bg-panel);color:var(--color-text-dark);border:1px solid var(--color-border)}.storage-action-btn.secondary:hover{background:var(--color-border-light)}.background-animation-toggles{display:flex;flex-direction:column;gap:var(--spacing-sm)}.animation-toggle-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) 0;border-bottom:1px solid var(--color-border-light)}.animation-toggle-item:last-child{border-bottom:none}.animation-toggle-label{font-size:var(--font-size-sm);color:var(--color-text-dark);font-weight:600;display:flex;align-items:center;gap:var(--spacing-xs)}.animation-toggle-label i{color:var(--color-primary);font-size:1rem}.settings-group{display:none!important;flex-direction:column;gap:var(--spacing-md)}.setting-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) 0}.setting-label{font-size:var(--font-size-sm);color:var(--color-text-dark);font-weight:600}.setting-toggle{position:relative;width:44px;height:24px;background:var(--color-border);border-radius:var(--radius-pill);cursor:pointer;transition:background var(--transition-base)}.setting-toggle.active{background:var(--color-primary)}.setting-toggle::after{content:'';position:absolute;top:2px;left:2px;width:20px;height:20px;background:#fff;border-radius:50%;transition:transform var(--transition-base)}.setting-toggle.active::after{transform:translateX(20px)}.scoreboard-section{background:linear-gradient(135deg,rgba(59,130,246,.1),rgba(16,185,129,.1));border-bottom:1px solid var(--color-border);padding:var(--spacing-lg);position:relative;overflow:hidden}.scoreboard-wrapper{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-xs);position:relative;z-index:2}.score-header{font-size:var(--font-size-xs);font-weight:700;letter-spacing:1.5px;color:var(--color-text-muted);text-transform:uppercase}.score-main{font-size:3.5rem;font-weight:800;line-height:1;background:linear-gradient(135deg,var(--color-primary-dark),var(--color-primary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;filter:drop-shadow(0 2px 4px rgba(59, 130, 246, .2));transition:transform .2s cubic-bezier(.175, .885, .32, 1.275)}.score-main.pop{transform:scale(1.2)}.score-main.shake{animation:.5s cubic-bezier(.36,.07,.19,.97) both shake;color:var(--color-danger)}.score-details{display:flex;gap:var(--spacing-xl);margin-top:var(--spacing-xs);width:100%;justify-content:center}.score-stat{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xs) var(--spacing-md);background:var(--glass-bg);border-radius:var(--radius-md);border:1px solid var(--glass-border);min-width:80px;transition:.3s}.score-stat i{font-size:1.2rem;margin-bottom:4px}.score-stat span{font-weight:800;font-size:1.1rem;color:var(--color-text-dark)}.score-stat .label{font-size:.65rem;font-weight:600;text-transform:uppercase;color:var(--color-text-muted);margin-top:2px}.score-stat.streak i{color:#f59e0b}.score-stat.streak.active{background:rgba(245,158,11,.1);border-color:#f59e0b;animation:1.5s infinite streakPulse}.score-stat.multiplier i{color:#8b5cf6}.score-stat.multiplier.active{background:rgba(139,92,246,.1);border-color:#8b5cf6}.storage-progress{display:flex;flex-direction:column;gap:var(--spacing-sm)}.progress-bar-container{width:100%;height:8px;background:var(--color-border-light);border-radius:var(--radius-pill);overflow:hidden}.progress-bar-fill{height:100%;background:linear-gradient(90deg,var(--color-primary),var(--color-secondary));border-radius:var(--radius-pill);transition:width .3s}.progress-text{font-size:var(--font-size-xs);color:var(--color-text-muted);text-align:center}.node-group.hidden-content{animation:2s infinite hintPulse}.node-group.hidden-content text{fill:var(--color-text-muted)!important;opacity:.5;letter-spacing:2px}.node-group.hidden-content circle,.node-group.hidden-content path{stroke-dasharray:4 4;opacity:.4}.node-group.hidden-content rect{fill-opacity:0.3!important;pointer-events:none!important}.storage-elaboration-bubble{pointer-events:auto!important;cursor:pointer;opacity:.95;transition:transform .2s,opacity .2s;fill:var(--color-bg-panel)}.builder-locked{opacity:.3!important;filter:grayscale(.8);pointer-events:none}.builder-locked circle,.builder-locked path{stroke-dasharray:4 4}.node-group.builder-locked rect{fill-opacity:0.2!important;pointer-events:none!important}.builder-interactive{opacity:1!important;cursor:pointer!important}.builder-interactive circle,.builder-interactive path{stroke:var(--color-primary)!important;stroke-width:3px!important;fill:var(--color-primary)!important;fill-opacity:0.05!important;animation:2s infinite builderPulseGlow,1s linear infinite marchingAnts;stroke-dasharray:8 4}.builder-interactive rect{fill:var(--color-primary)!important;fill-opacity:0.1!important;stroke:var(--color-primary)!important;stroke-opacity:0.3!important}.node-group.builder-interactive .storage-elaboration-bubble{cursor:pointer!important;pointer-events:auto!important}.node-group.builder-interactive:hover .storage-elaboration-bubble{stroke:var(--color-primary);stroke-width:2px}.builder-unlocked{opacity:1!important;filter:none!important}.builder-unlocked circle,.builder-unlocked path{stroke:var(--color-success)!important;stroke-width:2.5px!important}.fillgap-interactive{opacity:1!important;cursor:pointer!important}.fillgap-interactive circle,.fillgap-interactive path{stroke:var(--color-primary)!important;stroke-width:3px!important;fill:var(--color-primary)!important;fill-opacity:0.05!important;animation:2s infinite fillGapPulseGlow,1s linear infinite marchingAnts;stroke-dasharray:8 4}.fillgap-interactive rect{fill:var(--color-primary)!important;fill-opacity:0.1!important;stroke:var(--color-primary)!important;stroke-opacity:0.3!important}.node-group.fillgap-interactive .storage-elaboration-bubble{cursor:pointer!important;pointer-events:auto!important}.node-group.fillgap-interactive:hover .storage-elaboration-bubble{stroke:var(--color-primary);stroke-width:2px}.node-group.ghost-mode text{fill:var(--color-text-muted)!important;opacity:.3}.node-group.ghost-mode-active text{fill:var(--color-text-muted)!important;opacity:.6;letter-spacing:2px}.node-group.ghost-mode-active rect{fill-opacity:0.5!important}.ghost-interactive{opacity:1!important;cursor:pointer!important}.ghost-interactive circle,.ghost-interactive path{stroke:var(--color-primary)!important;stroke-width:3px!important;fill:var(--color-primary)!important;fill-opacity:0.05!important;animation:2s infinite ghostPulseGlow,1s linear infinite marchingAnts;stroke-dasharray:8 4}.ghost-interactive rect{fill:var(--color-primary)!important;fill-opacity:0.1!important;stroke:var(--color-primary)!important;stroke-opacity:0.3!important}.node-group.ghost-interactive .storage-elaboration-bubble{cursor:pointer!important;pointer-events:auto!important}.node-group.ghost-interactive:hover .storage-elaboration-bubble{stroke:var(--color-primary);stroke-width:2px}.node-group.ghost-revealed text{animation:.6s forwards ghostRevealText}.node-group.ghost-revealed path{animation:.6s forwards ghostRevealPath}.storage-input-overlay{position:fixed;background:0 0;backdrop-filter:none;-webkit-backdrop-filter:none;border:2px solid transparent;border-radius:var(--radius-md);padding:var(--spacing-md);box-shadow:none;z-index:var(--z-popup);min-width:200px;max-width:300px;transform:translate(-50%,-50%);transition:border-color .2s,transform .1s}.storage-input-overlay input{width:100%;padding:var(--spacing-sm);border:none;background:0 0;font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-dark);outline:0;text-shadow:0 1px 2px rgba(255,255,255,.9)}.storage-input-overlay input::placeholder{color:var(--color-text-muted);opacity:.8}.storage-input-overlay input:focus{outline:0;border-bottom:2px solid var(--color-primary)}.storage-results-modal{position:fixed;top:0;left:0;width:100vw;height:100vh;background:rgba(15,23,42,.65);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:calc(var(--z-popup) + 100);animation:.3s fadeIn}.results-content{background:var(--color-bg-panel);padding:var(--spacing-xxl);border-radius:var(--radius-lg);box-shadow:0 20px 60px rgba(0,0,0,.4);max-width:500px;width:90%;text-align:center;position:relative;z-index:calc(var(--z-popup) + 101);border:1px solid var(--color-border)}.results-score{font-size:4rem;font-weight:800;background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:var(--spacing-md)}.results-message{font-size:var(--font-size-lg);color:var(--color-text-dark);font-weight:700;margin-bottom:var(--spacing-lg)}.results-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-md);margin:var(--spacing-xl) 0}.result-stat{background:var(--color-bg-app);padding:var(--spacing-md);border-radius:var(--radius-md);border:1px solid var(--color-border-light)}.result-stat-value{font-size:var(--font-size-xl);font-weight:700;color:var(--color-primary)}.result-stat-label{font-size:var(--font-size-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px;margin-top:var(--spacing-xs)}.results-actions{display:flex;gap:var(--spacing-sm);margin-top:var(--spacing-xl)}.results-actions button{flex:1}.storage-custom-modal{position:fixed;top:0;left:0;width:100vw;height:100vh;background:var(--popup-backdrop);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:calc(var(--z-popup) + 1000);animation:.2s fadeIn}.storage-modal-content{background:var(--popup-bg);color:var(--popup-text);padding:var(--spacing-xl);border-radius:var(--radius-lg);box-shadow:0 20px 60px rgba(0,0,0,.4);max-width:400px;width:90%;text-align:center;border:1px solid var(--popup-border);display:flex;flex-direction:column;gap:var(--spacing-md)}.storage-modal-title{font-size:var(--font-size-lg);font-weight:700;color:var(--popup-text)}.storage-modal-message{font-size:var(--font-size-md);color:var(--popup-text);opacity:.8;line-height:1.5}.storage-modal-actions{display:flex;gap:var(--spacing-sm);margin-top:var(--spacing-sm);justify-content:center}.storage-modal-btn{padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-md);font-weight:600;cursor:pointer;border:none;transition:all var(--transition-base);min-width:100px}.storage-modal-btn.primary{background:var(--color-primary);color:#fff}.storage-modal-btn.primary:hover{background:var(--color-primary-dark);transform:translateY(-1px)}.storage-modal-btn.secondary{background:0 0;color:var(--popup-text);border:1px solid var(--popup-border)}.storage-modal-btn.secondary:hover{background:rgba(0,0,0,.1);border-color:var(--popup-text)}.storage-modal-btn.danger{background:var(--color-danger);color:#fff}.storage-modal-btn.danger:hover{background:#dc2626}.blueprint-text-anim{fill:var(--color-primary);font-weight:700;letter-spacing:1.5px;animation:2.5s ease-out forwards blueprintFlash}.node-group.ghost-interactive[data-flicker=true] text{fill:var(--color-text-dark)!important;opacity:1!important;animation:.2s linear forwards ectoFlicker}.node-group[data-sonar=true]{opacity:1!important;filter:none!important;cursor:pointer}.node-group[data-sonar=true] circle,.node-group[data-sonar=true] path{stroke:var(--color-primary)!important;stroke-width:3px!important;stroke-opacity:1!important;stroke-dasharray:none!important;fill:rgba(59,130,246,0.1)!important;animation:1.5s ease-out infinite sonarWave!important}.node-group[data-sonar=true] text{opacity:.1}.scaffold-text-anim{fill:var(--color-primary);font-weight:700;letter-spacing:2px;animation:3s ease-out forwards scaffoldFade}