*{margin:0;padding:0;box-sizing:border-box}body,html{width:100%;height:100%;overflow:hidden;font-family:Arial,sans-serif;background-color:#000;color:var(--color-ui-text)}#app{width:100%;height:100%;position:relative}canvas{position:fixed;top:0;left:0;width:100%;height:100%;z-index:0}#info{position:absolute;top:20px;left:20px;background-color:var(--color-ui-background);border-radius:5px;z-index:1;width:280px;transition:all var(--timing-ui-transition) ease;overflow:hidden;box-shadow:0 2px 10px #0000004d}.info-header{display:flex;justify-content:space-between;align-items:center;padding:15px 15px 5px;background-color:var(--color-ui-background-darker)}.info-content{padding:0 15px 15px;transition:max-height var(--timing-ui-transition) ease,opacity .2s ease;max-height:800px;opacity:1}#info.collapsed{height:60px;background-color:#00000080}#info.collapsed .info-header{border-bottom:none;padding-bottom:15px}#info.collapsed .info-content{max-height:0;opacity:0;overflow:hidden;pointer-events:none;padding:0}#info.collapsed .toggle-panel .collapse-icon{transform:rotate(180deg)}#info,.info-header,.info-content,.collapse-icon{transition:all var(--timing-ui-transition) ease}.toggle-panel{background:none;border:none;color:var(--color-ui-text-secondary);cursor:pointer;padding:5px;font-size:.9rem;display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;transition:all .2s ease}.toggle-panel:hover{background-color:#ffffff1a;color:var(--color-ui-text)}.collapse-icon{display:inline-block;transition:transform var(--timing-ui-transition) ease}h1{font-size:1.5rem;margin-bottom:10px;transition:margin var(--timing-ui-transition) ease}#info.collapsed h1{margin-bottom:0}p{font-size:.9rem;opacity:.8;margin-bottom:15px}.section-label{font-size:.8rem;text-transform:uppercase;color:var(--color-ui-text-secondary);margin-bottom:8px;letter-spacing:.05em}.filter-controls{margin-bottom:15px}.select-container{margin-bottom:12px;position:relative}.search-container{position:relative;margin-bottom:12px}input[type=text]{width:100%;padding:6px 30px 6px 10px;background-color:var(--color-ui-background-lighter);border:1px solid var(--color-ui-button-border);border-radius:4px;color:var(--color-ui-text);font-size:.8rem}input[type=text]::placeholder{color:var(--color-ui-text-muted)}input[type=text]:focus{outline:none;border-color:var(--color-ui-button-active-border);background-color:#323232b3}.search-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--color-ui-text-muted);font-size:1rem;cursor:pointer;padding:0;width:16px;height:16px;line-height:16px;text-align:center}.search-clear:hover{color:var(--color-ui-text)}select{width:100%;padding:6px 10px;background-color:var(--color-ui-background-lighter);border:1px solid var(--color-ui-button-border);border-radius:4px;color:var(--color-ui-text);font-size:.8rem;appearance:none;-webkit-appearance:none;-moz-appearance:none;cursor:pointer}.select-container:after{content:"▼";font-size:.6rem;color:var(--color-ui-text-secondary);position:absolute;right:10px;top:50%;transform:translateY(-50%);pointer-events:none}select:focus{outline:none;border-color:var(--color-ui-button-active-border)}select option{background-color:#141414e6}.button-group{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.controls{display:flex;flex-direction:column;gap:8px;margin-bottom:15px}.toggle-btn{background-color:var(--color-ui-background-lighter);border:1px solid var(--color-ui-button-border);color:var(--color-ui-text-secondary);padding:6px 10px;border-radius:4px;cursor:pointer;transition:all .2s ease;font-size:.8rem;text-align:left}.toggle-btn:hover{background-color:var(--color-ui-button-hover);border-color:#ffffff4d}.toggle-btn.active{background-color:var(--color-ui-button-active);border-color:var(--color-ui-button-active-border);color:#fff}button{background-color:#323232b3;border:1px solid rgba(255,255,255,.3);color:var(--color-ui-text);padding:8px 12px;border-radius:4px;cursor:pointer;transition:all .2s ease;font-size:.85rem}button:hover{background-color:var(--color-ui-button-hover);border-color:#ffffff80}button.active{background-color:var(--color-ui-button-active);border-color:var(--color-ui-button-active-border)}.stats{margin-top:10px;padding-top:10px;border-top:1px solid rgba(255,255,255,.1)}.stats p{font-size:.8rem;margin-bottom:0}#tooltip{position:absolute;display:block;background-color:var(--color-tooltip-background);border:1px solid var(--color-tooltip-border);border-radius:8px;padding:15px;box-shadow:0 6px 16px #0009;max-width:320px;backdrop-filter:blur(8px);transition:opacity var(--timing-marker-hover) ease,transform var(--timing-marker-hover) ease;pointer-events:none;z-index:10;transform:none;font-size:.9rem}#tooltip.hidden{opacity:0;visibility:hidden}#tooltip-title{margin-bottom:12px;font-size:1.2rem;color:var(--color-tooltip-title);border-bottom:1px solid rgba(255,255,255,.2);padding-bottom:8px;font-weight:700}#tooltip-content p{margin-bottom:6px;font-size:.9rem;line-height:1.4}#tooltip .label{color:var(--color-ui-text-secondary);font-weight:700;margin-right:5px;display:inline-block;min-width:90px}#tooltip-type{font-weight:600}#tooltip-company{color:var(--color-tooltip-company);font-weight:600}#tooltip-founded{color:var(--color-tooltip-founded)}#tooltip-energy{color:var(--color-tooltip-energy)}#tooltip-node{color:var(--color-tooltip-node)}#tooltip-capacity{color:var(--color-tooltip-capacity)}#tooltip-description{display:block;margin-top:8px;padding-top:8px;border-top:1px dashed rgba(255,255,255,.15);color:var(--color-tooltip-description);font-style:italic}.datacenter-field,.semiconductor-field{display:none}[data-type=datacenter] .datacenter-field,[data-type=semiconductor] .semiconductor-field{display:block}
