:root{--void:#050505;--dark:#0a0a0a;--card:#141414;--elev:#1a1a1a;--gold:#C5A059;--gbr:#D4AF37;--gdim:#8B7355;--txt:#fff;--ts:#9ca3af;--td:#6b7280;--bor:rgba(197,160,89,0.2);--glass:rgba(20,20,20,0.85);--tama:#10b981}*{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100%;overflow:hidden;font-family:'Inter',sans-serif;background:var(--void);color:var(--txt);-webkit-font-smoothing:antialiased}.hidden{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}#globe-container{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:9999;background:var(--void);opacity:1;visibility:visible;transition:opacity 1.5s ease-in-out;pointer-events:all;will-change:opacity}#globe-container.fade-out{opacity:0;pointer-events:none}#map{position:absolute;top:0;left:0;width:100vw;height:100vh;z-index:0;direction:ltr!important}.ltr-only{direction:ltr!important}.rtl-content{direction:rtl;text-align:right}#loading{position:fixed;inset:0;background:var(--void);z-index:10000;display:flex;align-items:center;justify-content:center;transition:opacity 0.5s,visibility 0.5s}#loading.fade{opacity:0;visibility:hidden}.load-box{text-align:center}.logo{font-size:2.5rem;font-weight:900;margin-bottom:2rem}.bold{color:var(--txt);font-weight:900}.light{color:var(--gold);font-weight:200}.bar{width:200px;height:3px;background:var(--dark);border-radius:10px;overflow:hidden;margin:0 auto 1rem}.prog{width:0;height:100%;background:linear-gradient(90deg,var(--gdim),var(--gbr));animation:prog 2s ease-in-out infinite}@keyframes prog{0%{width:0}50%{width:70%}100%{width:100%}}.load-box p{color:var(--ts);font-size:0.875rem;letter-spacing:2px;text-transform:uppercase}.header{position:fixed;top:0;left:0;right:0;height:70px;background:linear-gradient(180deg,rgba(5,5,5,0.95) 0%,transparent 100%);backdrop-filter:blur(20px);border-bottom:1px solid var(--bor);z-index:1000;display:flex;justify-content:space-between;align-items:center;padding:0 2rem;opacity:0;transform:translateY(-20px);will-change:transform,opacity}.h-left,.h-right{display:flex;align-items:center;gap:1.5rem}.header .logo{font-size:1.5rem;margin:0;cursor:pointer}.status{display:flex;align-items:center;gap:0.5rem;padding:6px 14px;background:rgba(197,160,89,0.1);border:1px solid var(--bor);border-radius:8px;font-size:0.75rem;font-weight:700;letter-spacing:1px;color:var(--gold)}.dot{width:6px;height:6px;background:#10b981;border-radius:50%;animation:pulse 2s infinite}@keyframes pulse{0%,100%{opacity:1}50%{opacity:0.3}}.langs{display:flex;gap:4px;background:var(--card);padding:4px;border-radius:8px;border:1px solid var(--bor)}.lang{padding:8px 16px;background:transparent;border:none;border-radius:6px;color:var(--ts);font-size:0.875rem;font-weight:600;cursor:pointer;transition:all 0.2s}.lang:hover{color:var(--txt);background:var(--elev)}.lang.active{background:var(--gold);color:var(--void)}.stats{position:fixed;bottom:0;left:0;right:0;height:70px;background:linear-gradient(0deg,rgba(5,5,5,0.95) 0%,transparent 100%);backdrop-filter:blur(20px);border-top:1px solid var(--bor);z-index:1000;display:flex;justify-content:center;align-items:center;gap:2rem;opacity:0;transform:translateY(20px);will-change:transform,opacity}.st{text-align:center}.sv{font-size:2rem;font-weight:900;font-family:'Playfair Display',serif;color:var(--gold);line-height:1;margin-bottom:0.25rem;direction:ltr}.sl{font-size:0.75rem;font-weight:600;letter-spacing:1px;color:var(--td)}.sd{width:1px;height:40px;background:var(--bor)}.filter-panel{position:fixed;top:90px;left:2rem;background:var(--glass);backdrop-filter:blur(30px);border:1px solid var(--bor);border-radius:16px;padding:1.5rem;z-index:1001;min-width:280px;opacity:0;transform:translateX(-20px);box-shadow:0 8px 32px rgba(0,0,0,0.6);will-change:transform,opacity}.fp-head{font-size:0.875rem;font-weight:700;color:var(--gold);text-transform:uppercase;letter-spacing:1px;margin-bottom:1rem}.fp-btns{display:flex;flex-direction:column;gap:0.5rem;margin-bottom:1rem}.fp-btn{display:flex;align-items:center;gap:0.75rem;padding:12px 16px;background:rgba(10,10,10,0.5);border:1px solid var(--bor);border-radius:10px;color:var(--ts);font-size:0.9rem;font-weight:600;cursor:pointer;transition:all 0.3s;text-align:left}.fp-btn:hover{background:var(--elev);border-color:var(--gold);color:var(--txt)}.fp-btn.active{background:linear-gradient(135deg,var(--gdim),var(--gold));border-color:var(--gbr);color:var(--void)}.fp-btn i{font-size:1.1rem;min-width:20px}.fp-count{padding-top:1rem;border-top:1px solid var(--bor);text-align:center;font-size:0.875rem;color:var(--ts)}.fp-count span:first-child{color:var(--gold);font-weight:700;font-size:1.25rem}.filter-mobile{display:none}.acts{position:fixed;bottom:90px;right:2rem;z-index:1001;display:flex;flex-direction:column;gap:0.75rem;opacity:0;transform:translateX(20px);will-change:transform,opacity}.act{display:flex;align-items:center;gap:0.75rem;padding:14px 24px;background:var(--glass);backdrop-filter:blur(20px);border:1px solid var(--bor);border-radius:12px;color:var(--txt);font-size:0.9rem;font-weight:700;cursor:pointer;transition:all 0.3s;box-shadow:0 4px 12px rgba(0,0,0,0.5)}.act:hover{transform:translateY(-4px);box-shadow:0 8px 20px rgba(0,0,0,0.6)}.act.pri{background:linear-gradient(135deg,var(--gdim),var(--gold));border-color:var(--gbr)}.act.pri:hover{background:linear-gradient(135deg,var(--gold),var(--gbr));box-shadow:0 8px 24px rgba(197,160,89,0.4)}.act.sec:hover{background:rgba(197,160,89,0.15);border-color:var(--gold)}.tip{position:fixed;background:var(--glass);backdrop-filter:blur(20px);border:1px solid var(--bor);border-radius:8px;padding:12px 16px;z-index:2000;pointer-events:none;font-size:0.875rem;font-weight:600;color:var(--gold);box-shadow:0 4px 12px rgba(0,0,0,0.5);direction:ltr}.card{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(0.9);width:90%;max-width:500px;max-height:90vh;overflow-y:auto;background:var(--glass);backdrop-filter:blur(30px);border:1px solid var(--bor);border-radius:20px;padding:2rem;z-index:3000;opacity:0;transition:all 0.3s cubic-bezier(0.4,0,0.2,1);box-shadow:0 20px 60px rgba(0,0,0,0.8);will-change:transform,opacity}.card:not(.hidden){opacity:1;transform:translate(-50%,-50%) scale(1)}.card-badge{position:absolute;top:1rem;left:2rem;padding:6px 14px;background:var(--tama);border-radius:8px;font-size:0.75rem;font-weight:700;letter-spacing:0.5px;text-transform:uppercase;color:white;direction:ltr}.card-badge.arb{background:linear-gradient(135deg,var(--gdim),var(--gold))}.cls{position:absolute;top:1rem;right:1rem;width:36px;height:36px;background:var(--card);border:1px solid var(--bor);border-radius:8px;color:var(--ts);font-size:1.1rem;cursor:pointer;transition:all 0.2s;display:flex;align-items:center;justify-content:center;z-index:10}.cls:hover{background:rgba(239,68,68,0.2);border-color:#ef4444;color:#ef4444}.loc{display:flex;align-items:center;gap:0.5rem;color:var(--gold);font-weight:600;font-size:0.9rem;margin-bottom:1rem;margin-top:2.5rem;direction:ltr}.card h2{font-family:'Playfair Display',serif;font-size:1.75rem;font-weight:700;margin-bottom:1.5rem;line-height:1.2}.grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.5rem}.met{padding:1rem;background:rgba(10,10,10,0.5);border:1px solid rgba(197,160,89,0.15);border-radius:12px}.met.hi{background:rgba(197,160,89,0.1);border-color:var(--gold)}.ml{font-size:0.75rem;font-weight:600;letter-spacing:0.5px;color:var(--td);text-transform:uppercase;margin-bottom:0.5rem}.mv{font-family:'Playfair Display',serif;font-size:1.4rem;font-weight:700;color:var(--txt);direction:ltr}.met.hi .mv{color:var(--gold)}.spd{padding:1.25rem;background:linear-gradient(135deg,rgba(197,160,89,0.15),rgba(197,160,89,0.05));border:1px solid var(--gold);border-radius:12px;text-align:center;margin-bottom:1.5rem}.spl{font-size:0.75rem;font-weight:600;letter-spacing:1px;color:var(--ts);text-transform:uppercase;margin-bottom:0.5rem}.spv{font-family:'Playfair Display',serif;font-size:2.5rem;font-weight:900;color:var(--gold);direction:ltr}.dets{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}.det{display:flex;justify-content:space-between;align-items:center;font-size:0.9rem}.det span{color:var(--ts)}.det strong{font-weight:700;color:var(--txt);direction:ltr}.div{height:1px;background:var(--bor);margin:1.5rem 0}.ths h4{font-size:0.9rem;font-weight:700;color:var(--gold);text-transform:uppercase;letter-spacing:0.5px;margin-bottom:0.75rem}.ths p{font-size:0.9rem;line-height:1.6;color:var(--ts);margin-bottom:1.5rem}.cta{width:100%;padding:16px;background:linear-gradient(135deg,var(--gdim),var(--gold));border:1px solid var(--gbr);border-radius:12px;color:var(--void);font-size:1rem;font-weight:700;cursor:pointer;transition:all 0.3s;display:flex;align-items:center;justify-content:center;gap:0.75rem}.cta:hover{background:linear-gradient(135deg,var(--gold),var(--gbr));transform:translateY(-2px);box-shadow:0 8px 24px rgba(197,160,89,0.4)}.mod{position:fixed;inset:0;z-index:5000;display:flex;align-items:center;justify-content:center;padding:1rem}.back{position:absolute;inset:0;background:rgba(0,0,0,0.85);backdrop-filter:blur(5px)}.box{position:relative;width:100%;max-width:500px;max-height:90vh;overflow-y:auto;background:var(--glass);backdrop-filter:blur(30px);border:1px solid var(--bor);border-radius:20px;padding:2rem;z-index:10;will-change:transform}.head{text-align:center;margin-bottom:2rem}.head h2{font-family:'Playfair Display',serif;font-size:2rem;font-weight:700;margin-bottom:0.5rem}.head p{color:var(--ts);font-size:0.95rem}.premium-gate{padding:2rem;background:linear-gradient(135deg,rgba(197,160,89,0.15),rgba(197,160,89,0.05));border:2px solid var(--gold);border-radius:16px;text-align:center;margin-bottom:2rem}.premium-gate i{font-size:3rem;color:var(--gold);margin-bottom:1rem}.premium-gate h3{font-size:1.5rem;font-weight:700;color:var(--gold);margin-bottom:1rem}.premium-gate p{color:var(--ts);line-height:1.7;margin-bottom:1.5rem}.bill{display:flex;gap:0.5rem;margin-bottom:2rem;background:var(--dark);padding:4px;border-radius:12px}.bb{flex:1;padding:12px;background:transparent;border:none;border-radius:10px;color:var(--ts);font-weight:700;cursor:pointer;transition:all 0.2s;position:relative}.bb:hover{color:var(--txt)}.bb.active{background:var(--gold);color:var(--void)}.bdg{position:absolute;top:-6px;right:-6px;padding:2px 6px;background:#10b981;border-radius:4px;font-size:0.65rem;font-weight:700;color:white}.prc{padding:2rem;background:rgba(10,10,10,0.5);border:1px solid var(--bor);border-radius:16px;text-align:center}.pr{font-family:'Playfair Display',serif;margin-bottom:2rem}.cu{font-size:1.5rem;font-weight:700;color:var(--gold)}.am{font-size:4rem;font-weight:900;color:var(--gold);margin:0 4px}.pe{font-size:1rem;color:var(--td)}.fts{list-style:none;text-align:left;margin-bottom:2rem}.fts li{display:flex;align-items:center;gap:0.75rem;padding:0.75rem 0;color:var(--ts);font-size:0.95rem}.fts i{color:var(--gold)}.sec{display:flex;align-items:center;justify-content:center;gap:0.5rem;color:var(--td);font-size:0.8rem;margin-top:1rem}.disclaimer{padding:1rem;background:rgba(239,68,68,0.1);border:1px solid rgba(239,68,68,0.3);border-radius:8px;font-size:0.8rem;color:var(--ts);line-height:1.5;margin-top:1.5rem}.disclaimer i{color:#ef4444;margin-right:0.5rem}.frm{display:flex;flex-direction:column;gap:1.25rem}.fg{display:flex;flex-direction:column;gap:0.5rem}.fg label{font-size:0.875rem;font-weight:600;color:var(--ts);text-transform:uppercase;letter-spacing:0.5px}.fr{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.inp{padding:12px 16px;background:rgba(10,10,10,0.5);border:1px solid var(--bor);border-radius:10px;color:var(--txt);font-size:1rem;font-family:'Inter',sans-serif;transition:all 0.2s;direction:ltr}.inp:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(197,160,89,0.1)}.con{position:fixed;bottom:1.5rem;right:1.5rem;max-width:350px;z-index:6000}.conb{background:var(--glass);backdrop-filter:blur(30px);border:1px solid var(--bor);border-radius:16px;padding:1.5rem;box-shadow:0 8px 32px rgba(0,0,0,0.6)}.conh{display:flex;align-items:center;gap:0.75rem;margin-bottom:1rem;font-weight:700}.conh i{color:var(--gold);font-size:1.5rem}.conb p{font-size:0.875rem;color:var(--ts);line-height:1.6;margin-bottom:1.25rem}.conbs{display:flex;gap:0.75rem}.by,.bn{flex:1;padding:10px;border:none;border-radius:8px;font-size:0.875rem;font-weight:600;cursor:pointer;transition:all 0.2s}.by{background:var(--gold);color:var(--void)}.by:hover{background:var(--gbr)}.bn{background:transparent;color:var(--ts);border:1px solid var(--bor)}.bn:hover{color:var(--txt);border-color:var(--ts)}

/* 🍪 SIMPLE COOKIE BANNER - Bottom Bar */
.con {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 6000;
}

.conb {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    padding: 1rem 2rem;
    background: rgba(10,10,10,0.95);
    backdrop-filter: blur(30px);
    border-top: 1px solid var(--bor);
    box-shadow: 0 -4px 24px rgba(0,0,0,0.6);
}

.conb i {
    font-size: 1.5rem;
    color: var(--gold);
    margin-right: 1rem;
}

.conb p {
    flex: 1;
    margin: 0;
    font-size: 0.9rem;
    color: var(--ts);
    line-height: 1.5;
}

.conbs {
    display: flex;
    gap: 0.75rem;
    flex-shrink: 0;
}

@media(max-width:768px){
    .conb {
        flex-direction: column;
        align-items: flex-start;
        gap: 1rem;
        padding: 1rem;
    }
    
    .conb i {
        margin-right: 0.5rem;
    }
    
    .conb p {
        font-size: 0.85rem;
    }
    
    .conbs {
        width: 100%;
        gap: 0.5rem;
    }
    
    .conbs .bn,
    .conbs .by {
        flex: 1;
    }
}@media(max-width:768px){.header,.stats{padding:0 1rem;height:60px}.header .logo{font-size:1.25rem}.status{display:none}.stats{gap:1rem}.sd{display:none}.filter-panel{display:none}.filter-mobile{position:fixed;bottom:70px;left:0;right:0;display:flex;justify-content:center;gap:0.5rem;padding:1rem;background:linear-gradient(0deg,rgba(5,5,5,0.95) 0%,rgba(5,5,5,0.7) 100%);backdrop-filter:blur(20px);border-top:1px solid var(--bor);z-index:999;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}.fm-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0.25rem;min-width:80px;padding:10px 16px;background:rgba(10,10,10,0.5);border:1px solid var(--bor);border-radius:10px;color:var(--ts);font-size:0.75rem;font-weight:600;cursor:pointer;transition:all 0.3s;flex-shrink:0}.fm-btn i{font-size:1.25rem}.fm-btn:hover,.fm-btn.active{background:linear-gradient(135deg,var(--gdim),var(--gold));border-color:var(--gbr);color:var(--void)}.acts{right:1rem;bottom:auto;top:80px;gap:0.5rem}.act{width:50px;height:50px;padding:0;justify-content:center;border-radius:50%;font-size:1.1rem}.act span{display:none}.card,.box{width:95%;padding:1.5rem;max-height:85vh}.con{bottom:1rem;right:1rem;left:1rem;max-width:none}}

/* FIX #1: Remove background from loading box */
#loading, .load-box {
    background: transparent !important;
}

/* FIX #1B: Force black background everywhere */
body, html, #globe-container, #map {
    background: #050505 !important;
    background-color: #050505 !important;
}

/* FIX #2: KILL ALL STARS - But NOT map canvas! */
[id*="star"]:not(.stats):not(.status):not([class*="stats"]), 
[class*="star"]:not(.stats):not(.status):not([class*="stats"]),
#starfield,
#starfield-bg {
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

/* FIX #3: Kill any stray white dots from Globe.gl */
#globe-container div[style*="position: absolute"]:not([class]) {
    display: none !important;
}

/* Kill specific globe.gl artifacts */
#globe-container > div > div[style] {
    display: none !important;
}

/* FIX #4: Kill MapLibre center marker and any white dots */
.maplibregl-crosshair,
.maplibregl-marker,
.mapboxgl-marker,
[class*="center-marker"],
[class*="crosshair"] {
    display: none !important;
}

/* Nuclear: hide ANY absolute positioned white/light element on map */
#map div[style*="background"][style*="255"],
#map div[style*="background: white"],
#map div[style*="background: #fff"],
#map div[style*="background: #FFF"],
#map div[style*="background-color: white"],
#map div[style*="background-color: #fff"],
#map div[style*="background-color: rgb(255"] {
    display: none !important;
}

/* FIX #5: Kill ALL MapLibre controls, attribution, logos, and center indicators */
.maplibregl-ctrl,
.maplibregl-ctrl-attrib,
.maplibregl-ctrl-logo,
.maplibregl-ctrl-bottom-left,
.maplibregl-ctrl-bottom-right,
.mapboxgl-ctrl,
.mapboxgl-ctrl-attrib,
.mapboxgl-ctrl-logo,
a.maplibregl-ctrl-logo,
a.mapboxgl-ctrl-logo {
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
}

/* FIX #6: NUCLEAR - Hide ANY small white element on the entire page */
#map *, 
body > div:not(#loading):not(.header):not(.stats):not(.filter-panel):not(.acts):not(.card):not(.mod):not(.con) * {
    /* If it's white and small, kill it */
}

#map canvas + div,
#map > div > div:not([class^="deck"]),
.maplibregl-canvas-container > div:not(.maplibregl-canvas) {
    filter: brightness(0) !important;
    opacity: 0 !important;
    display: none !important;
}

/* Kill any SVG circles that are white */
#map circle[fill="white"],
#map circle[fill="#fff"],
#map circle[fill="#ffffff"],
#map circle[stroke="white"],
#map path[fill="white"],
#map path[stroke="white"] {
    display: none !important;
    opacity: 0 !important;
}

/* NUCLEAR OPTION - Hide all white elements in map */
#map div[style*="rgb(255, 255, 255)"],
#map span[style*="rgb(255, 255, 255)"],
#map div[style*="background: white"],
#map div[style*="background:white"],
#map div[style*="background: #fff"],
#map div[style*="color: white"],
#map div[style*="color:white"] {
    filter: brightness(0) !important;
    opacity: 0 !important;
    display: none !important;
}

/* 🎨 Ultimate Premium Enhancements */

/* Animated gradient background */
body::before {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: radial-gradient(ellipse at top, rgba(197,160,89,0.1) 0%, transparent 50%),
                radial-gradient(ellipse at bottom, rgba(197,160,89,0.05) 0%, transparent 50%);
    pointer-events: none;
    z-index: 0;
    animation: breathe 8s ease-in-out infinite;
}

@keyframes breathe {
    0%, 100% { opacity: 0.3; }
    50% { opacity: 0.6; }
}

/* Glowing logo effect */
.logo {
    position: relative;
    text-shadow: 0 0 20px rgba(197,160,89,0.3);
    transition: all 0.3s;
}

.logo:hover {
    text-shadow: 0 0 30px rgba(197,160,89,0.6);
    transform: scale(1.02);
}

/* Pulsing status dot with glow */
.dot {
    box-shadow: 0 0 8px rgba(16,185,129,0.8), 0 0 16px rgba(16,185,129,0.4);
}

/* Animated stats with number rolling effect */
.sv {
    transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    text-shadow: 0 2px 20px rgba(197,160,89,0.4);
}

.sv:hover {
    transform: scale(1.05);
    text-shadow: 0 4px 30px rgba(197,160,89,0.6);
}

/* Filter panel glow on active */
.fp-btn.active {
    box-shadow: 0 0 20px rgba(197,160,89,0.3), inset 0 0 20px rgba(197,160,89,0.2);
    animation: glow-pulse 2s ease-in-out infinite;
}

@keyframes glow-pulse {
    0%, 100% { box-shadow: 0 0 20px rgba(197,160,89,0.3); }
    50% { box-shadow: 0 0 30px rgba(197,160,89,0.5); }
}

/* Action buttons with premium shine */
.act.pri {
    position: relative;
    overflow: hidden;
}

.act.pri::before {
    content: '';
    position: absolute;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: linear-gradient(45deg, transparent, rgba(255,255,255,0.1), transparent);
    animation: shine 3s infinite;
}

@keyframes shine {
    0% { transform: translateX(-100%) translateY(-100%) rotate(45deg); }
    100% { transform: translateX(100%) translateY(100%) rotate(45deg); }
}

/* Card entrance animation */
.card:not(.hidden) {
    animation: card-enter 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

@keyframes card-enter {
    0% {
        opacity: 0;
        transform: translate(-50%, -48%) scale(0.9);
    }
    100% {
        opacity: 1;
        transform: translate(-50%, -50%) scale(1);
    }
}

/* Spread indicator glow */
.spv {
    animation: gold-glow 2s ease-in-out infinite;
}

@keyframes gold-glow {
    0%, 100% { 
        text-shadow: 0 0 20px rgba(197,160,89,0.4);
    }
    50% { 
        text-shadow: 0 0 40px rgba(197,160,89,0.8);
    }
}

/* Loading bar gradient animation */
.prog {
    background: linear-gradient(90deg, 
        var(--gdim), 
        var(--gold), 
        var(--gbr), 
        var(--gold), 
        var(--gdim)
    );
    background-size: 200% 100%;
    animation: prog-gradient 2s ease-in-out infinite, prog-width 2s ease-in-out infinite;
}

@keyframes prog-gradient {
    0%, 100% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
}

@keyframes prog-width {
    0% { width: 0; }
    50% { width: 70%; }
    100% { width: 100%; }
}

/* Premium badge shine */
.card-badge {
    position: relative;
    overflow: hidden;
}

.card-badge::after {
    content: '';
    position: absolute;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: linear-gradient(45deg, transparent, rgba(255,255,255,0.2), transparent);
    animation: badge-shine 2s infinite;
}

@keyframes badge-shine {
    0% { transform: translateX(-100%) translateY(-100%) rotate(45deg); }
    100% { transform: translateX(100%) translateY(100%) rotate(45deg); }
}

/* Tooltip with fade-in */
.tip:not(.hidden) {
    animation: tip-fade 0.2s ease-out;
}

@keyframes tip-fade {
    0% { opacity: 0; transform: translateY(-5px); }
    100% { opacity: 1; transform: translateY(0); }
}

/* CTA button ripple effect */
.cta {
    position: relative;
    overflow: hidden;
}

.cta::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0;
    height: 0;
    border-radius: 50%;
    background: rgba(255,255,255,0.2);
    transform: translate(-50%, -50%);
    transition: width 0.6s, height 0.6s;
}

.cta:active::before {
    width: 300px;
    height: 300px;
}

/* Consent banner slide-in */
.con:not(.hidden) {
    animation: slide-in 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

@keyframes slide-in {
    0% { 
        opacity: 0;
        transform: translateY(100px);
    }
    100% { 
        opacity: 1;
        transform: translateY(0);
    }
}

/* 🍪 NEW COOKIE BANNER STYLES */
.conb {flex-direction: column;align-items: flex-start;padding: 1.5rem 2rem;}
.conb h3 {font-size: 1.1rem;font-weight: 700;color: var(--txt);margin-bottom: 0.75rem;}
.conb p {font-size: 0.9rem;color: var(--ts);line-height: 1.6;margin-bottom: 1rem;}
.cookie-link {display: inline-block;color: var(--gold);text-decoration: underline;font-size: 0.9rem;margin-right: 1rem;margin-bottom: 0.75rem;cursor: pointer;transition: color 0.2s;}
.cookie-link:hover {color: var(--gbr);}
.con-btns {display: flex;gap: 0.75rem;width: 100%;}
.customize-panel {position: fixed;top: 50%;left: 50%;transform: translate(-50%, -50%);width: 90%;max-width: 500px;max-height: 80vh;overflow-y: auto;background: var(--glass);backdrop-filter: blur(30px);border: 1px solid var(--bor);border-radius: 16px;padding: 2rem;z-index: 7000;box-shadow: 0 20px 60px rgba(0,0,0,0.8);}
.close-customize {position: absolute;top: 1rem;right: 1rem;width: 32px;height: 32px;background: var(--card);border: 1px solid var(--bor);border-radius: 8px;color: var(--ts);font-size: 1.2rem;cursor: pointer;transition: all 0.2s;}
.close-customize:hover {background: rgba(239,68,68,0.2);border-color: #ef4444;color: #ef4444;}
.customize-panel h4 {font-size: 1.25rem;font-weight: 700;color: var(--gold);margin-bottom: 1.5rem;}
.cookie-options {display: flex;flex-direction: column;gap: 1rem;margin-bottom: 1.5rem;}
.cookie-option {display: flex;justify-content: space-between;align-items: center;padding: 1rem;background: rgba(10,10,10,0.5);border: 1px solid var(--bor);border-radius: 12px;}
.cookie-info strong {display: block;font-size: 0.95rem;font-weight: 700;color: var(--txt);margin-bottom: 0.25rem;}
.cookie-info p {font-size: 0.8rem;color: var(--td);margin: 0;}
.switch {position: relative;display: inline-block;width: 50px;height: 26px;}
.switch input {opacity: 0;width: 0;height: 0;}
.switch-slider {position: absolute;cursor: pointer;top: 0;left: 0;right: 0;bottom: 0;background-color: var(--dark);border: 1px solid var(--bor);transition: 0.3s;border-radius: 26px;}
.switch-slider:before {position: absolute;content: "";height: 18px;width: 18px;left: 4px;bottom: 3px;background-color: var(--ts);transition: 0.3s;border-radius: 50%;}
.switch input:checked + .switch-slider {background-color: var(--gold);border-color: var(--gbr);}
.switch input:checked + .switch-slider:before {transform: translateX(24px);background-color: var(--void);}
.switch.disabled {opacity: 0.5;cursor: not-allowed;}
.switch.disabled .switch-slider {cursor: not-allowed;}
.customize-btns {display: flex;gap: 0.75rem;}
.customize-btns .by {flex: 1;}
@media (max-width: 768px) {.conb {padding: 1rem;}.con-btns {flex-direction: column;}.customize-panel {width: 95%;padding: 1.5rem;}}

/* 🎯 HIDE WHITE DOT IN MAP CENTER - ULTRA AGGRESSIVE */
.maplibregl-marker,
.mapboxgl-marker,
.maplibregl-user-location-dot,
.mapboxgl-user-location-dot,
[class*="location-dot"],
[class*="center-marker"] {
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
}

/* Hide any white dots/circles in the map center */
.maplibregl-canvas-container::after,
.mapboxgl-canvas-container::after {
    content: none !important;
}

/* Remove any default center markers */
.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon,
.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon {
    display: none !important;
}

/* Aggressive: Hide any element positioned absolutely in center with white/light background */
#map > div[style*="position: absolute"][style*="50%"],
#map canvas + div[style*="position: absolute"] {
    opacity: 0 !important;
    pointer-events: none !important;
}

/* 💀 NUCLEAR: Kill ALL CSS pseudo-elements after intro (THE WHITE PIXEL!) */
body.intro-done::before,
body.intro-done::after,
body.intro-done #globe-container::before,
body.intro-done #globe-container::after,
body.intro-done #map::before,
body.intro-done #map::after,
body.intro-done #starfield::before,
body.intro-done #starfield::after,
body.intro-done #starfield-bg::before,
body.intro-done #starfield-bg::after,
.intro-done .starfield::before,
.intro-done .starfield::after {
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    box-shadow: none !important;
    background: transparent !important;
    width: 0 !important;
    height: 0 !important;
    content: none !important;
    pointer-events: none !important;
}

/* 🔫 KILL THE 1x1 WHITE PIXEL ITSELF (not just pseudo-elements) */
body.intro-done #starfield,
body.intro-done #starfield-bg {
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    box-shadow: none !important;
    background: transparent !important;
    width: 0 !important;
    height: 0 !important;
    pointer-events: none !important;
    transform: scale(0) !important;
}
