/* Only the directory loads these controls and alphabetical rows. */
.directory-heading { max-width:800px; margin:2rem 0; }
.directory-heading h1 { font-size:clamp(2rem,5vw,3rem); line-height:1.2; letter-spacing:-.035em; margin:.6rem 0 1rem; }
.directory-heading p,.directory-method p { line-height:1.75; }
.directory-filters { padding:1.3rem; border:1px solid var(--border); border-radius:16px; background:var(--bg-card); }
.directory-filters[hidden],.directory-group[hidden],.directory-game[hidden],.directory-empty[hidden],.directory-alphabet a[hidden] { display:none; }
.directory-filters label { display:block; font-weight:600; font-size:.9rem; }
.directory-filters input[type="search"],.directory-filters select { box-sizing:border-box; width:100%; min-height:48px; font:inherit; color:var(--text); background:var(--bg); border:1px solid var(--border); border-radius:8px; padding:.65rem .8rem; margin-top:.4rem; }
.directory-filters input::placeholder { color:var(--text-3); opacity:1; }
.directory-selects { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; margin-top:1rem; }
.directory-toggles { display:flex; align-items:center; flex-wrap:wrap; gap:.8rem 1.5rem; margin-top:1rem; }
.directory-toggles label { display:flex; align-items:center; gap:.6rem; min-height:44px; cursor:pointer; }
.directory-toggles input { width:18px; height:18px; accent-color:var(--brand-strong); }
.directory-filters button,.directory-empty button { min-height:44px; font:inherit; font-weight:600; padding:.55rem 1rem; color:var(--text); background:var(--bg); border:1px solid var(--border); border-radius:8px; cursor:pointer; }
.directory-page :is(input,select,button,a):focus-visible { outline:2px solid var(--brand-strong); outline-offset:3px; }
.directory-result-bar { margin:1.5rem 0; }
.directory-result-bar>p { font-size:.9rem; color:var(--text-3); }
.directory-alphabet { display:flex; flex-wrap:wrap; gap:.3rem; }
.directory-alphabet a { display:flex; justify-content:center; align-items:center; min-width:44px; min-height:44px; padding:0 .25rem; box-sizing:border-box; border:1px solid var(--border); border-radius:6px; font-weight:700; }
.directory-group { margin:2rem 0; scroll-margin-top:1rem; }
.directory-group>h2 { font-size:1.25rem; padding-bottom:.6rem; border-bottom:2px solid var(--border); }
.directory-group>ul { padding:0; list-style:none; margin:0; }
.directory-game { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:1.8rem; padding:1.2rem 0; border-bottom:1px solid var(--border); overflow-wrap:anywhere; }
.directory-game h3 { display:flex; flex-wrap:wrap; align-items:center; gap:.5rem; margin:0 0 .5rem; font-size:1.1rem; }
.directory-game h3>a { color:var(--text); padding:.2rem 0; }
.directory-game p { margin:.3rem 0; font-size:.85rem; line-height:1.6; }
.directory-game-info>p,.directory-platforms { color:var(--text-3); }
.directory-new { font-size:.7rem; font-weight:700; padding:.25rem .5rem; background:var(--brand-strong); color:#fff; border-radius:5px; }
.directory-announcement>p { display:flex; flex-wrap:wrap; gap:.6rem; align-items:center; }
.directory-type { font-weight:700; }
.directory-announcement time { color:var(--text-3); font-variant-numeric:tabular-nums; }
.directory-source { display:inline-block; font-size:.9rem; line-height:1.6; padding:.15rem 0; }
.directory-announcement small { display:block; color:var(--text-3); font-size:.75rem; line-height:1.6; margin-top:.3rem; }
.directory-empty { padding:1.5rem; border:1px solid var(--border); border-radius:12px; }
.directory-empty h2 { font-size:1.3rem; }
.directory-method { margin-top:2.5rem; }
.directory-genres,.directory-recent { margin:2rem 0; }
.directory-genres h2,.directory-recent h2 { font-size:1.25rem; line-height:1.4; }
.directory-genre-nav { display:flex; flex-wrap:wrap; gap:.6rem; margin:1rem 0; }
.directory-genre-nav a { display:inline-flex; align-items:center; gap:.4rem; min-height:44px; box-sizing:border-box; padding:.55rem .8rem; border:1px solid var(--border); border-radius:8px; font-size:.9rem; }
.directory-genre-nav span { color:var(--text-3); }
.directory-recent ul { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; list-style:none; padding:0; }
.directory-recent li { padding:1rem; border:1px solid var(--border); border-radius:12px; background:var(--bg-card); overflow-wrap:anywhere; }
.directory-recent h3 { font-size:1rem; margin:0 0 .6rem; }
.directory-recent p,.directory-recent li>a { font-size:.9rem; line-height:1.6; }
.directory-recent small { display:block; margin-top:.6rem; color:var(--text-3); line-height:1.6; }
@media(max-width:640px) {
  .directory-filters { padding:1rem; }
  .directory-selects { grid-template-columns:1fr; gap:.8rem; }
  .directory-game { grid-template-columns:1fr; gap:.6rem; }
  .directory-toggles { gap:.5rem; }
  .directory-recent ul { grid-template-columns:1fr; }
}
