/*
Theme Name: OFOG Catalog
Theme URI: https://www.onlyfreeonlinegames.com/
Description: Тема восстановленного архива флеш-игр. Светлый библиотечный каталог: слэб-сериф, кирпичный акцент, карточка игры с плеером по клику. Данные об играх и тексты описаний берутся из плагина ofog-seo, тема только показывает.
Author: onlyfreeonlinegames.com
Version: 1.0.0
Requires at least: 6.0
Tested up to: 7.1
Requires PHP: 7.4
License: GPL-2.0-or-later
Text Domain: ofog
*/

/* ==========================================================================
   Токены направления Catalog. Девять направлений лаборатории отличались
   только этим блоком — поменять палитру целиком значит поменять его.
   ========================================================================== */
:root{
  --bg:#f6f3ea; --bg-2:#ffffff; --bg-3:#ece7d8; --line:#ddd6c0;
  --text:#211d15; --text-muted:#6b6350;
  --accent:#b0402f; --accent-ink:#ffffff; --accent-soft:#b0402f14;
  --radius:3px; --radius-lg:6px;
  --font-display:'Bitter',serif; --font-body:'Bitter',serif; --font-mono:'JetBrains Mono',monospace;
  --heading-weight:700;
  --thumb-ratio:4/3; --player-ratio:4/3;
  --g1:linear-gradient(135deg,#8a6b45,#5c4126);
  --g2:linear-gradient(135deg,#6e7a58,#454e35);
  --g3:linear-gradient(135deg,#7a5348,#4c322a);
  --g4:linear-gradient(135deg,#5c6a72,#37424a);
  --g5:linear-gradient(135deg,#8a5a3d,#5a3822);
  --g6:linear-gradient(135deg,#6b5a70,#3f3446);
}

/* ==========================================================================
   OFOG design lab — shared component library.
   Each variant folder supplies its own style.css that defines the custom
   properties below (colors, fonts, radii) plus small per-variant overrides.
   This file never hardcodes a color, font or scenario name.
   ========================================================================== */

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{
  background:var(--bg);
  color:var(--text);
  font-family:var(--font-body);
  min-height:100dvh;
  -webkit-font-smoothing:antialiased;
}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
a{color:inherit;text-decoration:none}
ul{list-style:none}
img{display:block;max-width:100%}
.icon{width:1em;height:1em;display:inline-block;vertical-align:-0.15em;flex-shrink:0}
.wrap{max-width:1180px;margin:0 auto;padding:0 20px}

/* ---- placeholder art tiles (no external image requests) ---- */
.ph{width:100%;height:100%;position:relative;display:flex;align-items:center;justify-content:center;transition:transform .3s ease;}
.ph::after{content:attr(data-label);font-family:var(--font-display);font-weight:700;letter-spacing:-.02em;color:rgba(255,255,255,.92);}
.ph.no-label::after{content:none}
.thumb .ph::after{font-size:26px}
.pair-card .ph::after{font-size:22px}
.thumb-stack .ph::after{font-size:28px}
.g1{background:var(--g1)} .g2{background:var(--g2)} .g3{background:var(--g3)}
.g4{background:var(--g4)} .g5{background:var(--g5)} .g6{background:var(--g6)}

/* ---- site nav ---- */
.site-nav{display:flex;align-items:center;gap:28px;padding:16px 0;border-bottom:1px solid var(--line);}
.site-nav .wrap{display:flex;align-items:center;gap:28px;width:100%}
.brand{display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-weight:700;font-size:18px;letter-spacing:-.01em;flex-shrink:0;}
.brand-mark{width:32px;height:32px;border-radius:var(--radius);background:var(--accent);color:var(--accent-ink);display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:800;flex-shrink:0;}
.nav-links{display:flex;gap:22px;flex:1}
.nav-links a{font-size:14.5px;color:var(--text-muted);font-weight:500;transition:color .15s}
.nav-links a:hover{color:var(--text)}
.nav-links a.is-current{color:var(--text)}
.nav-search{display:flex;align-items:center;gap:8px;background:var(--bg-3);border:1px solid var(--line);border-radius:999px;padding:8px 14px;font-size:13.5px;color:var(--text-muted);width:180px;flex-shrink:0;}
.nav-cta{background:var(--accent);color:var(--accent-ink);font-weight:600;font-size:14px;padding:9px 16px;border-radius:999px;white-space:nowrap;flex-shrink:0;transition:transform .15s ease;}
.nav-cta:hover{transform:translateY(-1px)}
.nav-cta:active{transform:translateY(0) scale(.98)}
@media (max-width:760px){.nav-links, .nav-search{display:none}}

/* ---- hero ---- */
.hero{padding:56px 0 48px;}
.hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center;}
.hero h1{font-family:var(--font-display);font-size:clamp(32px,4.6vw,52px);line-height:1.06;letter-spacing:-.02em;font-weight:var(--heading-weight,700);max-width:15ch;}
.hero p{margin-top:16px;font-size:16.5px;line-height:1.6;color:var(--text-muted);max-width:46ch;}
.hero-ctas{display:flex;gap:12px;margin-top:26px;flex-wrap:wrap}
.btn-primary{background:var(--accent);color:var(--accent-ink);font-weight:600;font-size:15px;padding:13px 22px;border-radius:999px;white-space:nowrap;transition:transform .15s ease;display:inline-flex;align-items:center;gap:8px;}
.btn-primary:hover{transform:translateY(-2px)}
.btn-primary:active{transform:translateY(0) scale(.98)}
.btn-ghost{border:1px solid var(--line);color:var(--text);font-weight:600;font-size:15px;padding:13px 22px;border-radius:999px;white-space:nowrap;transition:border-color .15s ease,background .15s ease;display:inline-flex;align-items:center;gap:8px;}
.btn-ghost:hover{border-color:var(--accent);background:var(--accent-soft)}
.hero-visual{position:relative;min-height:280px}

.thumb-stack{position:relative;height:320px}
.thumb-stack .ph{position:absolute;border-radius:var(--radius-lg);border:1px solid var(--line);box-shadow:0 20px 50px -18px rgba(0,0,0,.6);}
.thumb-stack .t1{width:58%;top:0;left:0;aspect-ratio:4/3;transform:rotate(-4deg);z-index:2}
.thumb-stack .t2{width:46%;bottom:6%;right:0;aspect-ratio:4/3;transform:rotate(5deg);z-index:1}
.thumb-stack .t3{width:38%;top:38%;left:32%;aspect-ratio:1/1;transform:rotate(-2deg);z-index:3;border-color:var(--accent)}

.feature-preview{position:relative;border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--line);box-shadow:0 24px 60px -24px rgba(20,10,5,.28);}
.feature-preview .ph{aspect-ratio:16/10;width:100%;height:auto}
.feature-play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,rgba(0,0,0,0) 55%,rgba(0,0,0,.55) 100%);}
.feature-play .icon{width:56px;height:56px;color:#fff;filter:drop-shadow(0 6px 18px rgba(0,0,0,.4));}
.feature-tag{position:absolute;top:14px;left:14px;background:var(--accent);color:var(--accent-ink);font-size:12px;font-weight:700;padding:5px 11px;border-radius:999px;}

.editorial-photo{border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--line);}
.editorial-photo .ph{aspect-ratio:4/3;width:100%;height:auto}

.index-card{position:relative;background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);padding:20px;}
.index-card .stamp{position:absolute;top:14px;right:14px;border:2px solid var(--accent);color:var(--accent);font-family:var(--font-mono);font-size:11px;font-weight:700;letter-spacing:.08em;padding:4px 9px;border-radius:4px;transform:rotate(6deg);}

@media (max-width:900px){.hero .wrap{grid-template-columns:1fr} .hero-visual{order:-1}}

/* ---- stat / value strip ---- */
.value-strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:26px 0;}
.value-strip .wrap{display:flex;gap:0;}
.value-strip .stat{flex:1;display:flex;flex-direction:column;gap:4px;padding:0 24px;border-left:1px solid var(--line);}
.value-strip .stat:first-child{border-left:0;padding-left:0}
.value-strip .stat b{font-family:var(--font-mono);font-size:22px;font-weight:600;letter-spacing:-.01em;}
.value-strip .stat span{font-size:13px;color:var(--text-muted)}
@media (max-width:700px){.value-strip .wrap{flex-direction:column;gap:16px} .value-strip .stat{border-left:0;padding-left:0}}

/* ---- section head ---- */
.section{padding:52px 0}
.section-head{margin-bottom:26px;max-width:60ch}
.section-head h2{font-family:var(--font-display);font-size:clamp(22px,2.6vw,30px);font-weight:var(--heading-weight,700);letter-spacing:-.01em;}
.section-head p{margin-top:8px;font-size:15px;color:var(--text-muted);line-height:1.55}
.section-foot{margin-top:26px;display:flex;justify-content:center}

/* ---- game grid (uniform) ---- */
.game-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
@media (max-width:900px){.game-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.game-grid{grid-template-columns:1fr}}

.game-card{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;transition:transform .18s ease,border-color .18s ease;animation:card-in .5s ease both;}
.game-card:hover{transform:translateY(-4px);border-color:var(--accent)}
.game-card .thumb{position:relative;aspect-ratio:var(--thumb-ratio,4/3);overflow:hidden}
.game-card:hover .thumb .ph{transform:scale(1.05)}
.game-card .thumb .play-badge{position:absolute;right:10px;bottom:10px;width:34px;height:34px;border-radius:50%;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;color:#fff;font-size:16px;opacity:0;transition:opacity .18s ease;}
.game-card:hover .thumb .play-badge{opacity:1}
.game-card .body{padding:14px 16px}
.game-card h3{font-size:15.5px;font-weight:600;letter-spacing:-.005em}
.game-card .meta{margin-top:5px;font-size:12.5px;color:var(--text-muted);display:flex;gap:8px;align-items:center}
.tag{display:inline-block;font-size:11.5px;font-weight:600;color:var(--text-muted);border:1px solid var(--line);border-radius:999px;padding:3px 9px;}

@keyframes card-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.game-grid .game-card:nth-child(1){animation-delay:.02s}
.game-grid .game-card:nth-child(2){animation-delay:.06s}
.game-grid .game-card:nth-child(3){animation-delay:.10s}
.game-grid .game-card:nth-child(4){animation-delay:.14s}
.game-grid .game-card:nth-child(5){animation-delay:.18s}
.game-grid .game-card:nth-child(6){animation-delay:.22s}

/* ---- category tile grid ---- */
.tile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;}
.cat-tile{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);padding:16px;transition:border-color .15s ease,transform .15s ease;}
.cat-tile:hover{border-color:var(--accent);transform:translateY(-2px)}
.cat-tile b{display:block;font-size:15px;font-weight:600}
.cat-tile span{display:block;margin-top:4px;font-family:var(--font-mono);font-size:12.5px;color:var(--text-muted)}

/* ---- value list ---- */
.value-list{display:flex;gap:40px;justify-content:center;flex-wrap:wrap;padding:8px 0 36px}
.value-list .item{display:flex;align-items:center;gap:9px;font-size:14.5px;color:var(--text-muted)}
.value-list .item .icon{font-size:17px;color:var(--accent)}

/* ---- footer ---- */
.site-footer{border-top:1px solid var(--line);padding:34px 0;margin-top:8px}
.site-footer .wrap{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px}
.site-footer .fine{font-size:12.5px;color:var(--text-muted)}
.footer-links{display:flex;gap:18px}
.footer-links a{font-size:13px;color:var(--text-muted)}
.footer-links a:hover{color:var(--text)}

/* ============ CATEGORY PAGE ============ */
.cat-header{padding:44px 0 12px}
.cat-header h1{font-family:var(--font-display);font-size:clamp(28px,3.6vw,40px);font-weight:var(--heading-weight,700)}
.cat-header p{margin-top:10px;font-size:15px;color:var(--text-muted);max-width:60ch;line-height:1.55}
.filter-row{display:flex;gap:10px;padding:20px 0 30px;flex-wrap:wrap;border-bottom:1px solid var(--line)}
.chip{border:1px solid var(--line);border-radius:999px;padding:8px 15px;font-size:13.5px;font-weight:500;color:var(--text-muted);transition:all .15s ease;}
.chip.is-active{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.chip:hover:not(.is-active){border-color:var(--accent)}
.pagination{display:flex;justify-content:center;align-items:center;gap:16px;padding:36px 0 56px}
.pagination button{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;transition:border-color .15s ease;}
.pagination button:hover{border-color:var(--accent)}
.pagination span{font-size:13.5px;color:var(--text-muted);font-family:var(--font-mono)}

/* ============ GAME PAGE ============ */
.game-page{padding:36px 0 0}
.game-layout{display:grid;grid-template-columns:1fr;gap:28px;max-width:940px;margin:0 auto}
.game-layout.with-rail{grid-template-columns:1fr 300px}
@media (max-width:860px){.game-layout.with-rail{grid-template-columns:1fr}}
.player-wrap{padding-top:8px}
.player{position:relative;border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--line);background:var(--bg-2);aspect-ratio:var(--player-ratio,4/3);}
.player-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:rgba(0,0,0,.32);}
.player-btn{width:74px;height:74px;border-radius:50%;background:var(--accent);color:var(--accent-ink);display:flex;align-items:center;justify-content:center;font-size:32px;transition:transform .15s ease;box-shadow:0 14px 34px -12px rgba(0,0,0,.5);}
.player-btn:hover{transform:scale(1.06)}
.player-caption{color:#fff;font-size:13px;font-weight:500;background:rgba(0,0,0,.4);padding:6px 12px;border-radius:999px}

.game-info{margin-top:28px}
.game-info-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}
.game-info h1{font-family:var(--font-display);font-size:clamp(24px,3.2vw,34px);font-weight:var(--heading-weight,700)}
.game-info-tags{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.game-info-meta{display:flex;align-items:center;gap:14px;font-size:13.5px;color:var(--text-muted);white-space:nowrap}
.game-info-meta .stars{color:var(--accent);display:flex;align-items:center;gap:3px}
.game-desc{margin-top:20px;font-size:15px;line-height:1.7;color:var(--text-muted);max-width:66ch}
.controls-row{display:flex;gap:24px;margin-top:22px;flex-wrap:wrap}
.control-chip{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--text-muted)}
.keycap{border:1px solid var(--line);border-radius:6px;padding:4px 8px;font-family:var(--font-mono);font-size:12px;background:var(--bg-2);}
.rail{display:flex;flex-direction:column;gap:20px}

@media (max-width:600px){.game-info-top{flex-direction:column}}

/* ============ AD SLOTS ============
   Marked "Advertisement" per FTC/IAB disclosure norms. Dashed border keeps
   them visually distinct from content so they never get mistaken for a
   design bug during review. */
.ad-slot{
  border:1px dashed var(--line);background:var(--bg-2);border-radius:var(--radius);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  color:var(--text-muted);width:100%;overflow:hidden;
}
.ad-slot::before{content:"Advertisement";font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;font-weight:600;opacity:.75}
.ad-slot .ad-size{font-family:var(--font-mono);font-size:11px;opacity:.6}
.ad-slot--leaderboard{min-height:90px;padding:8px}
.ad-slot--rect{width:300px;height:250px;max-width:100%;margin:0 auto}
.ad-slot--native{aspect-ratio:var(--thumb-ratio,4/3)}
.ad-slot--inline{min-height:100px;padding:14px}
.ad-rail-label{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);opacity:.7;margin-bottom:8px}
.ad-slot--mobile-sticky{
  display:none;position:fixed;left:0;right:0;bottom:0;z-index:50;
  min-height:50px;border-radius:0;border-width:1px 0 0 0;
  background:var(--bg-2);
}
@media (max-width:760px){.ad-slot--mobile-sticky{display:flex}}
.no-ads-note{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--text-muted);justify-content:center;padding:18px 0}
.no-ads-note .icon{color:var(--accent);font-size:15px}

@media (prefers-reduced-motion: reduce){
  .game-card, .btn-primary, .btn-ghost, .nav-cta, .player-btn, .cat-tile, .tp-cursor{animation:none !important;transition:none !important;}
}

/* ==========================================================================
   Добавления темы сверх макета. Макет был статическим: в нём не было
   поиска, постраничной навигации, подвала со ссылками и состояния
   «игра недоступна» — всё это появляется только на живом сайте.
   ========================================================================== */

/* Доступность: подпись для экранного диктора, невидимая глазу.
   Не display:none — такое диктор пропускает. */
.screen-reader-text{
  position:absolute;width:1px;height:1px;overflow:hidden;
  clip-path:inset(50%);white-space:nowrap;
}

/* Поиск в шапке стал настоящей формой. */
.nav-search{position:relative}
.nav-search input{
  border:0;background:none;font:inherit;color:var(--text);
  width:100%;outline:none;
}
.nav-search input::placeholder{color:var(--text-muted)}
.nav-search:focus-within{border-color:var(--accent)}

/* Карточка целиком — ссылка. */
.game-card > a{display:block;color:inherit}
.game-info-tags a.tag{transition:border-color .15s ease,color .15s ease}
.game-info-tags a.tag:hover{border-color:var(--accent);color:var(--accent)}

/* Карточка-образец на главной. */
.index-card .card-no{font-family:var(--font-mono);font-size:12px;color:var(--text-muted)}
.index-card h2{font-family:var(--font-display);font-size:22px;margin-top:6px;font-weight:var(--heading-weight,700)}
.index-card p{margin-top:6px;font-size:13.5px;color:var(--text-muted)}

/* Размер сцены рядом с «Runs on Ruffle» — мелочь, но объясняет, почему
   плеер именно такой ширины. */
.game-info-meta .stage-size{font-family:var(--font-mono);font-size:12px;opacity:.75}

/* Плеер. Оверлей теперь <button>, поэтому нужны сброс и фокус. */
.player-overlay{width:100%;border:0;font:inherit;color:inherit;cursor:pointer}
.player-overlay:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}
.player.is-playing{background:#000}
.player.is-playing > ruffle-player,
.player.is-playing > ruffle-embed,
.player.is-playing canvas{display:block;width:100%!important;height:100%!important}

/* Отбракованная игра: плеера нет, и это сказано словами. */
.player--dead .ph{filter:grayscale(1);opacity:.45}
.player-overlay--static{cursor:default;background:rgba(0,0,0,.42)}

/* Постраничная навигация ссылками, а не кнопками. */
.pagination a{
  width:38px;height:38px;border-radius:50%;border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;
  transition:border-color .15s ease,color .15s ease;
}
.pagination a:hover{border-color:var(--accent);color:var(--accent)}

/* Подвал: ссылки на игры плюс нижняя строка.
   В старой теме здесь было пятьдесят ссылок в пять колонок — вся
   перелинковка сайта держалась на них. Оставляем две дюжины: достаточно,
   чтобы робот ходил по каталогу, и не столько, чтобы подвал стал
   свалкой. */
.footer-games h2{
  font-family:var(--font-display);font-size:15px;font-weight:600;
  margin-bottom:12px;color:var(--text);
}
.footer-games ul{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));
  gap:5px 20px;margin-bottom:26px;
}
.footer-games a{font-size:13px;color:var(--text-muted);line-height:1.5}
.footer-games a:hover{color:var(--accent)}
.footer-bottom{
  display:flex;justify-content:space-between;align-items:center;
  flex-wrap:wrap;gap:14px;padding-top:18px;border-top:1px solid var(--line);
}
.site-footer .wrap{display:block}

@media (max-width:600px){
  .footer-games ul{grid-template-columns:1fr 1fr}
}

/* ==========================================================================
   Миниатюры и мобильная навигация.
   ========================================================================== */

/* Миниатюра — настоящая, но всегда 100×100, и больших на сервере нет.
   Поэтому она лежит по центру тонированной подложки в своём размере:
   растянутая втрое мылит, а резкая на цветном поле выглядит намеренно.
   Рамка и скругление делают из неё карточку, вклеенную в формуляр. */
.game-card .thumb .ph{display:flex;align-items:center;justify-content:center}
.game-card .thumb img{
  width:100px;height:100px;border-radius:var(--radius);
  box-shadow:0 6px 18px -6px rgba(0,0,0,.45);
  background:var(--bg-2);
}
.game-card:hover .thumb img{transform:scale(1.05)}
.game-card .thumb img{transition:transform .3s ease}

/* --- навигация для телефона ---------------------------------------------
   Без JavaScript, на <details>: работает до загрузки скриптов и при их
   отключении, доступна с клавиатуры и для диктора без единого атрибута
   aria. На широком экране не нужна — там есть обычное меню. */
.nav-mobile{display:none;border-bottom:1px solid var(--line);background:var(--bg-2)}
.nav-mobile > summary{
  list-style:none;cursor:pointer;display:flex;align-items:center;gap:12px;
  padding:13px 20px;font-size:15px;font-weight:600;
}
.nav-mobile > summary::-webkit-details-marker{display:none}
.nav-mobile > summary:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}

/* Три полоски рисуются тенями, чтобы не тащить ради них ещё одну иконку. */
.nav-mobile-bars{
  width:18px;height:2px;background:var(--text);position:relative;flex-shrink:0;
  box-shadow:0 -6px 0 var(--text),0 6px 0 var(--text);
}
.nav-mobile[open] > summary{border-bottom:1px solid var(--line)}
.nav-mobile[open] .nav-mobile-bars{box-shadow:0 0 0 var(--text);transform:rotate(45deg)}
.nav-mobile[open] .nav-mobile-bars::after{
  content:"";position:absolute;inset:0;background:var(--text);transform:rotate(90deg);
}

.nav-mobile-body{padding:14px 20px 20px}
.nav-mobile-search{display:flex;gap:8px;margin-bottom:14px}
.nav-mobile-search input{
  flex:1;font:inherit;font-size:16px;  /* 16px: меньше — и iOS увеличивает страницу при фокусе */
  padding:10px 14px;border:1px solid var(--line);border-radius:999px;
  background:var(--bg);color:var(--text);
}
.nav-mobile-search input:focus{outline:none;border-color:var(--accent)}
.nav-mobile-search button{
  width:42px;border:1px solid var(--line);border-radius:999px;
  background:var(--accent);color:var(--accent-ink);flex-shrink:0;
}
.nav-mobile-cats{
  display:grid;grid-template-columns:1fr 1fr;gap:2px 12px;margin-bottom:14px;
}
.nav-mobile-cats a{
  display:flex;justify-content:space-between;gap:8px;
  padding:9px 0;font-size:14.5px;border-bottom:1px solid var(--line);
}
.nav-mobile-cats a span{font-family:var(--font-mono);font-size:12px;color:var(--text-muted)}
.nav-mobile-all{
  display:block;text-align:center;padding:11px;border-radius:999px;
  background:var(--accent);color:var(--accent-ink);font-weight:600;font-size:14.5px;
}

@media (max-width:760px){
  .nav-mobile{display:block}
  .site-nav{padding:12px 0}
}
@media (max-width:420px){
  .nav-mobile-cats{grid-template-columns:1fr}
}
