/* ==========================================================================
   Viper Hunt - Cyberpunk Design System & Mobile Responsive Styling
   ========================================================================== */

:root {
    --bg-dark: #060911;
    --primary-cyan: #00f0ff;
    --cyan-glow: rgba(0, 240, 255, 0.4);
    --secondary-pink: #ff007f;
    --pink-glow: rgba(255, 0, 127, 0.4);
    --snake-green: #00ff88;
    --green-glow: rgba(0, 255, 136, 0.5);
    --gold-accent: #ffd700;
    
    --card-bg: rgba(13, 19, 33, 0.92);
    --card-border: rgba(0, 240, 255, 0.25);
    --hud-bg: rgba(9, 14, 26, 0.88);
    
    --font-heading: 'Orbitron', -apple-system, sans-serif;
    --font-body: 'Rajdhani', -apple-system, sans-serif;
}

/* Reset & Base Styles */
* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    -webkit-tap-highlight-color: transparent;
}

/* Global Hidden Utility Rule */
.hidden {
    display: none !important;
}

html, body {
    width: 100%;
    height: 100%;
    overflow: hidden;
}

body {
    background-color: var(--bg-dark);
    background-image: 
        radial-gradient(circle at 50% 30%, rgba(0, 240, 255, 0.08) 0%, transparent 60%),
        radial-gradient(circle at 80% 80%, rgba(255, 0, 127, 0.05) 0%, transparent 50%);
    color: #ffffff;
    font-family: var(--font-body);
    font-size: 16px;
    display: flex;
    justify-content: center;
    align-items: center;
    touch-action: manipulation;
}

/* Main Responsive Game Container (Flex Column Layout) */
#game-container {
    position: relative;
    width: 100%;
    max-width: 1280px;
    max-height: 98vh;
    background-color: #04060a;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 
        0 0 40px rgba(0, 0, 0, 0.8),
        0 0 30px rgba(0, 240, 255, 0.15),
        inset 0 0 2px rgba(0, 240, 255, 0.3);
    border: 1px solid rgba(0, 240, 255, 0.3);
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
}

/* Dedicated Clean Canvas Viewport Area (Zero Grid Obstruction) */
#game-viewport {
    position: relative;
    flex: 1;
    width: 100%;
    min-height: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
    background-color: #04060a;
}

#game-canvas {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

/* Cyberpunk Top Header HUD Bar (Outside Grid Canvas) */
#hud {
    position: relative;
    width: 100%;
    height: 52px;
    min-height: 52px;
    max-height: 52px;
    padding: 6px 14px;
    box-sizing: border-box;
    background: rgba(5, 8, 16, 0.95);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid rgba(0, 240, 255, 0.3);
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 4px;
    z-index: 10;
    flex-shrink: 0;
    overflow: hidden;
    pointer-events: auto;
}

#hud.mode1-hud {
    height: 104px;
    min-height: 104px;
    max-height: 104px;
    justify-content: space-between;
    padding: 8px 14px;
}

.hud-top-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    gap: 12px;
    flex-shrink: 0;
}

#hud.hidden {
    display: none !important;
}

.hud-left-group {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: nowrap;
}

.hud-badge {
    background: var(--hud-bg);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid var(--card-border);
    border-radius: 8px;
    padding: 5px 12px;
    display: flex;
    align-items: center;
    gap: 8px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.5), inset 0 0 10px rgba(0, 240, 255, 0.05);
}

.threat-badge {
    border-color: rgba(0, 240, 255, 0.4);
    box-shadow: 0 0 10px rgba(0, 240, 255, 0.15);
}

.threat-value {
    font-family: var(--font-heading);
    font-size: 0.85rem;
    font-weight: 900;
    letter-spacing: 1px;
    text-shadow: 0 0 8px currentColor;
    transition: color 0.3s ease;
}

.hud-label {
    font-family: var(--font-heading);
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 1.5px;
    color: var(--primary-cyan);
    text-shadow: 0 0 8px var(--cyan-glow);
}

.hud-value {
    font-family: var(--font-heading);
    font-size: 1.05rem;
    font-weight: 800;
    color: #ffffff;
    letter-spacing: 1px;
}

.score-badge .hud-value {
    color: var(--snake-green);
    text-shadow: 0 0 10px var(--green-glow);
}

/* Active Wanted Targets Roster Footer Bar (Mode 1 - Outside Grid Canvas) */
#wanted-roster-hud {
    position: relative;
    width: 100%;
    height: 52px;
    min-height: 52px;
    max-height: 52px;
    padding: 0 14px;
    box-sizing: border-box;
    background: rgba(5, 8, 16, 0.95);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-top: 1px solid rgba(0, 240, 255, 0.25);
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    z-index: 10;
    flex-shrink: 0;
    overflow: hidden;
    pointer-events: auto;
}

@media (hover: hover) {
    #wanted-roster-hud:hover {
        opacity: 0.25;
    }
}

#wanted-roster-hud.hidden {
    display: none !important;
}

.roster-header {
    display: flex;
    align-items: center;
    gap: 8px;
}

.roster-title {
    font-family: var(--font-heading);
    font-size: 0.65rem;
    font-weight: 800;
    letter-spacing: 2px;
    color: #ff0055;
    text-shadow: 0 0 8px rgba(255, 0, 85, 0.6);
    background: rgba(10, 15, 24, 0.85);
    padding: 2px 8px;
    border-radius: 4px;
    border: 1px solid rgba(255, 0, 85, 0.4);
    display: inline-block;
}

.wanted-targets-list {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    align-items: center;
}

.wanted-card {
    background: rgba(10, 16, 28, 0.85);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border: 1px solid rgba(0, 240, 255, 0.3);
    border-radius: 8px;
    padding: 4px 10px 4px 6px;
    display: flex;
    align-items: center;
    gap: 8px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.6), inset 0 0 8px rgba(0, 240, 255, 0.05);
    transition: all 0.2s ease-in-out;
}

.wanted-card.red-notice {
    border-color: rgba(255, 0, 85, 0.6);
    box-shadow: 0 0 12px rgba(255, 0, 85, 0.2);
}

.wanted-avatar-wrap {
    position: relative;
    width: 28px;
    height: 28px;
    border-radius: 6px;
    overflow: hidden;
    background: #111;
    border: 1px solid rgba(255, 255, 255, 0.2);
}

.wanted-avatar-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.wanted-info {
    display: flex;
    flex-direction: column;
    justify-content: center;
    line-height: 1.1;
}

.wanted-name {
    font-family: var(--font-body);
    font-size: 0.8rem;
    font-weight: 700;
    color: #ffffff;
    letter-spacing: 0.5px;
    white-space: nowrap;
}

.wanted-meta {
    display: flex;
    align-items: center;
    gap: 6px;
}

.wanted-value {
    font-family: var(--font-heading);
    font-size: 0.75rem;
    font-weight: 800;
    color: var(--snake-green);
    text-shadow: 0 0 6px var(--green-glow);
}

.wanted-badge {
    font-size: 0.55rem;
    font-weight: 800;
    padding: 1px 4px;
    border-radius: 3px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.wanted-badge.interpol {
    background: rgba(255, 0, 85, 0.2);
    color: #ff3366;
    border: 1px solid rgba(255, 0, 85, 0.5);
}

.wanted-badge.fbi {
    background: rgba(255, 184, 0, 0.2);
    color: #ffb800;
    border: 1px solid rgba(255, 184, 0, 0.5);
}

/* Attack & Punishment Selector HUD (Mode 1) */
#attack-selector-hud {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    z-index: 6;
    pointer-events: auto;
    flex-shrink: 0;
}

#attack-selector-hud.hidden {
    display: none !important;
}

.attack-selector-header {
    display: flex;
    align-items: center;
    gap: 6px;
}

.attack-selector-title {
    font-family: var(--font-heading);
    font-size: 0.6rem;
    font-weight: 800;
    letter-spacing: 1.5px;
    color: var(--primary-cyan);
    text-shadow: 0 0 6px var(--cyan-glow);
    background: rgba(8, 12, 20, 0.85);
    padding: 2px 6px;
    border-radius: 4px;
    border: 1px solid rgba(0, 240, 255, 0.3);
    display: inline-block;
}

.attack-buttons-list {
    display: flex;
    gap: 8px;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: center;
    overflow-x: auto;
    width: 100%;
}

.attack-btn {
    background: rgba(10, 16, 26, 0.85);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 6px;
    padding: 4px 10px;
    display: flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;
    user-select: none;
    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.5);
}

.attack-btn:hover:not(.out-of-ammo) {
    transform: translateY(-1px);
    border-color: rgba(255, 255, 255, 0.4);
    box-shadow: 0 4px 15px rgba(0, 240, 255, 0.2);
}

.attack-btn.active {
    border-color: var(--att-color, #00f0ff);
    background: rgba(15, 25, 40, 0.95);
    box-shadow: 0 0 14px var(--att-color, #00f0ff), inset 0 0 8px rgba(255, 255, 255, 0.1);
}

.attack-btn.out-of-ammo {
    opacity: 0.4;
    cursor: not-allowed;
    border-color: rgba(255, 0, 85, 0.3);
}

.attack-key-badge {
    font-family: var(--font-heading);
    font-size: 0.65rem;
    font-weight: 800;
    background: rgba(0, 0, 0, 0.5);
    color: #fff;
    padding: 1px 5px;
    border-radius: 3px;
    border: 1px solid rgba(255, 255, 255, 0.2);
}

.attack-icon {
    font-size: 0.85rem;
}

.attack-name {
    font-family: var(--font-body);
    font-size: 0.75rem;
    font-weight: 700;
    color: #ffffff;
    letter-spacing: 0.5px;
}

.attack-multiplier {
    font-family: var(--font-heading);
    font-size: 0.65rem;
    font-weight: 800;
    color: var(--snake-green);
    background: rgba(0, 255, 136, 0.15);
    padding: 1px 4px;
    border-radius: 3px;
}

.attack-uses {
    font-family: var(--font-heading);
    font-size: 0.65rem;
    font-weight: 800;
    color: #aaaaaa;
}

.attack-btn {
    flex-direction: column;
    align-items: flex-start;
    gap: 3px;
    padding: 6px 10px;
}

.attack-btn-top {
    display: flex;
    align-items: center;
    gap: 6px;
    width: 100%;
}

.attack-risk-tag {
    font-family: var(--font-heading);
    font-size: 0.58rem;
    font-weight: 700;
    padding: 1px 6px;
    border-radius: 3px;
    letter-spacing: 0.3px;
    white-space: nowrap;
}

.attack-risk-tag.safe-risk {
    background: rgba(0, 240, 255, 0.15);
    color: #00f0ff;
    border: 1px solid rgba(0, 240, 255, 0.3);
}

.attack-risk-tag.neutral-risk {
    background: rgba(255, 184, 0, 0.15);
    color: #ffb800;
    border: 1px solid rgba(255, 184, 0, 0.3);
}

.attack-risk-tag.danger-risk {
    background: rgba(255, 0, 85, 0.18);
    color: #ff0055;
    border: 1px solid rgba(255, 0, 85, 0.4);
}

/* Tactical Morality & Alignment Evaluation Card */
.alignment-evaluation-card {
    background: rgba(10, 16, 26, 0.85);
    backdrop-filter: blur(10px);
    border: 1px solid var(--persona-color, #00f0ff);
    border-radius: 8px;
    padding: 14px 18px;
    margin: 12px 0 18px 0;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.6), inset 0 0 15px rgba(255, 255, 255, 0.03);
}

.alignment-card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 10px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    padding-bottom: 8px;
}

.alignment-title-wrap {
    display: flex;
    align-items: center;
    gap: 8px;
}

.alignment-icon {
    font-size: 1.1rem;
}

.alignment-label {
    font-family: var(--font-heading);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 1px;
    color: #ffffff;
}

.alignment-persona-badge {
    font-family: var(--font-heading);
    font-size: 0.72rem;
    font-weight: 800;
    padding: 3px 10px;
    border-radius: 4px;
    border: 1px solid;
    letter-spacing: 0.8px;
}

.alignment-card-body {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.alignment-desc {
    font-family: var(--font-body);
    font-size: 0.82rem;
    color: #cccccc;
    margin: 0;
    line-height: 1.4;
}

.alignment-stats-row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 10px;
    background: rgba(0, 0, 0, 0.3);
    padding: 10px 12px;
    border-radius: 6px;
    border: 1px solid rgba(255, 255, 255, 0.05);
}

.alignment-stat {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.alignment-stat .stat-label {
    font-family: var(--font-heading);
    font-size: 0.62rem;
    color: #888888;
    letter-spacing: 0.5px;
}

.alignment-stat .stat-value {
    font-family: var(--font-heading);
    font-size: 0.82rem;
    font-weight: 700;
    color: #ffffff;
}

/* Glassmorphism Overlay UI - Fixed Centering for Mobile & Desktop */
.overlay {
    position: fixed;
    top: 0; 
    left: 0; 
    width: 100vw; 
    height: 100vh;
    background: rgba(4, 7, 14, 0.92);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 100;
    padding: 16px;
    overflow-y: auto;
    box-sizing: border-box;
}

.overlay.hidden {
    display: none !important;
}

.overlay-card {
    background: var(--card-bg);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 1px solid var(--card-border);
    border-radius: 16px;
    padding: 32px 36px;
    width: 100%;
    max-width: 440px;
    max-height: 90vh;
    overflow-y: auto;
    margin: auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    box-shadow: 
        0 20px 50px rgba(0, 0, 0, 0.8),
        0 0 35px rgba(0, 240, 255, 0.15),
        inset 0 1px 1px rgba(255, 255, 255, 0.1);
    animation: cardAppear 0.35s ease-out;
}

@keyframes cardAppear {
    from { opacity: 0; transform: translateY(10px) scale(0.98); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

.logo-container {
    text-align: center;
    margin-bottom: 6px;
}

#overlay-title {
    font-family: var(--font-heading);
    font-size: 2rem;
    font-weight: 900;
    letter-spacing: 3px;
    color: #ffffff;
    text-transform: uppercase;
    text-shadow: 
        0 0 10px var(--cyan-glow),
        0 0 20px rgba(0, 240, 255, 0.3);
}

.cyber-line {
    width: 80px;
    height: 3px;
    background: linear-gradient(90deg, transparent, var(--primary-cyan), transparent);
    margin: 8px auto 0;
    box-shadow: 0 0 10px var(--primary-cyan);
}

#overlay-message {
    font-size: 1.05rem;
    color: #a0aec0;
    margin-bottom: 20px;
    text-align: center;
    white-space: pre-line;
    line-height: 1.4;
}

/* Profile Section */
#profile-section {
    width: 100%;
    margin-bottom: 20px;
}

#profile-section.hidden {
    display: none;
}

.profile-card-group {
    display: flex;
    flex-direction: column;
    gap: 12px;
    width: 100%;
}

.profile-create {
    display: flex;
    gap: 8px;
    width: 100%;
}

input, select {
    padding: 10px 14px;
    font-family: var(--font-body);
    font-size: 0.95rem;
    font-weight: 600;
    background: rgba(6, 10, 20, 0.85);
    color: #ffffff;
    border: 1px solid rgba(0, 240, 255, 0.25);
    border-radius: 8px;
    outline: none;
    transition: all 0.2s ease;
    width: 100%;
}

input::placeholder {
    color: #4a5568;
}

input:focus, select:focus {
    border-color: var(--primary-cyan);
    box-shadow: 0 0 12px var(--cyan-glow);
    background: rgba(8, 14, 28, 0.95);
}

select option {
    background: #090e1a;
    color: #ffffff;
    padding: 10px;
}

/* Cyberpunk Neon Buttons */
.cyber-btn {
    position: relative;
    padding: 10px 20px;
    font-family: var(--font-heading);
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    cursor: pointer;
    border: none;
    border-radius: 8px;
    transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
    display: inline-flex;
    justify-content: center;
    align-items: center;
    white-space: nowrap;
}

.cyber-btn.primary {
    width: 100%;
    padding: 12px 24px;
    font-size: 0.95rem;
    background: linear-gradient(135deg, #00f0ff 0%, #0088ff 100%);
    color: #040710;
    box-shadow: 0 0 20px var(--cyan-glow);
}

.cyber-btn.primary:hover:not(:disabled) {
    transform: translateY(-2px);
    box-shadow: 0 0 30px rgba(0, 240, 255, 0.6);
    background: linear-gradient(135deg, #33f3ff 0%, #1a95ff 100%);
}

.cyber-btn.secondary {
    background: rgba(0, 240, 255, 0.1);
    color: var(--primary-cyan);
    border: 1px solid var(--primary-cyan);
}

.cyber-btn.secondary:hover:not(:disabled) {
    background: rgba(0, 240, 255, 0.25);
    box-shadow: 0 0 15px var(--cyan-glow);
}

.cyber-btn:active:not(:disabled) {
    transform: translateY(1px);
}

.cyber-btn:disabled {
    opacity: 0.4;
    cursor: not-allowed;
    box-shadow: none;
    transform: none;
}

/* Virtual Cyber D-Pad Controls for Mobile */
#dpad-controls {
    position: absolute;
    bottom: 16px;
    right: 16px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    z-index: 8;
    user-select: none;
    touch-action: none;
}

#dpad-controls.hidden {
    display: none !important;
}

.dpad-middle-row {
    display: flex;
    align-items: center;
    gap: 4px;
}

.dpad-center-stub {
    width: 46px;
    height: 46px;
    background: rgba(9, 14, 26, 0.6);
    border-radius: 6px;
}

.dpad-btn {
    width: 46px;
    height: 46px;
    background: rgba(9, 14, 26, 0.85);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border: 1px solid rgba(0, 240, 255, 0.35);
    border-radius: 8px;
    color: var(--primary-cyan);
    font-size: 1.1rem;
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.6);
    transition: background 0.15s ease, transform 0.1s ease, box-shadow 0.15s ease;
}

.dpad-btn:active, .dpad-btn.active {
    background: rgba(0, 240, 255, 0.4);
    color: #ffffff;
    box-shadow: 0 0 18px var(--primary-cyan);
    transform: scale(0.92);
}

/* ==========================================================================
   Mobile Responsive Layouts (Portrait & Landscape)
   ========================================================================== */

/* ==========================================================================
   Mobile Responsive Layouts (Portrait & Landscape Mobile Gamepad System)
   ========================================================================== */

/* Touch Device Base & Prevention */
@media (max-width: 1024px) {
    body {
        touch-action: none;
        -webkit-touch-callout: none;
        user-select: none;
        -webkit-user-select: none;
    }
}

/* Mobile Portrait Mode */
@media (max-width: 768px) and (orientation: portrait) {
    #game-container {
        width: 100vw;
        height: 100vh;
        height: 100dvh;
        max-height: 100dvh;
        border-radius: 0;
        border: none;
        box-shadow: none;
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        align-items: center;
        padding: 0;
        overflow: hidden;
    }

    /* Top HUD Bar */
    #hud {
        width: 100%;
        padding: 6px 8px;
        gap: 6px;
        z-index: 20;
        flex-wrap: nowrap;
        background: rgba(4, 7, 14, 0.98);
    }

    .hud-left-group {
        gap: 4px;
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }

    .hud-left-group::-webkit-scrollbar {
        display: none;
    }

    .hud-badge {
        padding: 3px 6px;
        gap: 4px;
        border-radius: 6px;
        white-space: nowrap;
    }

    .hud-label {
        font-size: 0.55rem;
        letter-spacing: 0.5px;
    }

    .hud-value {
        font-size: 0.8rem;
    }

    .threat-value {
        font-size: 0.75rem;
    }

    /* Canvas Viewport */
    #game-viewport {
        position: relative;
        width: 100vw;
        flex: 1;
        display: flex;
        justify-content: center;
        align-items: center;
        overflow: hidden;
    }

    #game-canvas {
        width: 100vw;
        height: auto;
        max-height: 100%;
        aspect-ratio: 16 / 9;
        object-fit: contain;
    }

    /* Mode 3 Emotional Question Banner */
    #emotional-question-hud {
        top: 10px;
        left: 8px;
        right: 8px;
    }

    .eq-badge {
        padding: 6px 12px;
        max-width: 95%;
    }

    .eq-label { font-size: 0.55rem; }
    .eq-value { font-size: 0.95rem; margin-bottom: 4px; }
    .eq-answer-pill { padding: 2px 6px; font-size: 0.75rem; }

    /* Dedicated Mobile Arcade Control Deck (Portrait Mode) */
    #dpad-controls {
        position: absolute;
        bottom: 16px;
        left: 16px;
        right: auto;
        margin: 0;
        z-index: 25;
        gap: 4px;
    }

    .dpad-btn {
        width: 52px;
        height: 52px;
        font-size: 1.25rem;
        border-radius: 10px;
        background: rgba(9, 14, 26, 0.9);
        border: 2px solid var(--primary-cyan);
        box-shadow: 0 4px 15px rgba(0, 0, 0, 0.7), 0 0 10px var(--cyan-glow);
    }

    .dpad-center-stub {
        width: 52px;
        height: 52px;
    }

    /* Attack Selector HUD position in Mobile Portrait */
    #attack-selector-hud {
        position: absolute;
        bottom: 16px;
        right: 16px;
        margin: 0;
        z-index: 25;
        flex-direction: column;
        align-items: flex-end;
        gap: 6px;
    }

    .attack-buttons-list {
        flex-direction: column;
        align-items: flex-end;
        gap: 6px;
    }

    .attack-btn {
        padding: 8px 14px;
        border-radius: 8px;
        min-width: 110px;
        justify-content: space-between;
        background: rgba(9, 14, 26, 0.92);
        border: 1px solid var(--att-color, #00f0ff);
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.6);
    }

    .attack-key-badge {
        display: none; /* Hide keyboard shortcut badges on mobile touch screen */
    }

    .attack-name {
        font-size: 0.8rem;
    }

    /* Wanted Targets Roster Footer Bar */
    #wanted-roster-hud {
        width: 100%;
        padding: 4px 8px;
        z-index: 15;
    }

    .wanted-targets-list {
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        padding-bottom: 2px;
    }

    .wanted-card {
        padding: 3px 6px;
        flex-shrink: 0;
    }

    .wanted-avatar-wrap {
        width: 22px;
        height: 22px;
    }

    .wanted-name {
        font-size: 0.7rem;
    }

    /* Overlay Card */
    .overlay-card {
        padding: 20px 16px;
        border-radius: 16px;
        width: 92vw;
        max-height: 85vh;
    }

    #overlay-title {
        font-size: 1.5rem;
        letter-spacing: 2px;
    }

    #overlay-message {
        font-size: 0.88rem;
        margin-bottom: 14px;
    }

    .audio-config-bar {
        padding: 6px 10px;
        flex-direction: column;
        align-items: stretch;
        gap: 8px;
    }

    .audio-toggle-group {
        justify-content: space-between;
    }

    .audio-sliders-group {
        flex-direction: column;
        align-items: stretch;
        gap: 6px;
    }

    .track-select {
        width: 100%;
    }
}

/* Mobile Landscape Mode (Dual Thumb Floating Controls) */
@media (max-height: 600px) and (orientation: landscape), (max-width: 900px) and (orientation: landscape) {
    #game-container {
        width: 100vw;
        height: 100vh;
        height: 100dvh;
        max-height: 100dvh;
        border-radius: 0;
        border: none;
        padding: 0;
    }

    #game-viewport {
        position: relative;
        width: 100vw;
        height: 100vh;
        height: 100dvh;
    }

    #game-canvas {
        height: 100vh;
        height: 100dvh;
        width: auto;
        max-width: 100vw;
        aspect-ratio: 16 / 9;
    }

    #hud {
        position: absolute;
        top: 4px;
        left: 8px;
        right: 8px;
        width: auto;
        padding: 4px 8px;
        background: rgba(4, 7, 14, 0.88);
        border-radius: 8px;
        z-index: 20;
    }

    .hud-badge {
        padding: 3px 6px;
        gap: 4px;
    }

    .hud-label { font-size: 0.5rem; }
    .hud-value { font-size: 0.75rem; }

    /* Left Thumb D-Pad */
    #dpad-controls {
        position: absolute;
        bottom: 12px;
        left: 16px;
        right: auto;
        gap: 3px;
        z-index: 25;
        margin: 0;
    }

    .dpad-btn {
        width: 44px;
        height: 44px;
        font-size: 1.1rem;
        border-radius: 8px;
        background: rgba(9, 14, 26, 0.88);
        border: 1px solid var(--primary-cyan);
    }

    .dpad-center-stub {
        width: 44px;
        height: 44px;
    }

    /* Right Thumb Attack Buttons */
    #attack-selector-hud {
        position: absolute;
        bottom: 12px;
        right: 16px;
        margin: 0;
        z-index: 25;
        flex-direction: column;
        align-items: flex-end;
        gap: 4px;
    }

    .attack-buttons-list {
        flex-direction: column;
        align-items: flex-end;
        gap: 4px;
    }

    .attack-btn {
        padding: 5px 10px;
        border-radius: 6px;
        background: rgba(9, 14, 26, 0.88);
    }

    .attack-key-badge {
        display: none;
    }

    .attack-name {
        font-size: 0.75rem;
    }

    /* Wanted Target Footer in Landscape */
    #wanted-roster-hud {
        position: absolute;
        bottom: 4px;
        left: 50%;
        transform: translateX(-50%);
        width: auto;
        max-width: 50vw;
        padding: 2px 8px;
        border-radius: 8px;
        background: rgba(4, 7, 14, 0.85);
        z-index: 15;
    }

    .wanted-targets-list {
        flex-wrap: nowrap;
        overflow-x: auto;
    }

    .overlay-card {
        padding: 14px 20px;
        max-height: 92vh;
        max-width: 420px;
    }

    #overlay-title {
        font-size: 1.3rem;
        margin-bottom: 2px;
    }

    #overlay-message {
        margin-bottom: 8px;
        font-size: 0.82rem;
    }

    .profile-card-group {
        gap: 8px;
    }

    .audio-config-bar {
        padding: 4px 8px;
        margin-bottom: 8px;
    }
}

/* ==========================================================================
   Cyberpunk Score Breakdown Styling
   ========================================================================== */

.overlay-card.has-breakdown {
    max-width: 580px;
    padding-bottom: 24px;
}

/* Sticky Replay Action Bar & Top Replay Bar for Seamless UX */
.top-replay-header {
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 8px;
    padding: 10px 14px;
    background: rgba(0, 240, 255, 0.08);
    border: 1px solid rgba(0, 240, 255, 0.3);
    border-radius: 10px;
    box-shadow: 0 0 20px rgba(0, 240, 255, 0.15);
}

.top-replay-btn {
    width: 100%;
    max-width: 340px;
    justify-content: center;
    font-size: 0.95rem;
    font-weight: 800;
    padding: 12px 24px;
    letter-spacing: 1.5px;
    box-shadow: 0 0 25px rgba(0, 240, 255, 0.4);
}

.overlay-card.has-breakdown #start-btn {
    position: sticky;
    bottom: -1px;
    z-index: 30;
    width: 100%;
    max-width: 340px;
    margin-top: 14px;
    padding: 12px 24px;
    font-size: 0.95rem;
    font-weight: 800;
    letter-spacing: 1.5px;
    box-shadow: 0 -8px 25px rgba(4, 7, 14, 0.95), 0 0 25px rgba(0, 255, 136, 0.5);
    background: linear-gradient(135deg, rgba(0, 255, 136, 0.95), rgba(0, 200, 100, 0.95));
}

#score-breakdown-container {
    width: 100%;
    margin-bottom: 20px;
    display: flex;
    flex-direction: column;
    gap: 14px;
    animation: cardAppear 0.4s ease-out;
}

#score-breakdown-container.hidden {
    display: none !important;
}

.score-formula-badge {
    background: rgba(0, 240, 255, 0.06);
    border: 1px dashed rgba(0, 240, 255, 0.35);
    border-radius: 10px;
    padding: 10px 14px;
    text-align: center;
}

.formula-title {
    font-family: var(--font-heading);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 2px;
    color: var(--primary-cyan);
    text-transform: uppercase;
    margin-bottom: 4px;
}

.formula-desc {
    font-size: 0.85rem;
    color: #e2e8f0;
    font-weight: 600;
}

.breakdown-table-wrapper {
    width: 100%;
    overflow-x: auto;
    border-radius: 10px;
    border: 1px solid rgba(0, 240, 255, 0.2);
    background: rgba(4, 7, 14, 0.75);
    box-shadow: inset 0 0 15px rgba(0, 0, 0, 0.6);
}

.cyber-breakdown-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.88rem;
    text-align: center;
}

.cyber-breakdown-table th {
    font-family: var(--font-heading);
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 1px;
    color: var(--primary-cyan);
    background: rgba(0, 240, 255, 0.12);
    padding: 10px 8px;
    border-bottom: 1px solid rgba(0, 240, 255, 0.3);
    text-transform: uppercase;
}

.cyber-breakdown-table td {
    padding: 9px 8px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
    color: #cbd5e1;
    font-weight: 600;
}

.cyber-breakdown-table tr:nth-child(even) td {
    background: rgba(255, 255, 255, 0.02);
}

.cyber-breakdown-table tr.partial-row td {
    background: rgba(255, 0, 127, 0.08);
    color: #ff80bf;
}

.badge-tag {
    display: inline-block;
    font-size: 0.65rem;
    padding: 2px 6px;
    border-radius: 4px;
    background: rgba(255, 0, 127, 0.25);
    color: #ff80bf;
    border: 1px solid rgba(255, 0, 127, 0.4);
    margin-left: 4px;
}

.cyan-text {
    color: var(--primary-cyan);
    font-family: var(--font-heading);
}

.gold-text {
    color: var(--gold-accent);
    font-family: var(--font-heading);
}

.pink-text {
    color: var(--secondary-pink);
    font-family: var(--font-heading);
}

.green-text {
    color: var(--snake-green);
    font-family: var(--font-heading);
    text-shadow: 0 0 10px var(--green-glow);
}

.score-summary-card {
    background: rgba(9, 14, 26, 0.9);
    border: 1px solid var(--card-border);
    border-radius: 10px;
    padding: 12px 16px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.4);
}

.summary-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 0.9rem;
    color: #94a3b8;
}

.summary-row strong {
    font-size: 1.05rem;
}

.summary-row.highlight {
    padding-top: 6px;
    border-top: 1px solid rgba(0, 240, 255, 0.25);
    font-weight: 700;
    color: #ffffff;
}

.summary-row.highlight strong {
    font-size: 1.3rem;
}

/* ==========================================================================
   Mode 3: Emotional Question HUD Banner
   ========================================================================== */
#emotional-question-hud {
    position: absolute;
    top: 54px;
    left: 20px;
    right: 20px;
    z-index: 10;
    pointer-events: none;
    display: flex;
    justify-content: center;
    align-items: center;
}

.eq-badge {
    background: rgba(18, 10, 36, 0.85);
    border: 1px solid rgba(180, 0, 255, 0.6);
    box-shadow: 0 0 16px rgba(180, 0, 255, 0.35);
    border-radius: 8px;
    padding: 8px 18px;
    display: flex;
    flex-direction: column;
    align-items: center;
    max-width: 80%;
    text-align: center;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

.eq-label {
    font-family: 'Orbitron', sans-serif;
    font-size: 0.65rem;
    font-weight: 800;
    color: #d8b4fe;
    letter-spacing: 2px;
    margin-bottom: 2px;
}

.eq-value {
    font-family: 'Rajdhani', sans-serif;
    font-size: 1.15rem;
    font-weight: 700;
    color: #ffffff;
    text-shadow: 0 0 10px rgba(216, 180, 254, 0.8);
    margin-bottom: 6px;
}

.eq-answers-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: center;
    align-items: center;
    margin-top: 4px;
}

.eq-answer-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: rgba(10, 15, 30, 0.9);
    border: 1px solid rgba(0, 240, 255, 0.5);
    border-radius: 6px;
    padding: 3px 10px;
    font-family: 'Rajdhani', sans-serif;
    font-size: 0.9rem;
    color: #ffffff;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.5);
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.eq-badge-letter {
    font-family: 'Orbitron', sans-serif;
    font-size: 0.75rem;
    font-weight: 900;
    padding: 1px 6px;
    border-radius: 4px;
    color: #000000;
    background: var(--pill-color, #00f0ff);
    box-shadow: 0 0 8px var(--pill-color, #00f0ff);
}

.eq-answer-text {
    font-weight: 600;
    color: #f1f5f9;
}

.eq-answer-pts {
    font-family: 'Orbitron', sans-serif;
    font-size: 0.75rem;
    font-weight: 700;
    color: #38bdf8;
}

/* Criminal Punishment & Capture Log Summary Section */
.criminal-log-section {
    width: 100%;
    margin-bottom: 12px;
    background: rgba(8, 12, 22, 0.8);
    border: 1px solid rgba(0, 240, 255, 0.3);
    border-radius: 8px;
    padding: 10px 12px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.5), inset 0 0 10px rgba(0, 240, 255, 0.05);
}

.criminal-log-title {
    font-family: var(--font-heading);
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 1.5px;
    color: var(--primary-cyan);
    text-shadow: 0 0 8px var(--cyan-glow);
    margin-bottom: 8px;
    text-align: left;
}

.criminal-log-grid {
    display: flex;
    flex-direction: column;
    gap: 6px;
    max-height: 180px;
    overflow-y: auto;
    padding-right: 4px;
}

.criminal-log-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: rgba(15, 23, 38, 0.9);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 6px;
    padding: 4px 10px;
    gap: 10px;
}

.criminal-log-avatar-wrap {
    width: 28px;
    height: 28px;
    border-radius: 4px;
    overflow: hidden;
    background: #000;
    flex-shrink: 0;
    border: 1px solid rgba(255, 255, 255, 0.2);
}

.criminal-log-avatar {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.criminal-log-info {
    display: flex;
    flex-direction: column;
    flex: 1;
    line-height: 1.1;
    text-align: left;
}

.criminal-log-name {
    font-family: var(--font-body);
    font-size: 0.8rem;
    font-weight: 700;
    color: #ffffff;
}

.criminal-log-action {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 0.7rem;
    font-weight: 700;
    color: var(--action-color, #00f0ff);
}

.criminal-log-payout {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    line-height: 1.1;
}

.payout-score {
    font-family: var(--font-heading);
    font-size: 0.8rem;
    font-weight: 800;
    color: var(--snake-green);
    text-shadow: 0 0 6px var(--green-glow);
}

.payout-base {
    font-size: 0.65rem;
    color: #888;
}

.no-captures-badge {
    font-family: var(--font-body);
    font-size: 0.75rem;
    color: #64748b;
    padding: 6px 0;
}

/* ==========================================================================
   Hunt Story Slideshow Carousel & Compact Log
   ========================================================================== */
.hunt-slideshow-section {
    width: 100%;
    margin-bottom: 14px;
    background: rgba(8, 12, 24, 0.95);
    border: 1px solid var(--primary-cyan);
    border-radius: 10px;
    padding: 10px 14px;
    box-shadow: 0 0 20px rgba(0, 240, 255, 0.25), inset 0 0 15px rgba(0, 240, 255, 0.08);
}

.slideshow-header-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid rgba(0, 240, 255, 0.25);
    padding-bottom: 8px;
    margin-bottom: 10px;
    flex-wrap: wrap;
    gap: 8px;
}

.slideshow-title {
    display: flex;
    align-items: center;
    gap: 6px;
    font-family: var(--font-heading);
    font-size: 0.75rem;
    font-weight: 900;
    letter-spacing: 1.5px;
    color: var(--primary-cyan);
    text-shadow: 0 0 10px var(--cyan-glow);
}

.pulse-icon {
    font-size: 0.9rem;
    animation: pulseGlow 1.5s infinite alternate;
}

@keyframes pulseGlow {
    from { transform: scale(1); opacity: 0.8; }
    to { transform: scale(1.15); opacity: 1; }
}

.slideshow-controls {
    display: flex;
    gap: 6px;
    align-items: center;
}

.slideshow-controls .cyber-btn {
    padding: 4px 10px;
    font-size: 0.7rem;
    border-radius: 6px;
}

.slideshow-controls .nav-btn {
    background: rgba(0, 240, 255, 0.12);
    border: 1px solid rgba(0, 240, 255, 0.4);
    color: #ffffff;
}

.slideshow-controls .nav-btn:hover {
    background: rgba(0, 240, 255, 0.3);
    border-color: var(--primary-cyan);
    box-shadow: 0 0 10px var(--cyan-glow);
}

.slideshow-controls .pause-btn {
    background: linear-gradient(135deg, rgba(255, 184, 0, 0.2), rgba(255, 0, 85, 0.2));
    border: 1px solid #ffb800;
    color: #ffb800;
    box-shadow: 0 0 8px rgba(255, 184, 0, 0.3);
}

.slideshow-controls .pause-btn:hover {
    background: linear-gradient(135deg, rgba(255, 184, 0, 0.4), rgba(255, 0, 85, 0.4));
    box-shadow: 0 0 14px #ffb800;
}

.slideshow-viewport {
    position: relative;
    width: 100%;
    min-height: 160px;
    overflow: hidden;
}

.slideshow-slide {
    display: none;
    width: 100%;
    animation: fadeInSlide 0.35s ease-in-out forwards;
}

.slideshow-slide.active {
    display: block;
}

@keyframes fadeInSlide {
    from { opacity: 0; transform: translateY(6px); }
    to { opacity: 1; transform: translateY(0); }
}

.slideshow-footer-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 10px;
    padding-top: 6px;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.slideshow-dots-row {
    display: flex;
    gap: 6px;
    align-items: center;
}

.slide-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.25);
    cursor: pointer;
    transition: all 0.2s ease;
}

.slide-dot.active, .slide-dot:hover {
    background: var(--primary-cyan);
    box-shadow: 0 0 8px var(--cyan-glow);
    transform: scale(1.3);
}

.slideshow-counter-tag {
    font-family: var(--font-heading);
    font-size: 0.65rem;
    font-weight: 700;
    color: #94a3b8;
    letter-spacing: 1px;
}

.log-toggle-wrap {
    width: 100%;
    margin-bottom: 10px;
    display: flex;
    justify-content: center;
}

.log-toggle-btn {
    font-size: 0.72rem;
    padding: 6px 14px;
    background: rgba(15, 23, 42, 0.8);
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: #94a3b8;
}

.log-toggle-btn:hover {
    background: rgba(15, 23, 42, 0.95);
    border-color: var(--primary-cyan);
    color: #ffffff;
}

.dossier-toggle-wrap {
    width: 100%;
    margin-bottom: 10px;
    display: flex;
    justify-content: center;
}

.story-toggle-btn {
    font-size: 0.78rem;
    padding: 8px 16px;
    background: linear-gradient(135deg, rgba(0, 240, 255, 0.15), rgba(170, 0, 255, 0.2));
    border: 1px solid rgba(0, 240, 255, 0.4);
    color: var(--primary-cyan);
    box-shadow: 0 0 12px rgba(0, 240, 255, 0.2);
}

.story-toggle-btn:hover {
    background: linear-gradient(135deg, rgba(0, 240, 255, 0.3), rgba(170, 0, 255, 0.4));
    border-color: var(--primary-cyan);
    box-shadow: 0 0 16px var(--cyan-glow);
}

.full-dossiers-container {
    display: flex;
    flex-direction: column;
    gap: 12px;
    width: 100%;
    margin-bottom: 14px;
    max-height: 280px;
    overflow-y: auto;
    padding-right: 6px;
}

.full-dossiers-container.hidden {
    display: none;
}

.dossier-story-card {
    background: rgba(10, 15, 28, 0.95);
    border: 1px solid rgba(0, 240, 255, 0.35);
    border-radius: 10px;
    padding: 10px 14px;
    box-shadow: 0 4px 18px rgba(0, 0, 0, 0.6), inset 0 0 12px rgba(0, 240, 255, 0.05);
    text-align: left;
}

.dossier-header-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid rgba(0, 240, 255, 0.2);
    padding-bottom: 6px;
    margin-bottom: 8px;
}

.dossier-id {
    font-family: var(--font-heading);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 1.5px;
    color: var(--primary-cyan);
    text-shadow: 0 0 8px var(--cyan-glow);
}

.dossier-badge-row {
    display: flex;
    gap: 4px;
}

.wanted-badge.conviction {
    background: rgba(255, 184, 0, 0.2);
    color: #ffb800;
    border: 1px solid #ffb800;
}

.dossier-main-row {
    display: flex;
    gap: 12px;
    align-items: flex-start;
}

.dossier-portrait-box {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    flex-shrink: 0;
}

.dossier-portrait-img {
    width: 60px;
    height: 60px;
    border-radius: 8px;
    object-fit: cover;
    border: 2px solid var(--primary-cyan);
    box-shadow: 0 0 10px var(--cyan-glow);
    background: #000;
}

.dossier-bounty-tag {
    font-family: var(--font-heading);
    font-size: 0.68rem;
    font-weight: 800;
    color: var(--snake-green);
    background: rgba(0, 255, 136, 0.12);
    border: 1px solid var(--snake-green);
    border-radius: 4px;
    padding: 2px 6px;
    white-space: nowrap;
}

.dossier-text-details {
    display: flex;
    flex-direction: column;
    gap: 6px;
    flex: 1;
}

.dossier-target-name {
    font-family: var(--font-body);
    font-size: 1.05rem;
    font-weight: 800;
    color: #ffffff;
    margin: 0;
    letter-spacing: 0.5px;
}

.dossier-narrative-box {
    background: rgba(6, 10, 20, 0.85);
    border-radius: 6px;
    padding: 6px 10px;
    border-left: 3px solid #00f0ff;
}

.dossier-narrative-box.incident-box {
    border-left-color: #ffb800;
}

.dossier-narrative-box.hunt-box {
    border-left-color: var(--action-color, #00f0ff);
}

.dossier-narrative-box.confession-box {
    border-left-color: #ff0077;
    background: rgba(255, 0, 119, 0.06);
}

.confession-text {
    font-style: italic;
    color: #ffb3d9;
    text-shadow: 0 0 6px rgba(255, 0, 119, 0.3);
}

.dossier-box-label {
    font-family: var(--font-heading);
    font-size: 0.62rem;
    font-weight: 800;
    letter-spacing: 1px;
    color: #94a3b8;
    margin-bottom: 3px;
}

.dossier-narrative-box.incident-box .dossier-box-label {
    color: #ffb800;
}

.dossier-box-content {
    font-family: var(--font-body);
    font-size: 0.82rem;
    color: #e2e8f0;
    line-height: 1.35;
}

.action-badge {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    font-size: 0.72rem;
    font-weight: 800;
    padding: 1px 6px;
    border-radius: 4px;
}

/* ==========================================================================
   Audio Configuration Settings Panel
   ========================================================================== */
.audio-config-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: rgba(10, 16, 32, 0.85);
    border: 1px solid rgba(0, 240, 255, 0.3);
    border-radius: 8px;
    padding: 8px 12px;
    margin-bottom: 12px;
    gap: 12px;
    flex-wrap: wrap;
    box-shadow: 0 0 15px rgba(0, 240, 255, 0.1);
}

.audio-toggle-group {
    display: flex;
    gap: 8px;
}

.audio-btn {
    padding: 4px 10px;
    font-size: 0.7rem;
    font-weight: 700;
    border-radius: 6px;
    background: rgba(0, 240, 255, 0.12);
    border: 1px solid rgba(0, 240, 255, 0.4);
    color: #ffffff;
    cursor: pointer;
    transition: all 0.2s ease;
}

.audio-btn:hover {
    background: rgba(0, 240, 255, 0.3);
    border-color: var(--primary-cyan);
    box-shadow: 0 0 10px var(--cyan-glow);
}

.audio-btn.off {
    background: rgba(255, 0, 85, 0.15);
    border-color: #ff0055;
    color: #ff4d7d;
}

.audio-btn.off:hover {
    background: rgba(255, 0, 85, 0.3);
    box-shadow: 0 0 10px rgba(255, 0, 85, 0.5);
}

.audio-sliders-group {
    display: flex;
    gap: 14px;
    align-items: center;
}

.slider-row {
    display: flex;
    align-items: center;
    gap: 6px;
}

.slider-label {
    font-family: var(--font-heading);
    font-size: 0.65rem;
    font-weight: 700;
    color: var(--primary-cyan);
    letter-spacing: 1px;
}

.slider-row input[type="range"] {
    width: 60px;
    accent-color: var(--primary-cyan);
    cursor: pointer;
}

.track-select {
    font-family: var(--font-body);
    font-size: 0.68rem;
    font-weight: 700;
    padding: 3px 8px;
    background: rgba(15, 23, 42, 0.9);
    border: 1px solid rgba(0, 240, 255, 0.4);
    border-radius: 6px;
    color: var(--primary-cyan);
    cursor: pointer;
    outline: none;
    transition: all 0.2s ease;
}

.track-select:hover, .track-select:focus {
    border-color: var(--primary-cyan);
    box-shadow: 0 0 8px var(--cyan-glow);
}

.track-select option {
    background: #0b1120;
    color: #ffffff;
}

/* Gemini API Configuration Bar */
.gemini-config-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-top: 10px;
    padding: 8px 14px;
    background: rgba(15, 23, 42, 0.6);
    border: 1px dashed rgba(0, 240, 255, 0.3);
    border-radius: 8px;
    width: 100%;
}

.config-bar-label {
    font-family: var(--font-heading);
    font-size: 0.65rem;
    font-weight: 700;
    color: var(--primary-cyan);
    letter-spacing: 1px;
}

.badge-status {
    font-family: var(--font-heading);
    font-size: 0.65rem;
    font-weight: 800;
    padding: 4px 8px;
    border-radius: 4px;
    letter-spacing: 0.5px;
    background: rgba(0, 240, 255, 0.15);
    border: 1px solid var(--primary-cyan);
    color: var(--primary-cyan);
}

.badge-status.active {
    background: rgba(0, 255, 136, 0.2);
    border-color: #00ff88;
    color: #00ff88;
    box-shadow: 0 0 10px rgba(0, 255, 136, 0.4);
}

/* Emotional Quest HUD Banner (Mode 3 Only) */
#emotional-question-hud {
    position: absolute;
    top: 10px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 8;
    pointer-events: auto;
    max-width: 600px;
    width: 90%;
}

.eq-badge {
    background: rgba(18, 10, 30, 0.92);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid rgba(170, 0, 255, 0.5);
    border-radius: 8px;
    padding: 8px 14px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.7), 0 0 15px rgba(170, 0, 255, 0.3);
}

.eq-label {
    font-family: var(--font-heading);
    font-size: 0.65rem;
    font-weight: 800;
    letter-spacing: 2px;
    color: #aa00ff;
    text-shadow: 0 0 8px rgba(170, 0, 255, 0.8);
}

.eq-value {
    font-family: var(--font-heading);
    font-size: 0.9rem;
    font-weight: 700;
    color: #ffffff;
    text-align: center;
}

.eq-answers-list {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: center;
    width: 100%;
}

/* 3D WebGL Canvas Styling */
#three-canvas {
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    border-radius: 4px;
    display: block;
}

#three-canvas.hidden {
    display: none !important;
}

/* Render Mode Toggle HUD Button */
.render-mode-badge {
    padding: 2px 4px !important;
}

.hud-toggle-btn {
    background: linear-gradient(135deg, rgba(0, 240, 255, 0.2), rgba(170, 0, 255, 0.2));
    border: 1px solid var(--primary-cyan);
    color: #ffffff;
    font-family: var(--font-heading);
    font-size: 0.7rem;
    font-weight: 800;
    padding: 4px 8px;
    border-radius: 4px;
    cursor: pointer;
    transition: all 0.2s ease;
    box-shadow: 0 0 10px rgba(0, 240, 255, 0.2);
}

.hud-toggle-btn:hover {
    background: linear-gradient(135deg, rgba(0, 240, 255, 0.4), rgba(170, 0, 255, 0.4));
    box-shadow: 0 0 15px rgba(0, 240, 255, 0.5);
    transform: scale(1.05);
}

.hud-toggle-btn.mode-3d {
    background: linear-gradient(135deg, rgba(255, 0, 85, 0.3), rgba(170, 0, 255, 0.3));
    border-color: #ff0055;
    box-shadow: 0 0 12px rgba(255, 0, 85, 0.4);
}





 
 . s t r e a k - b a d g e   {  
         p o s i t i o n :   r e l a t i v e ;  
         b o r d e r :   1 p x   s o l i d   # f f 3 3 6 6 ;  
         b a c k g r o u n d :   r g b a ( 2 5 5 ,   5 1 ,   1 0 2 ,   0 . 1 ) ;  
         b o x - s h a d o w :   0   0   1 0 p x   r g b a ( 2 5 5 ,   5 1 ,   1 0 2 ,   0 . 2 ) ;  
         o v e r f l o w :   h i d d e n ;  
 }  
 . s t r e a k - b a d g e . a c t i v e - s t r e a k   {  
         a n i m a t i o n :   p u l s e - s t r e a k   1 s   i n f i n i t e   a l t e r n a t e ;  
 }  
 @ k e y f r a m e s   p u l s e - s t r e a k   {  
         f r o m   {   b o x - s h a d o w :   0   0   5 p x   r g b a ( 2 5 5 ,   5 1 ,   1 0 2 ,   0 . 3 ) ;   }  
         t o   {   b o x - s h a d o w :   0   0   1 5 p x   r g b a ( 2 5 5 ,   5 1 ,   1 0 2 ,   0 . 8 ) ;   }  
 }  
 . s t r e a k - p r o g r e s s - c o n t a i n e r   {  
         p o s i t i o n :   a b s o l u t e ;  
         b o t t o m :   0 ;  
         l e f t :   0 ;  
         w i d t h :   1 0 0 % ;  
         h e i g h t :   4 p x ;  
         b a c k g r o u n d :   r g b a ( 0 ,   0 ,   0 ,   0 . 5 ) ;  
 }  
 . s t r e a k - p r o g r e s s   {  
         h e i g h t :   1 0 0 % ;  
         w i d t h :   1 0 0 % ;  
         b a c k g r o u n d :   # f f 3 3 6 6 ;  
         t r a n s i t i o n :   w i d t h   0 . 1 s   l i n e a r ;  
 }  
  
 
 / *   G a m e   J u i c e   E f f e c t s   * / 
 . s h a k e   { 
         a n i m a t i o n :   s c r e e n - s h a k e   0 . 2 s   c u b i c - b e z i e r ( . 3 6 , . 0 7 , . 1 9 , . 9 7 )   b o t h ; 
         t r a n s f o r m - o r i g i n :   c e n t e r   c e n t e r ; 
 } 
 . s h a k e - h e a v y   { 
         a n i m a t i o n :   s c r e e n - s h a k e - h e a v y   0 . 4 s   c u b i c - b e z i e r ( . 3 6 , . 0 7 , . 1 9 , . 9 7 )   b o t h ; 
         t r a n s f o r m - o r i g i n :   c e n t e r   c e n t e r ; 
 } 
 @ k e y f r a m e s   s c r e e n - s h a k e   { 
         0 %   {   t r a n s f o r m :   t r a n s l a t e ( 1 p x ,   1 p x )   r o t a t e ( 0 d e g ) ;   } 
         2 0 %   {   t r a n s f o r m :   t r a n s l a t e ( - 2 p x ,   - 1 p x )   r o t a t e ( - 1 d e g ) ;   } 
         4 0 %   {   t r a n s f o r m :   t r a n s l a t e ( - 1 p x ,   2 p x )   r o t a t e ( 1 d e g ) ;   } 
         6 0 %   {   t r a n s f o r m :   t r a n s l a t e ( 2 p x ,   1 p x )   r o t a t e ( 0 d e g ) ;   } 
         8 0 %   {   t r a n s f o r m :   t r a n s l a t e ( 1 p x ,   - 1 p x )   r o t a t e ( 1 d e g ) ;   } 
         1 0 0 %   {   t r a n s f o r m :   t r a n s l a t e ( 0 ,   0 )   r o t a t e ( 0 d e g ) ;   } 
 } 
 @ k e y f r a m e s   s c r e e n - s h a k e - h e a v y   { 
         0 %   {   t r a n s f o r m :   t r a n s l a t e ( 3 p x ,   3 p x )   r o t a t e ( 0 d e g ) ;   } 
         2 0 %   {   t r a n s f o r m :   t r a n s l a t e ( - 5 p x ,   - 3 p x )   r o t a t e ( - 2 d e g ) ;   } 
         4 0 %   {   t r a n s f o r m :   t r a n s l a t e ( - 3 p x ,   5 p x )   r o t a t e ( 2 d e g ) ;   } 
         6 0 %   {   t r a n s f o r m :   t r a n s l a t e ( 5 p x ,   2 p x )   r o t a t e ( 0 d e g ) ;   } 
         8 0 %   {   t r a n s f o r m :   t r a n s l a t e ( 2 p x ,   - 5 p x )   r o t a t e ( 2 d e g ) ;   } 
         1 0 0 %   {   t r a n s f o r m :   t r a n s l a t e ( 0 ,   0 )   r o t a t e ( 0 d e g ) ;   } 
 } 
  
 