@font-face{font-family:Geist Mono;src:url(/GeistMonoVF.ttf) format("truetype");font-weight:100 900;font-display:swap}*{margin:0;padding:0;box-sizing:border-box}body{overflow:hidden;background:#000;font-family:Geist Mono,monospace;color:#fff;font-size:14px}#canvas{position:fixed;top:0;left:0;width:100%;height:100%}#loading{position:fixed;top:0;left:0;width:100%;height:100%;background:#000;display:flex;align-items:center;justify-content:center;z-index:1000;transition:opacity 1s ease}#loading.fade-out{opacity:0;pointer-events:none}.spinner{width:40px;height:40px;border:3px solid rgba(153,69,255,.15);border-top-color:#14f195;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}#overlay{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:10;opacity:0;transition:opacity 1.5s ease .5s}#overlay.visible{opacity:1}.header{position:absolute;top:32px;left:40px}.logo{display:flex;align-items:center;gap:14px}.logo-icon{flex-shrink:0}h1{font-size:14px;font-weight:84;letter-spacing:-.5px;background:linear-gradient(135deg,#fff 30%,#fff9);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.subtitle{font-size:14px;color:#ffffff59;font-weight:84;letter-spacing:3px;text-transform:uppercase;margin-top:2px;transition:opacity .4s ease}.subtitle.fading{opacity:0}.view-toggle{position:absolute;top:32px;right:40px;left:auto;transform:none;display:flex;gap:2px;background:#ffffff0f;border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:3px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);pointer-events:auto}.toggle-slider{position:absolute;top:3px;left:3px;height:calc(100% - 6px);border-radius:6px;background:linear-gradient(135deg,#9945ff66,#14f1954d);box-shadow:0 2px 12px #9945ff33;transition:transform .4s cubic-bezier(.4,0,.2,1),width .4s cubic-bezier(.4,0,.2,1);z-index:0;pointer-events:none}.toggle-btn{position:relative;z-index:1;background:transparent;border:none;color:#ffffff59;font-family:Geist Mono,monospace;font-size:8px;font-weight:84;letter-spacing:2.5px;text-transform:uppercase;padding:6px 12px;border-radius:6px;cursor:pointer;transition:color .4s cubic-bezier(.4,0,.2,1)}.toggle-btn:hover{color:#fff9}.toggle-btn.active{color:#fff}.hidden{display:none!important}.desc-content{grid-row:1;grid-column:1;transition:opacity .5s cubic-bezier(.4,0,.2,1)}.desc-content.view-hidden{opacity:0;pointer-events:none}.stats-group{grid-row:1;grid-column:1;transition:opacity .5s cubic-bezier(.4,0,.2,1)}.stats-group.view-hidden{opacity:0;pointer-events:none}.description{position:absolute;bottom:40px;left:40px;max-width:420px;pointer-events:auto}.stats{display:grid;margin-top:14px}.stats-group{display:flex;gap:24px}.stat{text-align:left}.stat-value{display:block;font-size:14px;font-weight:84;font-variant-numeric:tabular-nums;background:linear-gradient(135deg,#14f195,#9945ff);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.stat-label{font-size:10px;color:#ffffff4d;text-transform:uppercase;letter-spacing:1.5px;font-weight:84;margin-top:2px}.desc-header{display:flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none;margin-bottom:8px}.desc-header span{font-size:14px;color:#ffffff40;font-weight:84;letter-spacing:1.5px;text-transform:uppercase}.desc-toggle-icon{width:16px;height:16px;display:flex;align-items:center;justify-content:center;color:#ffffff40;font-size:14px;transition:transform .3s ease}.description.collapsed .desc-toggle-icon{transform:rotate(-90deg)}.desc-body{overflow:hidden;max-height:200px;transition:max-height .35s ease,opacity .3s ease;opacity:1}.desc-body-inner{display:grid}.description.collapsed .desc-body{max-height:0;opacity:0}.description p{font-size:14px;line-height:1.7;color:#fff6;font-weight:84}.description strong{color:#ffffffb3;font-weight:84}.live-indicator{position:absolute;bottom:40px;right:40px;display:flex;align-items:center;gap:8px;font-size:12px;letter-spacing:2px;color:#ffffff4d;font-weight:84}.live-dot{width:6px;height:6px;background:#14f195;border-radius:50%;animation:pulse-dot 2s ease-in-out infinite}@keyframes pulse-dot{0%,to{opacity:1;box-shadow:0 0 4px #14f195}50%{opacity:.4;box-shadow:0 0 8px #14f195}}.tooltip{position:fixed;background:#080818eb;border:1px solid rgba(153,69,255,.25);border-radius:8px;padding:10px 14px;pointer-events:none;opacity:0;transition:opacity .15s ease;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);z-index:100;min-width:140px}.tooltip.visible{opacity:1}.tooltip-city{font-weight:84;font-size:14px;color:#14f195;margin-bottom:2px}.tooltip-country{color:#ffffff73;font-size:14px}.tooltip-stake{color:#ffffff8c;font-size:14px;margin-top:6px;padding-top:6px;border-top:1px solid rgba(255,255,255,.08)}.tooltip-protocol-name{font-weight:84;font-size:14px;color:#14f195;margin-bottom:2px}.tooltip-protocol-category{color:#ffffff73;font-size:14px}.tooltip-protocol-tps{color:#ffffff8c;font-size:14px;margin-top:6px;padding-top:6px;border-top:1px solid rgba(255,255,255,.08)}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(0deg,#d03b31,#669f73,#0a6dce 4px);mix-blend-mode:overlay;opacity:.35;pointer-events:none;z-index:5}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(90deg,#d03b31 1px,#669f73,#0a6dce 3px);mix-blend-mode:overlay;opacity:.35;pointer-events:none;z-index:5}.crt-vignette{position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at center,transparent 55%,rgba(0,0,0,.5) 100%);pointer-events:none;z-index:5}#noise{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:5;opacity:.03}@media(max-width:768px){.header{left:20px;top:20px}h1{font-size:14px}.view-toggle{right:20px;top:20px}.toggle-btn{font-size:12px;padding:7px 14px;letter-spacing:2px}.description{left:20px;right:20px;bottom:20px;max-width:none}.stats-group{gap:16px}.stat-value{font-size:14px}.stat-label{font-size:9px}.live-indicator{display:none}}@media(max-width:480px){.stats-group{flex-direction:column;gap:6px}.stat{text-align:center}}
