@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;600;700;900&family=Space+Mono:wght@700&display=swap');

body { font-family: 'Poppins', sans-serif; -webkit-tap-highlight-color: transparent; }
.font-mono { font-family: 'Space Mono', monospace; }

/* Ticker Animasyonu */
.ticker-track { 
    animation: tickerScroll 300s linear infinite; 
    padding-left: 100%; 
}

@keyframes tickerScroll { 
    0% { transform: translateX(0); } 
    100% { transform: translateX(-100%); } 
}

/* Grid Arka Plan - HAREKETLİ BORSA TERMİNALİ EFEKTİ EKLENDİ */
.grid-bg {
    background-image: radial-gradient(#94a3b8 1px, transparent 1px);
    background-size: 20px 20px;
}
.dark .terminal-grid {
    background-image: linear-gradient(rgba(255, 255, 255, 0.25) 1px, transparent 1px),
                      linear-gradient(90deg, rgba(255, 255, 255, 0.25) 1px, transparent 1px);
    background-size: 30px 30px;
    animation: gridScroll 15s linear infinite; /* Sürekli akan arka plan */
}
.light .terminal-grid {
    background-image: linear-gradient(rgba(0, 0, 0, 0.18) 1.5px, transparent 1.5px),
                      linear-gradient(90deg, rgba(0, 0, 0, 0.18) 1.5px, transparent 1.5px);
    background-size: 30px 30px;
    animation: gridScroll 15s linear infinite;
}

@keyframes gridScroll {
    0% { background-position: 0 0; }
    100% { background-position: -30px 30px; }
}

/* Grafik Çizgilerine Yumuşak Geçiş (Çubuk Akıcılığı) */
#chartLine, #chartArea {
    transition: all 0.8s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Glow Effects */
.dark .drop-shadow-glow { filter: drop-shadow(0 0 12px currentColor); }
.light .drop-shadow-glow { filter: drop-shadow(0 2px 6px rgba(0,0,0,0.15)); }
.text-market-green { color: #00d13b !important; }
.text-market-red { color: #e60036 !important; }

/* Flash, Shake ve RUG PULL Animasyonları */
.flash-up { animation: flashGreen 800ms ease-out; }
.flash-down { animation: flashRed 800ms ease-out, shakeLight 400ms ease-in-out; }
.market-shock { animation: shakeHeavy 600ms ease-in-out !important; }
.rug-pull-shock { animation: rugPullDevastation 1000ms cubic-bezier(0.36, 0.07, 0.19, 0.97) !important; }

@keyframes flashGreen {
    0% { background-color: rgba(0, 209, 59, 0.20); border-color: #00d13b; transform: scale(1.02); }
    100% { transform: scale(1); }
}
@keyframes flashRed {
    0% { background-color: rgba(230, 0, 54, 0.20); border-color: #e60036; transform: scale(0.98); }
    100% { transform: scale(1); }
}
@keyframes shakeLight {
    0%, 100% { transform: translateX(0); }
    20%, 60% { transform: translateX(-4px); }
    40%, 80% { transform: translateX(4px); }
}
@keyframes shakeHeavy {
    0%, 100% { transform: translate(0, 0) rotate(0); }
    20% { transform: translate(-10px, 5px) rotate(-1.5deg); box-shadow: inset 0 0 25px rgba(230,0,54,0.4); }
    40% { transform: translate(10px, -5px) rotate(1.5deg); }
    60% { transform: translate(-10px, -5px) rotate(-1.5deg); }
    80% { transform: translate(10px, 5px) rotate(1.5deg); }
}
@keyframes rugPullDevastation {
    0% { transform: scale(1) translate(0, 0) rotate(0); box-shadow: none; border-color: transparent; }
    10% { transform: scale(0.95) translate(-20px, 15px) rotate(-3deg); box-shadow: inset 0 0 100px rgba(230,0,54,0.9); border-color: #e60036; background-color: rgba(230,0,54,0.4); }
    20% { transform: scale(1.05) translate(20px, -15px) rotate(3deg); }
    30% { transform: scale(0.95) translate(-20px, -15px) rotate(-3deg); }
    40% { transform: scale(1.02) translate(20px, 15px) rotate(3deg); }
    100% { transform: scale(1) translate(0, 0) rotate(0); box-shadow: none; }
}

/* Yükseliş/Düşüş SVG Animasyonları - HAREKET MESAFESİ UZATILDI */
.trend-up-anim { animation: bounceUp 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94) infinite alternate; }
.trend-down-anim { animation: bounceDown 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94) infinite alternate; }

@keyframes bounceUp { 
    from { transform: translateY(5px); } 
    to { transform: translateY(-20px); } /* Eskiden -5px idi, daha uzun çubuk hissi için artırıldı */
}
@keyframes bounceDown { 
    from { transform: translateY(-5px); } 
    to { transform: translateY(20px); } /* Daha derine çöküş hissi */
}

/* Yüzen Puan Efekti - DAHA UZAK MESAFEYE UÇUYOR */
.floating-impact {
    position: absolute;
    pointer-events: none;
    font-family: 'Space Mono', monospace;
    font-size: 28px;
    font-weight: 900;
    z-index: 100;
    animation: floatUpFade 1.8s cubic-bezier(0.2, 0.8, 0.2, 1) forwards;
    filter: drop-shadow(0 4px 8px rgba(0,0,0,0.5));
}

@keyframes floatUpFade {
    0% { opacity: 1; transform: translateY(0) scale(0.5); }
    15% { transform: translateY(-30px) scale(1.3); }
    100% { opacity: 0; transform: translateY(-150px) scale(1); } /* -80px'ten -150px'e çıkarıldı, daha uzun uçuyor */
}

/* Timer Pulse */
.pulse-fast { animation: pulseDanger 0.8s infinite alternate; }
@keyframes pulseDanger {
    from { transform: scale(1); color: #ef4444; }
    to { transform: scale(1.1); color: #991b1b; text-shadow: 0 0 15px rgba(239,68,68,0.4); }
}

/* Aksiyon Butonları */
.market-btn {
    width: 100%; text-align: left; padding: 16px 20px; border-radius: 12px;
    border: 2px solid; cursor: pointer; transition: all 250ms cubic-bezier(0.4, 0, 0.2, 1);
    display: flex; justify-content: space-between; align-items: center; font-weight: 700;
    position: relative; overflow: hidden; font-size: 14px;
}
@media (min-width: 640px) { .market-btn { padding: 20px 24px; font-size: 16px; } }
.market-btn:active { transform: scale(0.96); }
.light .market-btn { background: #fff; border-color: #e2e8f0; color: #1e293b; }
.light .market-btn:hover { background: #f8fafc; border-color: #cbd5e1; transform: translateY(-3px); box-shadow: 0 10px 20px -5px rgba(0,0,0,0.1); }
.dark .market-btn { background: #111; border-color: #222; color: #e2e8f0; }
.dark .market-btn:hover { background: #1a1a1a; border-color: #444; transform: translateY(-3px); box-shadow: 0 10px 20px -5px rgba(0,0,0,0.6); }

/* Utils */
.reveal-element { animation: fadeInUp 500ms ease-out forwards; }
@keyframes fadeInUp { 0% { opacity: 0; transform: translateY(20px); } 100% { opacity: 1; transform: translateY(0); } }
#spkAlertToast.is-active { opacity: 1; transform: translate(-50%, -20px); }
#endgameState.is-active { display: flex; }
#endgameState.is-active #endgameModalInner { transform: scale(1); opacity: 1; }