/* ═══════════════════════════════════════════════════════════════
   VOCABULARY — "Curious Play" Edition
   Palette: #f9f9ff bg · #47b8a1 teal · #ffcf5c yellow · pastels
   Font: Plus Jakarta Sans
   ═══════════════════════════════════════════════════════════════ */

/* ── Shell ────────────────────────────────────────────────────── */
.voc-shell {
    max-width: 640px;
    margin: 0 auto;
    padding: 1.5rem 1rem 3rem;
    font-family: var(--font-body, 'Plus Jakarta Sans', sans-serif);
    display: flex;
    flex-direction: column;
    gap: 1.1rem;
    position: relative;
    min-height: calc(100vh - 60px);
}

/* ── Header row ───────────────────────────────────────────────── */
.voc-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
}

.voc-category {
    font-size: .75rem;
    font-weight: 800;
    letter-spacing: .07em;
    text-transform: uppercase;
    background: var(--primary-light, #ffebcf);
    border: 1.5px solid rgba(143, 78, 0, .3);
    color: var(--primary-dark, #693700);
    border-radius: 999px;
    padding: .28rem .9rem;
}

.voc-streak {
    font-size: 1rem;
    font-weight: 800;
    color: var(--yellow-dark, #AE5600);
    background: var(--yellow-light, #fff2e1);
    border: 1.5px solid rgba(255, 207, 92, .4);
    border-radius: 999px;
    padding: .28rem .85rem;
}

.voc-round {
    font-size: .75rem;
    font-weight: 700;
    color: var(--ink-secondary, #544336);
    background: var(--surface-alt, #fff2e1);
    border: 1.5px solid rgba(143, 78, 0, .2);
    border-radius: 999px;
    padding: .28rem .85rem;
}

/* ── Progress ─────────────────────────────────────────────────── */
.voc-progress-wrap {
    display: flex;
    align-items: center;
    gap: .75rem;
}

.voc-progress-bar {
    flex: 1;
    height: 10px;
    background: var(--primary-light, #ffebcf);
    border-radius: 999px;
    overflow: hidden;
}

.voc-progress-fill {
    height: 100%;
    width: 0%;
    background: var(--primary-container, #fd9937);
    border-radius: 999px;
    transition: width .45s cubic-bezier(.4, 0, .2, 1);
}

.voc-progress-text {
    font-size: .72rem;
    font-weight: 700;
    color: var(--ink-muted, #887364);
    min-width: 28px;
    text-align: right;
}

/* ── Card ─────────────────────────────────────────────────────── */
.voc-card {
    background: #ffffff;
    border: 1.5px solid rgba(143, 78, 0, .12);
    border-radius: 40px;
    padding: 2.5rem 2rem 2rem;
    box-shadow: var(--shadow-md, 0 6px 24px rgba(143,78,0,.13));
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.25rem;
    transition: transform .25s cubic-bezier(.34, 1.56, .64, 1);
}

.voc-card.voc-flip {
    animation: voc-card-in .3s cubic-bezier(.34, 1.56, .64, 1);
}

@keyframes voc-card-in {
    0%   { transform: scale(.92) translateY(8px); opacity: 0; }
    100% { transform: scale(1)   translateY(0px); opacity: 1; }
}

/* ── Emoji display ────────────────────────────────────────────── */
.voc-emoji {
    font-size: clamp(5rem, 18vw, 9rem);
    line-height: 1;
    filter: drop-shadow(0 6px 20px rgba(143, 78, 0, .12));
}

/* ── Word display ─────────────────────────────────────────────── */
.voc-word {
    font-family: var(--font-display, 'Plus Jakarta Sans', sans-serif);
    font-size: clamp(2rem, 6vw, 3.5rem);
    font-weight: 800;
    color: var(--ink, #241a08);
    letter-spacing: -.02em;
}

/* ── Feedback line ────────────────────────────────────────────── */
.voc-feedback {
    font-size: .9rem;
    font-weight: 700;
    min-height: 1.4rem;
    text-align: center;
    transition: opacity .2s;
}

.voc-feedback--ok  { color: var(--primary, #8f4e00); }
.voc-feedback--err { color: #ba1a1a; }

/* ── Choice grid ──────────────────────────────────────────────── */
.voc-choices {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .7rem;
    width: 100%;
}

.voc-choice {
    border: 1.5px solid rgba(143, 78, 0, .15);
    border-radius: 20px;
    background: var(--surface-alt, #fff2e1);
    color: var(--ink, #241a08);
    font-family: var(--font-body, 'Plus Jakarta Sans', sans-serif);
    font-size: 1rem;
    font-weight: 700;
    padding: .85rem 1rem;
    cursor: pointer;
    transition: transform .18s cubic-bezier(.34, 1.56, .64, 1),
        box-shadow .18s, background .15s, border-color .15s;
    text-align: center;
}

.voc-choice:hover {
    transform: translateY(-3px);
    box-shadow: 0 6px 20px rgba(143, 78, 0, .18);
    background: var(--primary-light, #ffebcf);
    border-color: rgba(143, 78, 0, .4);
}

.voc-emoji-choice {
    font-size: 2.2rem;
    padding: .6rem;
    line-height: 1;
}

.voc-correct {
    background: rgba(143, 78, 0, .18) !important;
    border-color: var(--primary, #8f4e00) !important;
    transform: scale(1.06) !important;
}

.voc-wrong {
    background: rgba(186, 26, 26, .10) !important;
    border-color: rgba(186, 26, 26, .4) !important;
    animation: voc-shake .35s ease;
}

@keyframes voc-shake {
    0%, 100% { transform: translateX(0); }
    25%       { transform: translateX(-6px); }
    75%       { transform: translateX(6px); }
}

/* ── Type-it form ─────────────────────────────────────────────── */
.voc-type-form {
    display: flex;
    width: 100%;
    gap: .55rem;
}

.voc-input {
    flex: 1;
    border: 1.5px solid rgba(143, 78, 0, .25);
    border-radius: 999px;
    padding: .75rem 1.25rem;
    font-family: var(--font-display, 'Plus Jakarta Sans', sans-serif);
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--ink, #241a08);
    background: var(--surface-alt, #fff2e1);
    outline: none;
    transition: border-color .2s, box-shadow .2s;
}

.voc-input:focus {
    border-color: var(--primary, #8f4e00);
    box-shadow: 0 0 0 3px rgba(143, 78, 0, .15);
    background: #ffffff;
}

.voc-submit {
    border: none;
    border-radius: 999px;
    background: var(--primary, #8f4e00);
    color: #ffffff;
    -webkit-text-fill-color: #ffffff;
    font-size: 1.2rem;
    font-weight: 800;
    padding: .75rem 1.4rem;
    cursor: pointer;
    transition: transform .18s cubic-bezier(.34, 1.56, .64, 1), box-shadow .18s;
    box-shadow: 0 4px 14px rgba(143, 78, 0, .30);
}

.voc-submit:hover {
    transform: translateY(-2px) scale(1.05);
    box-shadow: 0 8px 22px rgba(143, 78, 0, .40);
}

/* ── Utility ──────────────────────────────────────────────────── */
.voc-hidden { display: none !important; }

/* ── Burst emojis (celebration) ──────────────────────────────── */
.voc-burst {
    position: absolute;
    font-size: 2rem;
    pointer-events: none;
    z-index: 99;
    animation: voc-burst-up .9s cubic-bezier(.25, .46, .45, .94) forwards;
}

@keyframes voc-burst-up {
    0%   { transform: translateY(0) scale(.5);    opacity: 1; }
    100% { transform: translateY(-120px) scale(1.2); opacity: 0; }
}
