/* home.css — The home page: what the game is, screenshots and the
   classes; beside them the login (or the player's characters), the
   worlds and the top of the ranking. */

.about p { max-width: 68ch; }
.about p + p { margin-top: 0.7rem; }
.facts { margin: 1rem 0 0 1.2rem; display: grid; gap: 0.3rem; color: var(--text-muted); }
.facts li::marker { color: var(--gold); }

.panel-desc { color: var(--text-muted); margin-bottom: 1rem; max-width: 68ch; }

/* ===== SCREENSHOTS ===== */
.shots { display: grid; grid-template-columns: 1fr 1fr; gap: 0.9rem; }
.shot-wide { grid-column: 1 / -1; }
.shot img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; border: 1px solid var(--line-gold); }
.shot figcaption { margin-top: 0.4rem; color: var(--text-muted); font-size: 0.86rem; }

/* ===== CLASSES ===== */
.class-list { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; }
.class-row {
    display: grid;
    grid-template-columns: 76px minmax(0, 1fr);
    gap: 0.85rem;
    padding: 0.75rem;
    background: var(--well);
    border: 1px solid var(--line);
}
.class-portrait { width: 76px; height: 76px; }
/* The figure stands below the picture's middle: keep its feet in the frame. */
.class-portrait img { object-position: 50% 70%; }
.class-row h3 { font-family: var(--font-title); font-weight: 400; font-size: 1.2rem; color: var(--gold); }
.class-role { color: var(--text); font-size: 0.88rem; }
.class-weapons { display: flex; flex-wrap: wrap; gap: 0.3rem; margin: 0.35rem 0; }
.class-weapons span { padding: 0 0.4rem; font-size: 0.78rem; color: var(--text-muted); border: 1px solid var(--line-strong); }
.class-desc { color: var(--text-muted); font-size: 0.86rem; }

/* ===== SIDE BOXES ===== */
.side .panel { padding: 1.1rem; }
.side .panel-head { margin: -1.1rem -1.1rem 1rem; padding: 0.65rem 1.1rem; }
.side-note { color: var(--text-muted); font-size: 0.88rem; margin: 1rem 0 0.5rem; }
.side-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 0.5rem; margin-top: 0.75rem; }
.side-link { display: inline-block; margin-top: 0.75rem; font-size: 0.9rem; }

.quick-chars { list-style: none; display: grid; gap: 0.4rem; }
.quick-char {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr) auto;
    gap: 0.6rem;
    align-items: center;
    padding: 0.35rem;
    background: var(--well);
    border: 1px solid var(--line);
}
.quick-portrait { width: 44px; height: 44px; }
.quick-info { display: grid; min-width: 0; line-height: 1.35; }
.quick-name { color: var(--text-bright); font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.quick-meta { color: var(--text-dim); font-size: 0.8rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.panel-dev { border-color: rgba(227, 176, 76, 0.4); }
.dev-form { display: flex; gap: 0.5rem; }
.dev-form .input { flex: 1; padding: 0.4rem 0.5rem; }

.mini-ranking { list-style: none; display: grid; }
.mini-ranking li {
    display: grid;
    grid-template-columns: 1.8rem minmax(0, 1fr) auto;
    gap: 0.6rem;
    align-items: center;
    padding: 0.3rem 0;
    border-bottom: 1px solid var(--line);
}
.mini-ranking li:last-child { border-bottom: none; }
.mini-ranking .rank { min-width: 1.6rem; height: 1.6rem; font-size: 0.82rem; }
.mini-name { color: var(--text-bright); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mini-level { color: var(--gold); font-weight: 700; }

@media (max-width: 640px) {
    .shots, .class-list { grid-template-columns: 1fr; }
}
