/* Reset & base styles */
body {
    margin: 0;
    padding: 0;
    font-family: 'Segoe UI', 'Roboto', Arial, sans-serif;
    background: linear-gradient(135deg, #F7FFF7 0%, #B7F8DB 90%);
    color: #23272c;
    min-height: 100vh;
}

/* Responsive container */
.container {
    max-width: 480px;
    margin: 3rem auto 1rem auto;
    background: #ffffffcc;
    border-radius: 18px;
    box-shadow: 0 6px 24px 0 #0002;
    padding: 2.5rem 2rem 1.5rem 2rem;
}

h1 {
    text-align: center;
    color: #38a169;
    margin-bottom: 1.6rem;
}

#game-area {
    min-height: 220px;
}

footer {
    text-align: center;
    color: #888;
    font-size: 0.95em;
    margin-top: 2em;
}

button, .option-btn {
    background: linear-gradient(90deg, #38a169 70%, #68d391 100%);
    color: #fff;
    border: none;
    font-size: 1.15em;
    border-radius: 12px;
    padding: 0.8em 1.4em;
    margin: 0.5em 0;
    cursor: pointer;
    transition: background 0.13s;
    box-shadow: 0 2px 10px #0001;
}

button:hover, .option-btn:hover,
button:focus, .option-btn:focus {
    background: linear-gradient(90deg, #2f855a 70%, #38a169 100%);
    outline: none;
}

.option-btn {
    width: 100%;
    display: block;
    margin-bottom: 0.7em;
    letter-spacing: .5px;
    text-align: left;
}

.card {
    padding: 1rem 1.1rem 1.5rem 1.1rem;
    background: #f0fcf5;
    border-radius: 14px;
    box-shadow: 0 1px 6px #0001;
    margin-bottom: 1.2em;
}

.obstacle-title {
    color: #22543d;
    font-weight: bold;
}
.tip {
    margin-top: 1em;
    background: #ebf8ee;
    border-left: 5px solid #38a169;
    padding: 0.8em 1em;
    border-radius: 9px;
    font-size: 1em;
}

.progress {
    margin: 1em 0;
    color: #3a5248;
    font-size: .97em;
}

@media (max-width: 600px) {
    .container {
        margin: 1rem 0.5rem;
        padding: 1rem 0.7rem 1rem 0.7rem;
    }
}
