:root {
  --font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji";
  --mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  --bg: #eef0f3;
  --surface: #ffffff;
  --surface-2: #f7f8fa;
  --surface-3: #eef1f5;
  --border: #e0e4ea;
  --border-strong: #cdd3dc;
  --text: #1c2230;
  --text-muted: #566072;
  --text-faint: #5f6875;
  --accent: #15803d;
  --accent-hover: #116632;
  --accent-ink: #15803d;
  --accent-weak: #e7f6ec;
  --accent-border: #bfe6cc;
  --on-accent: #ffffff;
  --ok: #15803d;
  --shadow: 0 1px 2px rgba(18, 24, 38, .06), 0 1px 1px rgba(18, 24, 38, .04);
  --radius: 8px;
  --radius-sm: 6px;
  --row-h: 46px;
  --wrap: 1180px;
}
html[data-theme="dark"] {
  --bg: #090d14;
  --surface: #121826;
  --surface-2: #161f30;
  --surface-3: #1b2537;
  --border: #232d40;
  --border-strong: #313d54;
  --text: #e7eaf0;
  --text-muted: #9aa4b5;
  --text-faint: #8b95a5;
  --accent: #34d17f;
  --accent-hover: #2bbf72;
  --accent-ink: #56d98a;
  --accent-weak: #15301f;
  --accent-border: #2c6b45;
  --on-accent: #06210f;
  --ok: #4ade80;
  --shadow: 0 1px 2px rgba(0, 0, 0, .4);
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: var(--font);
  font-size: 14px;
  line-height: 1.5;
  color: var(--text);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
a { color: var(--accent-ink); text-decoration: none; }
a:hover { text-decoration: underline; }
img, svg { display: block; }
button { font: inherit; }
.wrap { width: 100%; max-width: var(--wrap); margin-inline: auto; padding-inline: 16px; }
.visually-hidden {
  position: absolute !important; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0);
  white-space: nowrap; border: 0;
}
.ic { width: 18px; height: 18px; flex: none; }
.ic--sm { width: 15px; height: 15px; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 3px; }
.skip-link {
  position: fixed; inset-block-start: 8px; inset-inline-start: 8px;
  z-index: 200; background: var(--accent); color: var(--on-accent);
  padding: 8px 14px; border-radius: var(--radius-sm); transform: translateY(-160%);
  transition: transform .15s ease;
}
.skip-link:focus { transform: translateY(0); text-decoration: none; }
.btn {
  display: inline-flex; align-items: center; gap: 6px; justify-content: center;
  border: 1px solid transparent; border-radius: var(--radius-sm);
  padding: 7px 12px; font-size: 13px; font-weight: 600; line-height: 1;
  cursor: pointer; white-space: nowrap; color: var(--text); background: transparent;
}
.btn:hover { text-decoration: none; }
.btn .ic { width: 16px; height: 16px; }
.btn--primary { background: var(--accent); color: var(--on-accent); border-color: var(--accent); }
.btn--primary:hover { background: var(--accent-hover); border-color: var(--accent-hover); }
.btn--ghost { background: var(--surface); border-color: var(--border-strong); color: var(--text); }
.btn--ghost:hover { background: var(--surface-2); }
.btn--sm { padding: 5px 9px; font-size: 12px; }
.btn--block { width: 100%; }
.btn--lg { padding: 10px 16px; font-size: 14px; }
.dl-btn {
  display: inline-flex; align-items: center; gap: 5px; justify-content: center;
  padding: 5px 10px; font-size: 12px; font-weight: 700; line-height: 1;
  color: var(--on-accent); background: var(--accent); border: 1px solid var(--accent);
  border-radius: var(--radius-sm); white-space: nowrap;
}
.dl-btn:hover { background: var(--accent-hover); border-color: var(--accent-hover); text-decoration: none; }
.dl-btn .ic { width: 14px; height: 14px; }
/* Download buttons on the /download/ page */
.dlbtns { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 8px; }
.dlbtn {
  display: flex; align-items: center; justify-content: center; gap: 8px;
  padding: 12px 16px; border-radius: var(--radius);
  background: var(--accent); color: var(--on-accent);
  font-size: 14px; font-weight: 700; text-align: center;
}
.dlbtn:hover { background: var(--accent-hover); text-decoration: none; }
.dlbtn .ic { width: 18px; height: 18px; flex: none; }
.dlbtn.is-disabled { background: var(--surface-2); color: var(--text-faint); border: 1px dashed var(--border-strong); cursor: not-allowed; }
.dlbtn.is-disabled:hover { background: var(--surface-2); }
.infodl { list-style: none; margin: 14px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 22px; }
.infodl li { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: var(--text-muted); }
.infodl .ic { width: 15px; height: 15px; color: var(--accent-ink); }
/* Single-page Download CTA (below Specifications) */
.dl-cta { margin-block: 14px 16px; }
.dl-cta__btn { width: 100%; padding: 14px 18px; font-size: 15px; }
.dl-cta__btn b { font-weight: 800; }
/* Share buttons */
.sharebtns { display: flex; flex-wrap: wrap; gap: 8px; }
.sharebtn {
  display: inline-flex; align-items: center; gap: 7px;
  padding: 8px 14px; border-radius: var(--radius-sm);
  border: 1px solid var(--border); background: var(--surface-2);
  color: var(--text); font: inherit; font-size: 13px; font-weight: 600; cursor: pointer;
}
.sharebtn:hover { background: var(--surface-3); text-decoration: none; }
.sharebtn .ic { width: 16px; height: 16px; flex: none; }
.sb--fb .ic { color: #1877f2; }
.sb--x .ic { color: var(--text); }
.sb--tg .ic { color: #0088cc; }
.sb--wa .ic { color: #25d366; }
.sb--yt .ic { color: #ff0000; }
.sb--pin .ic { color: #e60023; }
.sb--gen .ic { color: var(--accent-ink); }
.mono { font-family: var(--mono); font-size: 12.5px; font-variant-numeric: tabular-nums; }
.site-header {
  position: sticky; inset-block-start: 0; z-index: 60;
  background: color-mix(in srgb, var(--surface) 92%, transparent);
  backdrop-filter: saturate(1.4) blur(8px);
  border-block-end: 1px solid var(--border);
}
.header__bar {
  display: flex; align-items: center; gap: 10px; height: 52px;
}
.icon-btn {
  display: inline-flex; align-items: center; justify-content: center;
  width: 36px; height: 36px; border: 1px solid transparent; border-radius: var(--radius-sm);
  background: transparent; color: var(--text-muted); cursor: pointer;
}
.icon-btn:hover { background: var(--surface-2); color: var(--text); }
.drawer-btn { display: inline-flex; }
.brand {
  display: inline-flex; align-items: center; gap: 8px;
  font-weight: 800; letter-spacing: .2px; color: var(--text); font-size: 15px;
}
.brand:hover { text-decoration: none; }
.brand__mark {
  display: inline-flex; align-items: center; justify-content: center;
  width: 30px; height: 30px; border-radius: 8px;
  background: var(--accent); color: var(--on-accent);
  font-weight: 800; font-size: 13px; letter-spacing: .5px; line-height: 1;
}
.brand__mark .ic { width: 17px; height: 17px; }
.brand__x { color: var(--accent-ink); }
.nav { display: none; margin-inline-start: 8px; }
.nav__list { display: flex; gap: 2px; list-style: none; margin: 0; padding: 0; }
.nav__link {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 7px 10px; border-radius: var(--radius-sm);
  color: var(--text-muted); font-size: 13px; font-weight: 600;
}
.nav__link:hover { background: var(--surface-2); color: var(--text); text-decoration: none; }
.nav__link .ic { width: 16px; height: 16px; }
.nav__item { position: relative; }
.nav__link .ic--chev { width: 13px; height: 13px; color: var(--text-faint); transition: transform .18s ease; }
.has-dropdown:hover .nav__link .ic--chev,
.has-dropdown:focus-within .nav__link .ic--chev { transform: rotate(180deg); }
.nav__dropdown {
  position: absolute; inset-block-start: 100%; inset-inline-start: 0; z-index: 70;
  min-width: 468px; margin-block-start: 8px; padding: 10px;
  background: var(--surface); border: 1px solid var(--border);
  border-radius: var(--radius); box-shadow: var(--shadow);
  opacity: 0; visibility: hidden; transform: translateY(6px);
  transition: opacity .16s ease, transform .16s ease, visibility .16s;
}
.nav__dropdown::before { content: ""; position: absolute; inset-block-start: -8px; inset-inline: 0; height: 8px; }
.has-dropdown:hover > .nav__dropdown,
.has-dropdown:focus-within > .nav__dropdown { opacity: 1; visibility: visible; transform: translateY(0); }
.nav__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2px; }
.nav__grid a {
  display: flex; justify-content: space-between; gap: 12px;
  padding: 8px 10px; border-radius: var(--radius-sm);
  font-size: 13px; color: var(--text-muted); text-decoration: none;
}
.nav__grid a:hover { background: var(--surface-2); color: var(--accent-ink); }
.nav__grid a span { color: var(--text-faint); font-variant-numeric: tabular-nums; }
.drawer__count { margin-inline-start: auto; color: var(--text-faint); font-size: 12px; font-weight: 600; font-variant-numeric: tabular-nums; }
@media (prefers-reduced-motion: reduce) {
  .nav__dropdown, .nav__link .ic--chev, .search-panel { transition: none; }
}
.header__spacer { flex: 1 1 auto; }
.search-details { display: inline-flex; }
.search-details > summary { list-style: none; cursor: pointer; }
.search-details > summary::-webkit-details-marker { display: none; }
.search-details > summary::marker { content: ""; }
.search-panel {
  position: absolute; inset-block-start: 100%; inset-inline: 0; z-index: 55;
  background: var(--surface); border-block-end: 1px solid var(--border);
  box-shadow: var(--shadow);
}
.search-details[open] > .search-panel { animation: dlx-drop .16s ease; }
@keyframes dlx-drop { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: translateY(0); } }
.search-panel__inner { overflow: hidden; }
.search-form { display: flex; gap: 8px; padding-block: 10px; }
.search-form__field {
  display: flex; align-items: center; gap: 8px; flex: 1 1 auto;
  background: var(--surface-2); border: 1px solid var(--border-strong);
  border-radius: var(--radius-sm); padding-inline: 10px; color: var(--text-muted);
}
.search-form__field .ic { width: 16px; height: 16px; }
.search-form__field input {
  flex: 1 1 auto; border: 0; background: transparent; color: var(--text);
  padding-block: 9px; font-size: 14px; outline: none; min-width: 0;
}
.search-form__submit {
  border: 1px solid var(--accent); background: var(--accent); color: var(--on-accent);
  border-radius: var(--radius-sm); padding-inline: 16px; font-weight: 600; cursor: pointer;
}
.search-form__submit:hover { background: var(--accent-hover); }
main { padding-block: 16px 40px; }
.pagebar {
  display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap;
  margin-block-end: 12px;
}
.pagebar__title { font-size: 18px; font-weight: 800; margin: 0; letter-spacing: -.01em; }
.pagebar__sub { color: var(--text-muted); font-size: 12.5px; margin: 0; }
.dir { display: grid; grid-template-columns: 1fr; gap: 16px; }
.facets { display: none; }
.facets__card {
  background: var(--surface); border: 1px solid var(--border);
  border-radius: var(--radius); box-shadow: var(--shadow); overflow: hidden;
}
.facets__group + .facets__group { border-block-start: 1px solid var(--border); }
.facets__title {
  font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .07em;
  color: var(--text-faint); margin: 0; padding: 12px 12px 6px;
}
.facets__scroll {
  max-height: 320px; overflow-y: auto; overscroll-behavior: contain;
  scrollbar-width: thin; scrollbar-color: var(--border-strong) transparent;
}
.facets__scroll::-webkit-scrollbar { width: 8px; }
.facets__scroll::-webkit-scrollbar-thumb { background: var(--border-strong); border-radius: 8px; }
.facets__scroll::-webkit-scrollbar-track { background: transparent; }
.facet {
  display: flex; align-items: center; gap: 8px;
  padding: 6px 12px; color: var(--text-muted); font-size: 13px; font-weight: 500;
}
.facet:hover { background: var(--surface-2); color: var(--text); text-decoration: none; }
.facet.is-active { color: var(--accent-ink); background: var(--accent-weak); font-weight: 600; }
.facet .ic { width: 15px; height: 15px; color: var(--text-faint); }
.facet.is-active .ic { color: var(--accent-ink); }
.facet__label { flex: 1 1 auto; min-width: 0; overflow-wrap: anywhere; }
.facet__count {
  font-family: var(--mono); font-size: 11px; color: var(--text-faint);
  background: var(--surface-3); border-radius: 20px; padding: 1px 7px;
}
.facet.is-active .facet__count { background: var(--surface); color: var(--accent-ink); }
.dir__content { min-width: 0; }
.toolbar {
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
  background: var(--surface); border: 1px solid var(--border);
  border-radius: var(--radius); box-shadow: var(--shadow);
  padding: 8px 10px; margin-block-end: 14px;
}
.toolbar__field { display: inline-flex; align-items: center; gap: 6px; }
.toolbar__lbl { font-size: 12px; color: var(--text-muted); font-weight: 600; }
.select {
  position: relative; display: inline-flex; align-items: center;
}
.select select {
  appearance: none; -webkit-appearance: none;
  font: inherit; font-size: 12.5px; font-weight: 600; color: var(--text);
  background: var(--surface-2); border: 1px solid var(--border-strong);
  border-radius: var(--radius-sm); padding: 6px 28px 6px 10px; cursor: pointer;
}
.select .ic {
  position: absolute; inset-inline-end: 7px; width: 15px; height: 15px;
  color: var(--text-faint); pointer-events: none;
}
.segment {
  display: inline-flex; background: var(--surface-2);
  border: 1px solid var(--border-strong); border-radius: var(--radius-sm); padding: 2px;
}
.segment__item {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 5px 11px; font-size: 12.5px; font-weight: 600; color: var(--text-muted);
  border-radius: 4px; border: 0; background: transparent; cursor: pointer;
}
.segment__item .ic { width: 14px; height: 14px; }
.segment__item:hover { color: var(--text); text-decoration: none; }
.segment__item.is-active { background: var(--surface); color: var(--accent-ink); box-shadow: var(--shadow); }
.toolbar__spacer { flex: 1 1 auto; }
.toolbar__search {
  display: flex; align-items: center; gap: 7px; min-width: 160px;
  background: var(--surface-2); border: 1px solid var(--border-strong);
  border-radius: var(--radius-sm); padding-inline: 9px; color: var(--text-muted);
}
.toolbar__search .ic { width: 15px; height: 15px; }
.toolbar__search input {
  border: 0; background: transparent; color: var(--text); outline: none;
  padding-block: 6px; font-size: 12.5px; min-width: 0; width: 100%;
}
.listcard.is-loading { opacity: .5; pointer-events: none; transition: opacity .12s ease; }
.listcard {
  background: var(--surface); border: 1px solid var(--border);
  border-radius: var(--radius); box-shadow: var(--shadow); overflow: hidden;
  margin-block-end: 18px;
}
.listcard__head {
  display: flex; align-items: center; gap: 8px;
  padding-inline: 14px; min-height: 48px; border-block-end: 1px solid var(--border);
  background: var(--surface-2);
}
.listcard__head .ic { width: 16px; height: 16px; color: var(--accent-ink); }
.listcard__title { font-size: 13px; font-weight: 800; margin: 0; letter-spacing: .01em; }
.listcard__count {
  font-family: var(--mono); font-size: 11px; color: var(--text-muted);
  margin-inline-start: auto;
}
a.listcard__count {
  color: var(--accent-ink); font-weight: 600; font-size: 12.5px;
  display: inline-flex; align-items: center; gap: 4px;
  align-self: stretch; padding-inline: 12px; margin-inline-end: -6px;
  border-radius: var(--radius-sm); text-decoration: none;
}
a.listcard__count:hover { background: var(--accent-weak); color: var(--accent-ink); }
.table-scroll { overflow-x: auto; }
.dtable { min-width: 640px; }
.drow, .dhead {
  display: grid;
  grid-template-columns: 104px minmax(0, 1fr) 124px 92px 78px 104px;
  align-items: center; gap: 12px;
  padding-inline: 14px;
}
.dhead {
  min-height: 34px; background: var(--surface-2);
  border-block-end: 1px solid var(--border);
  font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em;
  color: var(--text-faint);
}
.dhead__cell { text-align: start; }
.dhead__cell--num { text-align: end; }
.drow {
  min-height: var(--row-h); border-block-end: 1px solid var(--border);
  font-size: 13px; text-decoration: none; color: inherit;
  padding-block: 14px;
}
.drow:last-child { border-block-end: 0; }
.drow:nth-child(even) { background: var(--surface-2); }
.drow:hover { background: var(--accent-weak); }
.drow:hover .drow__name { color: var(--accent-ink); }
.drow__icon {
  width: 96px; height: 96px; border-radius: 22px;
  display: inline-flex; align-items: center; justify-content: center;
}
.drow__icon .ic { width: 48px; height: 48px; }
.drow__main { min-width: 0; }
.drow__name {
  margin: 0; color: var(--text); font-weight: 800; font-size: 15px; line-height: 1.3;
  display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.drow__name:hover { color: var(--accent-ink); }
.drow__dev { color: var(--text-faint); font-size: 11.5px; display: block; }
.drow__cells { display: contents; }
.drow__cat {
  min-width: 0; color: var(--text-muted); font-size: 12.5px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.drow__ver, .drow__size, .drow__date {
  min-width: 0; overflow: hidden; text-overflow: ellipsis;
  font-family: var(--mono); font-size: 12px; color: var(--text-muted);
  font-variant-numeric: tabular-nums; text-align: end; white-space: nowrap;
}
.drow__size { color: var(--accent-ink); }
.drow__ver:empty::before, .drow__size:empty::before { content: "—"; color: var(--text-faint); }
.crumbs {
  display: flex; align-items: center; flex-wrap: wrap; gap: 4px;
  font-size: 12px; color: var(--text-faint); margin-block-end: 12px;
}
.crumbs a { color: var(--text); text-decoration: underline; text-underline-offset: 2px; }
.crumbs a:hover { color: var(--accent-ink); }
.crumbs__sep { width: 13px; height: 13px; color: var(--text-faint); }
.crumbs [aria-current] { color: var(--text); font-weight: 600; }
.apphead {
  background: var(--surface); border: 1px solid var(--border);
  border-radius: var(--radius); box-shadow: var(--shadow);
  padding: 16px; margin-block-end: 16px;
  display: grid; grid-template-columns: 1fr; gap: 14px; align-items: start;
  grid-template-areas:
    "title"
    "icon"
    "rate"
    "actions";
}
.apphead__body { display: contents; }
.apphead__icon {
  grid-area: icon; justify-self: center;
  width: 168px; height: 168px; border-radius: 36px;
  display: inline-flex; align-items: center; justify-content: center; flex: none;
}
.apphead__icon .ic { width: 80px; height: 80px; }
.apphead__id { grid-area: title; min-width: 0; }
.apphead__title { font-size: 22px; font-weight: 800; margin: 0; letter-spacing: -.01em; line-height: 1.25; }
@media (min-width: 640px) {
  .apphead {
    display: flex; align-items: center; gap: 22px; padding: 20px;
  }
  .apphead__icon { justify-self: start; }
  .apphead__body {
    display: flex; flex-direction: column; align-items: flex-start;
    justify-content: center; gap: 12px; min-width: 0; flex: 1 1 auto;
  }
  .apphead__title { font-size: 26px; }
}
.apphead__facts {
  grid-column: 1 / -1;
  display: flex; flex-wrap: wrap; gap: 6px 8px;
  border-block-start: 1px solid var(--border); padding-block-start: 12px; margin-block-start: 2px;
}
.fact {
  display: inline-flex; align-items: baseline; gap: 5px;
  font-size: 12px; color: var(--text-muted);
  background: var(--surface-2); border: 1px solid var(--border);
  border-radius: 20px; padding: 4px 10px;
}
.fact b { color: var(--text); font-weight: 700; }
.fact .mono { color: var(--accent-ink); }
.apphead__rate {
  grid-area: rate; display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
}
.apphead__actions { grid-area: actions; display: flex; gap: 8px; flex-wrap: wrap; }
.stars { display: inline-flex; gap: 3px; }
.stars button {
  border: 0; background: transparent; padding: 6px; cursor: pointer;
  color: var(--border-strong); line-height: 0; border-radius: 6px;
  min-width: 34px; min-height: 34px;
  display: inline-flex; align-items: center; justify-content: center;
}
.stars .ic { width: 22px; height: 22px; }
.stars button.is-on { color: #f59e0b; }
[data-rating-label] { font-size: 12.5px; color: var(--text-muted); }
.apphead__rate-score { font-size: 20px; font-weight: 800; color: var(--accent-ink); line-height: 1; }
.single-grid { display: grid; grid-template-columns: 1fr; gap: 16px; }
.panel {
  background: var(--surface); border: 1px solid var(--border);
  border-radius: var(--radius); box-shadow: var(--shadow); overflow: hidden;
  margin-block-end: 16px;
}
.panel__head {
  display: flex; align-items: center; gap: 8px;
  padding: 11px 14px; border-block-end: 1px solid var(--border); background: var(--surface-2);
}
.panel__head .ic { width: 16px; height: 16px; color: var(--accent-ink); }
.panel__title { font-size: 13px; font-weight: 800; margin: 0; letter-spacing: .01em; }
.panel__note { font-size: 11.5px; color: var(--text-faint); margin-inline-start: auto; font-family: var(--mono); }
.panel__body { padding: 14px; }
.toc ul { margin: 0; padding-inline-start: 20px; }
.toc ul ul { padding-inline-start: 16px; }
.toc li { margin: 0; }
.toc a {
  display: inline-block; padding: 9px 8px; line-height: 1.25;
  color: var(--accent-ink); text-decoration: none; border-radius: var(--radius-sm);
}
.toc a:hover { background: var(--accent-weak); text-decoration: underline; text-underline-offset: 2px; }
.dttable { width: 100%; border-collapse: collapse; font-size: 13px; }
.dttable caption { text-align: start; }
.dttable th, .dttable td {
  padding: 9px 14px; text-align: start; border-block-end: 1px solid var(--border);
  vertical-align: middle;
}
.dttable thead th {
  font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em;
  color: var(--text-faint); background: var(--surface-2); white-space: nowrap;
}
.dttable tbody tr:last-child th, .dttable tbody tr:last-child td { border-block-end: 0; }
.dttable tbody tr:nth-child(even) { background: var(--surface-2); }
.dttable tbody tr:hover { background: var(--accent-weak); }
.dttable .num { font-family: var(--mono); font-variant-numeric: tabular-nums; text-align: end; white-space: nowrap; }
.vtype { display: flex; align-items: center; gap: 9px; min-width: 0; }
.vtype__tag {
  display: inline-flex; align-items: center; justify-content: center;
  width: 26px; height: 26px; border-radius: 6px; flex: none;
  background: var(--accent-weak); color: var(--accent-ink);
}
.vtype__tag .ic { width: 15px; height: 15px; }
.vtype__name { font-weight: 700; color: var(--text); }
.vtype__name b { color: var(--accent-ink); }
.vtype__sub { display: block; font-size: 11px; color: var(--text-faint); font-weight: 500; }
.arch {
  font-family: var(--mono); font-size: 11px; color: var(--text-muted);
  background: var(--surface-3); border: 1px solid var(--border); border-radius: 5px; padding: 2px 6px;
  white-space: nowrap;
}
.badge-mod {
  display: inline-block; font-size: 10px; font-weight: 700; letter-spacing: .04em;
  color: var(--on-accent); background: var(--accent); border-radius: 4px; padding: 1px 6px;
  margin-inline-start: 6px; text-transform: uppercase; vertical-align: middle;
}
.dttable td.act { text-align: end; white-space: nowrap; }
.spectable th[scope="row"] {
  font-weight: 600; color: var(--text-muted); width: 42%; white-space: normal;
}
.spectable td { color: var(--text); }
.spectable .mono { color: var(--accent-ink); }
.prose { font-size: 14px; color: var(--text); }
.prose h2 { font-size: 16px; font-weight: 800; margin: 18px 0 6px; letter-spacing: -.01em; }
.prose h2:first-child { margin-block-start: 0; }
.prose h3 { font-size: 13.5px; font-weight: 700; margin: 14px 0 4px; color: var(--accent-ink); }
.prose p { margin: 0 0 10px; color: var(--text-muted); line-height: 1.62; }
.prose a { color: var(--accent-ink); text-decoration: underline; text-underline-offset: 2px; }
.prose ul, .prose ol { margin: 0 0 12px; padding-inline-start: 20px; color: var(--text-muted); font-size: 14px; line-height: 1.62; }
.prose li { margin-block-end: 4px; }
.prose blockquote { margin: 12px 0; padding: 8px 14px; border-inline-start: 3px solid var(--accent); background: var(--surface-2); border-radius: 0 var(--radius-sm) var(--radius-sm) 0; color: var(--text-muted); }
.prose table { width: 100%; border-collapse: collapse; margin: 12px 0; font-size: 13.5px; overflow-wrap: anywhere; }
.prose th, .prose td { border: 1px solid var(--border); padding: 8px 10px; text-align: start; }
.prose img { max-width: 100%; height: auto; display: block; margin-inline: auto; margin-block: 12px; border-radius: 10px; }
.prose figure { margin: 12px 0; }
.prose figure img { margin-block: 0; }
.prose figcaption, .wp-caption-text { text-align: center; font-size: 12px; color: var(--text-faint); margin-block-start: 6px; }
.prose .aligncenter, .prose figure.aligncenter { margin-inline: auto; }
.prose .alignleft { float: inline-start; margin-inline-end: 16px; margin-block: 6px; }
.prose .alignright { float: inline-end; margin-inline-start: 16px; margin-block: 6px; }
img.aligncenter { display: block; margin-inline: auto; }
.feature-list { list-style: none; margin: 10px 0 0; padding: 0; display: grid; gap: 7px; }
.feature-list li { display: flex; gap: 8px; align-items: flex-start; font-size: 13px; color: var(--text-muted); }
.feature-list .ic { width: 16px; height: 16px; color: var(--ok); margin-block-start: 1px; }
.toc { display: grid; gap: 2px; }
.toc a {
  display: flex; align-items: center; gap: 8px;
  padding: 6px 8px; border-radius: var(--radius-sm); font-size: 13px;
  color: var(--text-muted); border-inline-start: 2px solid transparent;
}
.toc a:hover { background: var(--surface-2); color: var(--accent-ink); text-decoration: none; border-inline-start-color: var(--accent); }
.toc__n { font-family: var(--mono); font-size: 11px; color: var(--text-faint); }
.shots { display: flex; gap: 10px; overflow-x: auto; padding-block-end: 2px; scroll-snap-type: x mandatory; }
.shots__item {
  flex: 0 0 auto; width: 148px; aspect-ratio: 9 / 16; border-radius: 10px;
  display: inline-flex; align-items: center; justify-content: center; scroll-snap-align: start;
}
.shots__item .ic { width: 34px; height: 34px; }
.shots__item { overflow: hidden; }
.shots__item img { width: 100%; height: 100%; object-fit: cover; display: block; }
figure.shots__item { margin: 0; }
.related { display: grid; gap: 0; }
.related__item {
  display: grid; grid-template-columns: 112px minmax(0,1fr) auto; align-items: center; gap: 12px;
  padding: 10px 14px; border-block-end: 1px solid var(--border);
}
.related__item:last-child { border-block-end: 0; }
.related__item:hover { background: var(--accent-weak); text-decoration: none; }
.related__icon { width: 112px; height: 112px; border-radius: 26px; display: inline-flex; align-items: center; justify-content: center; }
.related__icon .ic { width: 56px; height: 56px; }
.related__body { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.related__name { margin: 0; display: block; font-size: 14px; font-weight: 800; color: var(--text); line-height: 1.3; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.related__meta { display: block; font-size: 11.5px; color: var(--text-faint); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.related__meta .mono { color: var(--accent-ink); }
.related__go { color: var(--text-faint); }
.related__go .ic { width: 16px; height: 16px; }
.dlbox { position: sticky; inset-block-start: 68px; }
.dlbox__score { display: flex; align-items: baseline; gap: 8px; }
.dlbox__score b { font-size: 30px; font-weight: 800; line-height: 1; }
.dlbox__score span { font-size: 12px; color: var(--text-faint); }
.dlbox__row {
  display: flex; justify-content: space-between; gap: 10px;
  font-size: 12.5px; padding-block: 6px; border-block-end: 1px dashed var(--border);
}
.dlbox__row span:first-child { color: var(--text-muted); }
.dlbox__row span:last-child { color: var(--text); font-weight: 600; }
.empty {
  display: flex; flex-direction: column; align-items: center; gap: 8px;
  text-align: center; color: var(--text-faint); padding: 22px 14px;
}
.empty .ic { width: 26px; height: 26px; color: var(--border-strong); }
.empty p { margin: 0; font-size: 13px; max-width: 340px; }
.site-footer { border-block-start: 1px solid var(--border); background: var(--surface); }
.footer__inner {
  display: flex; flex-wrap: wrap; gap: 14px 30px; align-items: center; justify-content: space-between;
  padding-block: 20px;
}
.footer__brand { display: inline-flex; align-items: center; gap: 8px; font-weight: 800; }
.footer__note { margin: 6px 0 0; color: var(--text-muted); font-size: 12px; max-width: 460px; }
.footer__links { display: flex; flex-wrap: wrap; gap: 6px 16px; }
.footer__links a { color: var(--text-muted); font-size: 13px; }
.footer__links ul, .footer__links li { display: contents; }
.footer__copyright {
  padding-block: 14px; border-block-start: 1px solid var(--border);
  color: var(--text-muted); font-size: 12.5px; text-align: center;
}
.drawer-backdrop {
  position: fixed; inset: 0; z-index: 90; background: rgba(9, 13, 20, .5);
  opacity: 0; visibility: hidden; transition: opacity .2s ease, visibility .2s ease;
}
.drawer-backdrop.is-open { opacity: 1; visibility: visible; }
.drawer {
  position: fixed; inset-block: 0; inset-inline-start: 0; z-index: 100;
  width: min(84vw, 320px); background: var(--surface);
  border-inline-end: 1px solid var(--border);
  transform: translateX(-102%); transition: transform .22s ease;
  display: flex; flex-direction: column; overflow-y: auto;
}
[dir="rtl"] .drawer { transform: translateX(102%); }
.drawer.is-open { transform: translateX(0); }
.drawer__head { display: flex; align-items: center; justify-content: space-between; padding: 12px 14px; border-block-end: 1px solid var(--border); }
.drawer__nav { display: flex; flex-direction: column; padding: 8px; gap: 2px; }
.drawer__link {
  display: flex; align-items: center; gap: 10px; width: 100%; text-align: start;
  padding: 10px 12px; border: 0; background: transparent; border-radius: var(--radius-sm);
  color: var(--text); font-size: 14px; font-weight: 600; cursor: pointer;
}
.drawer__link:hover { background: var(--surface-2); text-decoration: none; }
.drawer__link .ic--chev { margin-inline-start: auto; color: var(--text-faint); }
.drawer__back { color: var(--text-muted); font-weight: 600; }
.drawer__section-title {
  font-size: 11px; text-transform: uppercase; letter-spacing: .07em; color: var(--text-faint);
  padding: 4px 14px; margin: 4px 0 0;
}
.drawer__acc > summary { list-style: none; }
.drawer__acc > summary::-webkit-details-marker { display: none; }
.drawer__acc > summary::marker { content: ""; }
.drawer__acc > summary .ic--chev { transition: transform .18s ease; }
.drawer__acc[open] > summary .ic--chev { transform: rotate(180deg); }
.drawer__sub { display: grid; gap: 2px; padding-inline-start: 12px; padding-block-end: 6px; }
.drawer__sub a {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  padding: 9px 12px; border-radius: var(--radius-sm);
  color: var(--text-muted); font-size: 13.5px; text-decoration: none;
}
.drawer__sub a:hover { background: var(--surface-2); color: var(--accent-ink); }
.drawer__sub a span { color: var(--text-faint); font-size: 12px; font-weight: 600; font-variant-numeric: tabular-nums; }
.dlandroid-imgbox { overflow: hidden; }
.dlandroid-imgbox img { width: 100%; height: 100%; object-fit: cover; border-radius: inherit; display: block; }
.ph { color: #fff; position: relative; overflow: hidden; }
.ph .ic { color: #fff; opacity: .95; }
.ph--g1 { background: linear-gradient(135deg, #34d17f, #15803d); }
.ph--g2 { background: linear-gradient(135deg, #4ade80, #16a34a); }
.ph--g3 { background: linear-gradient(135deg, #2dd4bf, #0d9488); }
.ph--g4 { background: linear-gradient(135deg, #86efac, #22c55e); }
.ph--g5 { background: linear-gradient(135deg, #a3e635, #4d7c0f); }
.pagination { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; margin-block-start: 20px; }
.pagination a, .pagination span {
  min-width: 44px; height: 44px; padding-inline: 12px;
  display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid var(--border); border-radius: var(--radius-sm);
  background: var(--surface); color: var(--text-muted);
  font-size: 13px; font-weight: 600; text-decoration: none;
}
.pagination a:hover { border-color: var(--accent); color: var(--accent-ink); }
.pagination .is-current { background: var(--accent); border-color: var(--accent); color: var(--on-accent); }
.pagination .dots { border: 0; background: transparent; }
.loadmore { display: flex; justify-content: center; margin-block-start: 14px; }
.loadmore__btn[data-busy="1"] { opacity: .7; pointer-events: none; }
.note {
  display: flex; align-items: flex-start; gap: 10px;
  padding: 12px 14px; border-radius: var(--radius-sm);
  background: var(--accent-weak); border: 1px solid var(--accent-border);
  color: var(--text); font-size: 13.5px; line-height: 1.5;
}
.note .ic { width: 18px; height: 18px; color: var(--accent-ink); flex: none; margin-block-start: 1px; }
.note b { color: var(--accent-ink); }
.note a { color: var(--accent-ink); font-weight: 600; }
.adslot {
  display: grid; place-items: center; gap: 4px;
  min-height: 92px; padding: 16px;
  border: 1px dashed var(--border-strong); border-radius: var(--radius-sm);
  background: var(--surface-2); color: var(--text-faint); text-align: center;
}
.adslot__label { font-size: 10px; text-transform: uppercase; letter-spacing: .14em; }
.adslot__hint { font-size: 12px; }
.sociallinks { display: flex; flex-wrap: wrap; gap: 8px; }
.sociallinks a {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 7px 14px; border: 1px solid var(--border); border-radius: 999px;
  font-size: 12.5px; font-weight: 600; color: var(--text-muted); text-decoration: none;
}
.sociallinks a:hover { border-color: var(--accent); color: var(--accent-ink); background: var(--accent-weak); }
.notfound { text-align: center; padding-block: 40px; }
.notfound__code {
  font-size: clamp(64px, 16vw, 128px); font-weight: 800; line-height: 1;
  color: var(--accent-ink); letter-spacing: -.02em;
}
.notfound__msg { margin-block: 8px 20px; color: var(--text-muted); font-size: 15px; }
.notfound__actions { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; }
@media (max-width: 639px) {
  .dtable { min-width: 0; }
  .dhead { display: none; }
  .drow {
    grid-template-columns: 104px minmax(0, 1fr);
    grid-template-areas:
      "ic main"
      "ic meta";
    row-gap: 4px; min-height: 0; padding-block: 14px;
  }
  .drow__icon { grid-area: ic; align-self: start; }
  .drow__main { grid-area: main; }
  .drow__cells {
    grid-area: meta; display: flex; flex-wrap: wrap; align-items: baseline;
    gap: 2px 4px; min-width: 0;
  }
  .drow__cat, .drow__ver, .drow__size, .drow__date {
    text-align: start; white-space: nowrap;
  }
  .drow__cells > *:empty { display: none; }
  .drow__cells > *:not(:empty) ~ *:not(:empty)::before {
    content: "·"; margin-inline-end: 5px; color: var(--text-faint);
  }
}
@media (min-width: 640px) {
  body { font-size: 14px; }
}
@media (min-width: 760px) {
  .drawer-btn { display: none; }
  .nav { display: block; }
}
@media (min-width: 900px) {
  .single-grid { grid-template-columns: minmax(0, 1fr) 300px; align-items: start; }
  .single-grid__aside { grid-column: 2; }
}
@media (min-width: 1000px) {
  .dir { grid-template-columns: 236px minmax(0, 1fr); align-items: start; }
  .facets { display: block; position: sticky; inset-block-start: 68px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: .001ms !important; animation-duration: .001ms !important; scroll-behavior: auto !important; }
}
.comment-list { list-style: none; margin: 0 0 20px; padding: 0; display: grid; gap: 14px; }
.comment-list .children { list-style: none; margin: 12px 0 0; padding-inline-start: 16px; border-inline-start: 2px solid var(--border); display: grid; gap: 12px; }
.comment-body { background: var(--surface-2); border: 1px solid var(--border); border-radius: var(--radius); padding: 12px 14px; }
.comment-author { display: flex; align-items: center; gap: 8px; }
.comment-author .avatar { border-radius: 50%; flex: none; }
.comment-author .fn { font-weight: 700; font-size: 13.5px; color: var(--text); font-style: normal; }
.comment-author .says { display: none; }
.comment-metadata { margin-block-start: 2px; font-size: 11.5px; }
.comment-metadata a { color: var(--text-faint); }
.comment-content { margin-block-start: 8px; font-size: 13.5px; color: var(--text-muted); line-height: 1.6; overflow-wrap: anywhere; }
.comment-content p { margin: 0 0 8px; }
.comment .reply { margin-block-start: 6px; }
.comment-reply-link { font-size: 12px; font-weight: 600; color: var(--accent-ink); text-decoration: none; }
.comment-reply-link:hover { text-decoration: underline; }
.bypostauthor > .comment-body { border-color: var(--accent-border); }
.comment-respond { margin-block-start: 8px; }
.comment-reply-title { font-size: 15px; font-weight: 800; margin: 0 0 4px; color: var(--text); }
.comment-reply-title small { font-weight: 400; font-size: 12px; margin-inline-start: 8px; }
.comment-notes, .logged-in-as { font-size: 12.5px; color: var(--text-faint); margin: 0 0 12px; }
.comment-form { display: grid; gap: 12px; }
.comment-form p { margin: 0; }
.comment-form label { display: block; font-size: 12.5px; font-weight: 600; color: var(--text-muted); margin-block-end: 4px; }
.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"],
.comment-form textarea {
  width: 100%; max-width: 100%; box-sizing: border-box;
  background: var(--surface-2); border: 1px solid var(--border-strong);
  border-radius: var(--radius-sm); color: var(--text);
  font: inherit; font-size: 14px; padding: 10px 12px;
}
.comment-form textarea { min-height: 120px; resize: vertical; }
.comment-form input:focus, .comment-form textarea:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 2px var(--accent-weak); }
.comment-form-cookies-consent { display: flex; align-items: flex-start; gap: 8px; }
.comment-form-cookies-consent input { margin: 3px 0 0; flex: none; }
.comment-form-cookies-consent label { margin: 0; font-weight: 400; color: var(--text-muted); }
.comment-form .required { color: #e05555; }
.form-submit { margin: 0; }
.comment-form .submit, .form-submit .submit {
  -webkit-appearance: none; appearance: none;
  background: var(--accent); color: var(--on-accent); border: 1px solid var(--accent);
  border-radius: var(--radius-sm); padding: 10px 18px; font: inherit; font-weight: 700;
  font-size: 14px; cursor: pointer;
}
.comment-form .submit:hover, .form-submit .submit:hover { background: var(--accent-hover); border-color: var(--accent-hover); }
@media (min-width: 620px) {
  .comment-form .comment-form-author,
  .comment-form .comment-form-email,
  .comment-form .comment-form-url { display: inline-block; width: calc(50% - 6px); vertical-align: top; }
  .comment-form .comment-form-author { margin-inline-end: 12px; }
}
