:root{--bg-deep:#050a14;--bg-space:#0a1628;--bg-panel:#0a1628d9;--bg-glass:#0f1e37a6;--bg-glass-hover:#142846bf;--bg-card:#0c1930cc;--accent-green:#22c55e;--accent-green-glow:#22c55e4d;--accent-teal:#14b8a6;--accent-teal-glow:#14b8a64d;--accent-blue:#3b82f6;--accent-blue-glow:#3b82f64d;--accent-ocean:#06b6d4;--accent-amber:#f59e0b;--accent-red:#ef4444;--accent-purple:#a855f7;--text-primary:#f0f4f8;--text-secondary:#94a3b8;--text-muted:#64748b;--border-subtle:#94a3b81f;--border-glow:#22c55e40;--font-display:"Space Grotesk", system-ui, sans-serif;--font-body:"Inter", system-ui, sans-serif;--header-height:64px;--chat-width:420px;--dashboard-height:100px;--ease-out-expo:cubic-bezier(.16, 1, .3, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;font-family:var(--font-body);background:var(--bg-deep);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden}#loading-screen{z-index:10000;background:var(--bg-deep);transition:opacity .8s var(--ease-out-expo), visibility .8s;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}#loading-screen.fade-out{opacity:0;visibility:hidden}.loader-content{flex-direction:column;align-items:center;gap:24px;display:flex}.earth-loader{justify-content:center;align-items:center;width:120px;height:120px;display:flex;position:relative}.earth-emoji{filter:drop-shadow(0 0 30px #22c55e66);font-size:64px;animation:3s ease-in-out infinite float}.particle-ring{border:2px solid #0000;border-top-color:var(--accent-green);border-right-color:var(--accent-teal);border-radius:50%;width:100%;height:100%;animation:1.5s linear infinite spin;position:absolute}.particle-ring:after{content:"";border:2px solid #0000;border-bottom-color:var(--accent-blue);border-left-color:var(--accent-ocean);border-radius:50%;animation:2s linear infinite reverse spin;position:absolute;inset:6px}.loader-title{font-family:var(--font-display);background:linear-gradient(135deg, var(--accent-green), var(--accent-teal), var(--accent-blue));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:32px;font-weight:700}.loader-subtitle{color:var(--text-secondary);letter-spacing:.5px;font-size:14px}.progress-bar{background:var(--border-subtle);border-radius:4px;width:200px;height:3px;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--accent-green), var(--accent-teal));width:0%;height:100%;transition:width .3s var(--ease-out-expo);border-radius:4px}#main-header{height:var(--header-height);z-index:100;-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--border-subtle);background:linear-gradient(#050a14f2 0%,#050a1499 100%);justify-content:space-between;align-items:center;padding:0 24px;display:flex;position:fixed;top:0;left:0;right:0}.header-left{align-items:center;gap:10px;display:flex}.logo-icon{filter:drop-shadow(0 0 12px #22c55e80);font-size:28px}.logo-text{font-family:var(--font-display);background:linear-gradient(135deg, var(--accent-green) 0%, var(--accent-teal) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:22px;font-weight:700}.logo-tagline{color:var(--text-muted);letter-spacing:.3px;font-size:11px;font-weight:400;display:none}@media (width>=900px){.logo-tagline{border-left:1px solid var(--border-subtle);margin-left:4px;padding-left:12px;display:inline}}.header-nav{background:var(--bg-glass);border:1px solid var(--border-subtle);border-radius:12px;gap:4px;padding:4px;display:flex}.nav-btn{color:var(--text-secondary);font-family:var(--font-body);cursor:pointer;transition:all .3s var(--ease-out-expo);white-space:nowrap;background:0 0;border:none;border-radius:8px;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:500;display:flex}.nav-btn:hover{color:var(--text-primary);background:var(--bg-glass-hover)}.nav-btn.active{color:var(--text-primary);background:#22c55e26;box-shadow:0 0 12px #22c55e26}.nav-btn.active[data-layer=emissions]{background:#ef444426;box-shadow:0 0 12px #ef444426}.nav-btn.active[data-layer=deforestation]{background:#22c55e26;box-shadow:0 0 12px #22c55e26}.nav-btn.active[data-layer=ocean]{background:#06b6d426;box-shadow:0 0 12px #06b6d426}.nav-btn.active[data-layer=biodiversity]{background:#a855f726;box-shadow:0 0 12px #a855f726}.nav-icon{font-size:16px}.nav-label{display:none}@media (width>=768px){.nav-label{display:inline}}.header-right{align-items:center;display:flex}.ai-toggle-btn{border:1px solid var(--border-glow);color:var(--accent-green);font-family:var(--font-body);cursor:pointer;transition:all .3s var(--ease-out-expo);background:linear-gradient(135deg,#22c55e1a,#14b8a61a);border-radius:10px;align-items:center;gap:8px;padding:10px 18px;font-size:13px;font-weight:600;display:flex;position:relative;overflow:hidden}.ai-toggle-btn:before{content:"";background:linear-gradient(135deg, var(--accent-green), var(--accent-teal));opacity:0;transition:opacity .3s;position:absolute;inset:0}.ai-toggle-btn:hover{border-color:var(--accent-green);transform:translateY(-1px);box-shadow:0 4px 20px #22c55e40}.ai-toggle-btn:hover:before{opacity:.15}.ai-toggle-btn.active{background:linear-gradient(135deg, var(--accent-green), var(--accent-teal));color:#fff;border-color:#0000;box-shadow:0 4px 25px #22c55e59}.ai-icon{font-size:16px;animation:2s ease-in-out infinite sparkle}#globe-container{z-index:1;position:fixed;inset:0}#globe-container canvas{width:100%!important;height:100%!important}#region-tooltip{z-index:200;background:var(--bg-panel);-webkit-backdrop-filter:blur(24px);border:1px solid var(--border-subtle);pointer-events:auto;opacity:0;min-width:260px;max-width:320px;transition:all .3s var(--ease-out-expo);border-radius:16px;padding:18px;position:fixed;transform:translateY(10px);box-shadow:0 8px 40px #0006}#region-tooltip.visible{opacity:1;transform:translateY(0)}#region-tooltip.hidden{display:none}.tooltip-header{border-bottom:1px solid var(--border-subtle);align-items:center;gap:10px;margin-bottom:12px;padding-bottom:10px;display:flex}.tooltip-flag{font-size:28px}.tooltip-header h3{font-family:var(--font-display);font-size:16px;font-weight:600}.tooltip-stats{flex-direction:column;gap:8px;margin-bottom:14px;display:flex}.tooltip-stat-row{justify-content:space-between;align-items:center;font-size:13px;display:flex}.tooltip-stat-label{color:var(--text-secondary)}.tooltip-stat-value{font-weight:600;font-family:var(--font-display)}.tooltip-stat-value.high{color:var(--accent-red)}.tooltip-stat-value.medium{color:var(--accent-amber)}.tooltip-stat-value.low{color:var(--accent-green)}.tooltip-ask-btn{border:1px solid var(--border-glow);width:100%;color:var(--accent-green);font-family:var(--font-body);cursor:pointer;transition:all .3s var(--ease-out-expo);background:linear-gradient(135deg,#22c55e1a,#14b8a61a);border-radius:10px;padding:10px;font-size:12px;font-weight:600}.tooltip-ask-btn:hover{background:linear-gradient(135deg,#22c55e33,#14b8a633);transform:translateY(-1px);box-shadow:0 4px 16px #22c55e33}#dashboard-panel{z-index:50;background:var(--bg-panel);-webkit-backdrop-filter:blur(24px);border:1px solid var(--border-subtle);border-radius:18px;gap:12px;padding:12px;display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 8px 40px #0006}.stat-card{background:var(--bg-card);border:1px solid var(--border-subtle);min-width:180px;transition:all .3s var(--ease-out-expo);cursor:default;border-radius:12px;align-items:center;gap:12px;padding:10px 16px;display:flex}.stat-card:hover{border-color:var(--border-glow);transform:translateY(-2px);box-shadow:0 4px 16px #22c55e1a}.stat-icon{flex-shrink:0;font-size:24px}.stat-info{flex-direction:column;gap:1px;display:flex}.stat-value{font-family:var(--font-display);color:var(--text-primary);font-size:20px;font-weight:700;line-height:1.2}.stat-unit{color:var(--text-muted);font-size:11px;font-weight:500}.stat-label{color:var(--text-secondary);font-size:11px;font-weight:400}.stat-trend{font-size:11px;font-weight:600;font-family:var(--font-display);white-space:nowrap;border-radius:6px;flex-shrink:0;padding:3px 8px}.stat-trend.up{color:var(--accent-red);background:#ef44441f}.stat-trend.down{color:var(--accent-green);background:#22c55e1f}#chat-panel{top:var(--header-height);width:var(--chat-width);z-index:90;background:var(--bg-panel);-webkit-backdrop-filter:blur(24px);border-left:1px solid var(--border-subtle);transition:transform .4s var(--ease-out-expo);flex-direction:column;display:flex;position:fixed;bottom:0;right:0;transform:translate(100%);box-shadow:-8px 0 40px #0000004d}#chat-panel.visible{transform:translate(0)}#chat-panel.hidden{transform:translate(100%)}.chat-header{border-bottom:1px solid var(--border-subtle);flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.chat-title{align-items:center;gap:8px;display:flex}.chat-title h2{font-family:var(--font-display);background:linear-gradient(135deg, var(--accent-green), var(--accent-teal));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:16px;font-weight:600}.ai-sparkle{font-size:18px;animation:2s ease-in-out infinite sparkle}.chat-close-btn{background:var(--bg-glass);width:32px;height:32px;color:var(--text-secondary);cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;font-size:14px;transition:all .2s;display:flex}.chat-close-btn:hover{background:var(--bg-glass-hover);color:var(--text-primary)}.chat-messages{scroll-behavior:smooth;flex-direction:column;flex:1;gap:16px;padding:16px;display:flex;overflow-y:auto}.chat-messages::-webkit-scrollbar{width:4px}.chat-messages::-webkit-scrollbar-thumb{background:var(--border-subtle);border-radius:4px}.chat-message{animation:messageIn .4s var(--ease-out-expo);gap:10px;display:flex}.chat-message.user{flex-direction:row-reverse}.message-avatar{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:18px;display:flex}.chat-message.user .message-avatar{background:linear-gradient(135deg, var(--accent-blue), var(--accent-purple));border:none}.message-content{max-width:85%;color:var(--text-primary);border-radius:14px;padding:12px 16px;font-size:13.5px;line-height:1.6}.chat-message.ai .message-content{background:var(--bg-card);border:1px solid var(--border-subtle);border-top-left-radius:4px}.chat-message.user .message-content{background:linear-gradient(135deg,#3b82f633,#a855f733);border:1px solid #3b82f633;border-top-right-radius:4px}.message-content p{margin-bottom:8px}.message-content p:last-child{margin-bottom:0}.message-content strong{color:var(--accent-green)}.message-content ul,.message-content ol{margin:8px 0;padding-left:20px}.message-content li{margin-bottom:4px}.suggestion-chips{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.chip{border:1px solid var(--border-subtle);background:var(--bg-glass);color:var(--text-secondary);font-family:var(--font-body);cursor:pointer;white-space:nowrap;border-radius:20px;padding:6px 12px;font-size:12px;transition:all .2s}.chip:hover{border-color:var(--accent-green);color:var(--accent-green);background:#22c55e1a}.typing-indicator{gap:4px;padding:8px 0;display:flex}.typing-indicator span{background:var(--text-muted);border-radius:50%;width:6px;height:6px;animation:1.4s ease-in-out infinite typing}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}.chat-input-container{border-top:1px solid var(--border-subtle);flex-shrink:0;gap:8px;padding:16px;display:flex}#chat-input{border:1px solid var(--border-subtle);background:var(--bg-card);color:var(--text-primary);font-family:var(--font-body);border-radius:12px;outline:none;flex:1;padding:12px 16px;font-size:13px;transition:border-color .2s}#chat-input:focus{border-color:var(--accent-green);box-shadow:0 0 0 3px #22c55e1a}#chat-input::placeholder{color:var(--text-muted)}.chat-send-btn{background:linear-gradient(135deg, var(--accent-green), var(--accent-teal));color:#fff;cursor:pointer;width:44px;height:44px;transition:all .3s var(--ease-out-expo);border:none;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.chat-send-btn:hover{transform:scale(1.05);box-shadow:0 4px 20px #22c55e4d}.chat-send-btn:active{transform:scale(.95)}.chat-send-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}#pledge-modal{z-index:500;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:0;visibility:hidden;background:#000000b3;justify-content:center;align-items:center;transition:all .3s;display:flex;position:fixed;inset:0}#pledge-modal.visible{opacity:1;visibility:visible}#pledge-modal.hidden{opacity:0;visibility:hidden}.pledge-content{background:var(--bg-panel);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border:1px solid var(--border-subtle);width:90%;max-width:480px;max-height:80vh;transition:transform .4s var(--ease-spring);border-radius:20px;padding:32px;position:relative;overflow-y:auto;transform:scale(.9)}#pledge-modal.visible .pledge-content{transform:scale(1)}.pledge-close{background:var(--bg-glass);width:32px;height:32px;color:var(--text-secondary);cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;font-size:14px;transition:all .2s;display:flex;position:absolute;top:16px;right:16px}.pledge-close:hover{background:var(--bg-glass-hover);color:var(--text-primary)}.pledge-header{text-align:center;margin-bottom:24px}.pledge-icon{margin-bottom:12px;font-size:48px;animation:3s ease-in-out infinite float;display:block}.pledge-header h2{font-family:var(--font-display);background:linear-gradient(135deg, var(--accent-green), var(--accent-teal));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:24px;font-weight:700}.pledge-body{color:var(--text-secondary);font-size:14px;line-height:1.7}.pledge-body strong{color:var(--accent-green)}.pledge-actions{text-align:center;margin-top:24px}.pledge-share-btn{background:linear-gradient(135deg, var(--accent-green), var(--accent-teal));color:#fff;font-family:var(--font-body);cursor:pointer;transition:all .3s var(--ease-out-expo);border:none;border-radius:12px;padding:12px 28px;font-size:14px;font-weight:600}.pledge-share-btn:hover{transform:translateY(-2px);box-shadow:0 6px 24px #22c55e4d}@keyframes spin{to{transform:rotate(360deg)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes sparkle{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.9)}}@keyframes messageIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes typing{0%,to{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1)}}@keyframes countUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse-glow{0%,to{box-shadow:0 0 4px #ef444466}50%{box-shadow:0 0 12px #ef4444b3}}@keyframes ring-pulse{0%{opacity:1;transform:scale(.8)}to{opacity:0;transform:scale(2.5)}}#app:before{content:"";z-index:0;pointer-events:none;background-image:radial-gradient(1px 1px at 20% 30%,#ffffff4d 0%,#0000 100%),radial-gradient(1px 1px at 40% 70%,#fff3 0%,#0000 100%),radial-gradient(1px 1px at 60% 20%,#ffffff4d 0%,#0000 100%),radial-gradient(1px 1px at 80%,#ffffff26 0%,#0000 100%),radial-gradient(1px 1px at 10% 80%,#fff3 0%,#0000 100%),radial-gradient(1px 1px at 90% 10%,#ffffff40 0%,#0000 100%),radial-gradient(1px 1px,#ffffff1a 0%,#0000 100%),radial-gradient(1.5px 1.5px at 30% 90%,#fff3 0%,#0000 100%),radial-gradient(1.5px 1.5px at 70% 40%,#fff3 0%,#0000 100%),radial-gradient(1px 1px at 15% 55%,#ffffff26 0%,#0000 100%);position:fixed;inset:0}@media (width<=900px){#dashboard-panel{flex-wrap:wrap;justify-content:center;max-width:95vw;bottom:10px}.stat-card{min-width:140px;padding:8px 12px}.stat-value{font-size:16px}.stat-trend{display:none}#chat-panel{width:100%}}@media (width<=600px){#dashboard-panel{grid-template-columns:1fr 1fr;gap:8px;padding:8px;display:grid}.stat-card{min-width:unset}.header-nav{gap:2px;padding:3px}.nav-btn{padding:6px 10px}.ai-toggle-btn span:not(.ai-icon){display:none}}.point-label{font-family:var(--font-body);color:var(--text-primary);background:var(--bg-glass);border:1px solid var(--border-subtle);pointer-events:none;border-radius:6px;padding:4px 8px;font-size:12px}
