:root {
    --bg-color: #0d1117;
    --card-bg-color: rgba(22, 27, 34, 0.8);
    --border-color: rgba(48, 54, 61, 0.8);
    --accent-color: #238636;
    --accent-hover-color: #2ea043;
    --text-color: #e0e0e0;
    --text-accent-color: #39d353;
}
body {
    font-family: 'Roboto', sans-serif;
    background-color: var(--bg-color);
    color: var(--text-color);
    background-image: radial-gradient(circle at 1px 1px, rgba(255,255,255,0.05) 1px, transparent 0);
    background-size: 20px 20px;
    padding: 1rem; /* Base padding for mobile */
}
.font-orbitron { font-family: 'Orbitron', sans-serif; }
.card-bg { background-color: var(--card-bg-color); backdrop-filter: blur(12px); border: 1px solid var(--border-color); }
.search-input { background-color: #010409; border: 1px solid #30363d; color: #c9d1d9; }
.search-button { background-color: var(--accent-color); transition: all 0.3s ease; }
.search-button:hover { background-color: var(--accent-hover-color); box-shadow: 0 0 15px rgba(46, 160, 67, 0.5); }
.result-container, .modal-content {
    opacity: 0;
    transform: scale(0.95) translateY(20px);
    animation: fadeIn 0.5s ease-out forwards;
}
.stat-bar-bg { background-color: rgba(255, 255, 255, 0.1); }
.stat-bar-fill {
    animation: fill-bar 1s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
    transition: background 0.5s ease;
}
.modal {
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}
.modal.is-open {
    opacity: 1;
    visibility: visible;
}

/* Responsive Typography */
h1 {
    font-size: 1.875rem; /* text-3xl */
    line-height: 2.25rem;
}

/* Tablet and larger */
@media (min-width: 768px) {
    h1 {
        font-size: 2.25rem; /* md:text-4xl */
        line-height: 2.5rem;
    }
    body {
        padding: 2rem;
    }
}

@keyframes fadeIn { 
    to { 
        opacity: 1; 
        transform: scale(1) translateY(0); 
    } 
}
@keyframes fill-bar { from { width: 0%; } }

