/* Woordle — tokens en reset komen uit assets/common.css */

html { height: 100%; }

body {
    font-family: var(--font-b);
    color: var(--ink);
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    background-color: var(--bg-warm);
    background-image:
        radial-gradient(ellipse 80% 60% at 10% 0%,   #f3d4ff 0%, transparent 60%),
        radial-gradient(ellipse 60% 50% at 95% 15%,  #ffd6e7 0%, transparent 55%),
        radial-gradient(ellipse 70% 50% at 50% 100%, #d4f0ff 0%, transparent 60%);
    background-attachment: fixed;
}

.container {
    width: 100%;
    max-width: 520px;
    padding: 1rem 0.8rem 2rem;
    display: flex;
    flex-direction: column;
    align-items: center;
}

/* ── Header ── */
.woordle-header {
    position: relative;
    width: 100%;
    text-align: center;
    padding: 0.4rem 0 0.8rem;
}
.woordle-header h1 {
    font-family: var(--font-h);
    font-size: 1.8rem;
    font-weight: 800;
}
.subtitel {
    font-family: var(--font-h);
    font-size: 0.85rem;
    color: var(--muted);
}
.stats-knop {
    position: absolute;
    top: 8px; right: 4px;
    border: none;
    background: rgba(255,255,255,0.6);
    backdrop-filter: blur(8px);
    border-radius: 50%;
    width: 40px; height: 40px;
    font-size: 1.1rem;
    cursor: pointer;
    box-shadow: 0 2px 10px rgba(0,0,0,0.10);
    transition: transform 0.18s;
}
.stats-knop:hover { transform: scale(1.12); }

/* ── Melding ── */
.melding {
    min-height: 1.6rem;
    font-family: var(--font-h);
    font-weight: 800;
    font-size: 0.95rem;
    color: var(--ink);
    opacity: 0;
    transition: opacity 0.2s;
    margin-bottom: 0.3rem;
}
.melding.zichtbaar { opacity: 1; }

/* ── Bord ── */
.bord {
    display: grid;
    grid-template-rows: repeat(6, 1fr);
    gap: 6px;
    margin-bottom: 1.2rem;
}
.rij {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 6px;
}
.vak {
    width: 58px; height: 58px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-h);
    font-size: 1.7rem;
    font-weight: 800;
    text-transform: uppercase;
    border-radius: 12px;
    background: rgba(255,255,255,0.55);
    border: 2px solid rgba(192,84,252,0.22);
    backdrop-filter: blur(6px);
    transition: background 0.2s, border-color 0.2s, color 0.2s;
}
.vak.goed  { background: var(--c4); border-color: var(--c4); color: #fff; }
.vak.bijna { background: var(--c3); border-color: var(--c3); color: #fff; }
.vak.fout  { background: #9ca3af;   border-color: #9ca3af;   color: #fff; }
.vak.draai { animation: draai 0.45s ease; }
@keyframes draai {
    0%   { transform: rotateX(0); }
    50%  { transform: rotateX(90deg); }
    100% { transform: rotateX(0); }
}
.rij.schud { animation: schud 0.4s ease; }
@keyframes schud {
    0%, 100% { transform: translateX(0); }
    20%, 60% { transform: translateX(-6px); }
    40%, 80% { transform: translateX(6px); }
}

/* ── Toetsenbord ── */
.toetsenbord {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 7px;
    user-select: none;
    -webkit-user-select: none;
}
.toets-rij {
    display: flex;
    justify-content: center;
    gap: 5px;
}
.toets {
    flex: 1;
    max-width: 44px;
    height: 54px;
    border: none;
    border-radius: 10px;
    font-family: var(--font-h);
    font-size: 1rem;
    font-weight: 800;
    text-transform: uppercase;
    cursor: pointer;
    background: rgba(255,255,255,0.65);
    backdrop-filter: blur(6px);
    color: var(--ink);
    box-shadow: 0 2px 8px rgba(120,60,200,0.10);
    transition: background 0.15s, transform 0.1s;
}
.toets:active { transform: scale(0.92); }
.toets.breed { max-width: 70px; font-size: 0.72rem; }
.toets.goed  { background: var(--c4); color: #fff; }
.toets.bijna { background: var(--c3); color: #fff; }
.toets.fout  { background: #9ca3af;   color: #fff; }

/* ── Modals ── */
.woordle-modal {
    position: fixed; inset: 0;
    background: rgba(30,10,60,0.38);
    backdrop-filter: blur(10px);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
    animation: fadeIn 0.22s ease;
}
.woordle-modal.hidden { display: none; }
.woordle-modal-inhoud {
    position: relative;
    background: rgba(255,255,255,0.92);
    backdrop-filter: blur(20px);
    border-radius: 28px;
    border: 1px solid rgba(255,255,255,0.8);
    box-shadow: 0 20px 60px rgba(120,60,200,0.18);
    width: 90%; max-width: 400px;
    padding: 2rem 1.6rem;
    text-align: center;
    animation: floatIn 0.32s cubic-bezier(0.34,1.56,0.64,1);
}
.woordle-modal-inhoud h2 {
    font-family: var(--font-h);
    font-weight: 800;
    margin-bottom: 0.5rem;
}
.modal-sluit {
    position: absolute; top: 10px; right: 16px;
    background: transparent; border: none;
    font-size: 1.8rem; cursor: pointer;
    color: var(--muted); line-height: 1;
}
.einde-stats {
    display: flex;
    justify-content: center;
    gap: 14px;
    margin: 1.1rem 0;
    flex-wrap: wrap;
}
.einde-stats .stat {
    display: flex;
    flex-direction: column;
    min-width: 64px;
}
.einde-stats .stat strong {
    font-family: var(--font-h);
    font-size: 1.5rem;
    color: var(--ink);
}
.einde-stats .stat span {
    font-size: 0.72rem;
    color: var(--muted);
}
.volgend-woord {
    font-size: 0.88rem;
    color: var(--muted);
    margin-bottom: 1rem;
}
.einde-knoppen {
    display: flex;
    gap: 10px;
    justify-content: center;
    flex-wrap: wrap;
}
.deel-knop {
    padding: 12px 26px;
    border: none;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--c4), var(--c5));
    color: #fff;
    font-family: var(--font-h);
    font-size: 1rem;
    font-weight: 800;
    cursor: pointer;
    box-shadow: 0 4px 16px rgba(52,211,153,0.4);
    transition: transform 0.15s;
}
.deel-knop:hover { transform: scale(1.05); }
.oefen-knop {
    padding: 12px 26px;
    border: none;
    border-radius: 999px;
    background: rgba(240,232,255,0.9);
    color: var(--ink);
    font-family: var(--font-h);
    font-size: 1rem;
    font-weight: 800;
    cursor: pointer;
    box-shadow: 0 2px 10px rgba(0,0,0,0.08);
    transition: transform 0.15s;
}
.oefen-knop:hover { transform: scale(1.05); }

/* ── Responsive ── */
@media (max-width: 400px) {
    .vak { width: 52px; height: 52px; font-size: 1.5rem; }
    .toets { height: 50px; font-size: 0.9rem; }
}
