.modal-overlay {
    position: absolute; inset: 0; z-index: 100;
    background: rgba(5, 5, 8, 0.95);
    backdrop-filter: blur(10px);
    display: flex; flex-direction: column;
    align-items: center; justify-content: center;
    padding: 12px; overflow-y: auto;
}
.modal-overlay.hidden { display: none; }

/* Blackjack */
.bj-table {
    background: radial-gradient(ellipse at center, #16883f 0%, #064e3b 100%);
    border: 3px solid #b8860b; border-radius: 16px;
    box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
}
.bj-hand { display: flex; align-items: center; justify-content: center; min-height: 82px; padding: 0 20px; }
.bj-card {
    width: 52px; height: 74px; border-radius: 7px;
    background: #fffdf5; border: 1px solid #bbb;
    display: flex; flex-direction: column; justify-content: space-between;
    padding: 3px 5px; font-weight: 900; font-size: 15px; line-height: 1;
    box-shadow: 0 3px 8px rgba(0,0,0,0.6);
    animation: cardIn 0.35s ease-out;
    flex-shrink: 0; margin-left: -20px;
}
.bj-card:first-child { margin-left: 0; }
.bj-card.red { color: #c0262d; }
.bj-card.black { color: #111; }
.bj-card .pip { align-self: center; font-size: 26px; }
.bj-card .rb { align-self: flex-end; transform: rotate(180deg); }
.bj-card.back {
    background: repeating-linear-gradient(45deg, #7f1d1d, #7f1d1d 5px, #b91c1c 5px, #b91c1c 10px);
    border: 2px solid #fde68a;
}
@keyframes cardIn { from { opacity: 0; transform: translateY(-30px) rotate(-8deg); } to { opacity: 1; transform: none; } }
.bj-chip {
    width: 44px; height: 44px; border-radius: 50%;
    border: 3px dashed rgba(255,255,255,0.8);
    font-weight: 900; font-size: 11px; color: #fff;
    display: flex; align-items: center; justify-content: center;
    box-shadow: 0 3px 6px rgba(0,0,0,0.6);
}
.bj-chip:active { transform: scale(0.92); }
.bj-btn { padding: 10px 0; border-radius: 10px; font-weight: 900; font-size: 11px; text-transform: uppercase; letter-spacing: 0.5px; }

/* Map styles */
.map-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; width: 100%; max-width: 420px; }
.map-node {
    position: relative; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e06 100%);
    border: 2px solid #b8860b; border-radius: 12px; padding: 12px 8px;
    text-align: center; cursor: pointer; transition: all 0.2s;
    min-height: 90px; display: flex; flex-direction: column;
    align-items: center; justify-content: center; gap: 4px;
}
.map-node:active { transform: scale(0.96); }
.map-node .icon { font-size: 24px; }
.map-node .title { font-size: 10px; font-weight: 800; color: #fde68a; text-transform: uppercase; letter-spacing: 0.5px; }
.map-node .desc { font-size: 8px; color: #a08060; font-family: monospace; }
.map-node.locked { opacity: 0.5; pointer-events: none; }
.map-node.locked::after {
    content: '\f023'; font-family: 'Font Awesome 6 Free'; font-weight: 900;
    position: absolute; top: 4px; right: 6px; font-size: 12px; color: #ef4444;
}

/* Ponzi scheme cards */
.ponzi-card {
    background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1a 100%);
    border: 2px solid #6b21a8; border-radius: 12px; padding: 10px;
    cursor: pointer; transition: all 0.2s;
}
.ponzi-card:active { transform: scale(0.97); }
.ponzi-card.risky { border-color: #ef4444; }
.ponzi-card.safe { border-color: #22c55e; }
.ponzi-card.scam { border-color: #f59e0b; }

/* Mission list */
.mission-item {
    background: rgba(30, 20, 10, 0.9);
    border-left: 3px solid #b8860b;
    padding: 8px 10px; border-radius: 6px; margin-bottom: 6px;
    cursor: pointer; transition: all 0.2s;
}
.mission-item:active { transform: scale(0.98); }
.mission-item.completed { opacity: 0.5; border-left-color: #22c55e; }
.mission-item.locked { opacity: 0.4; pointer-events: none; border-left-color: #ef4444; }