/* Language: the RU/EN switch and Cyrillic type. Loaded after site.css.
   Cinzel and Cinzel Decorative have no Cyrillic, so Russian pages set headings, buttons, navigation and small-caps
   labels in Cormorant Garamond (whose bundled 500/600/700 files cover Cyrillic). Anything marked lang="en" (the
   PERSEPHONE wordmark, the hero title) keeps Cinzel. On English pages Cormorant is only the fallback for Cyrillic
   letters in player content (names, section titles), instead of Georgia. */

@font-face { font-family: "Cormorant Garamond"; font-style: normal; font-display: swap; font-weight: 700;
  src: url(../fonts/cormorant-garamond-latin-700-normal.woff2) format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Cormorant Garamond"; font-style: normal; font-display: swap; font-weight: 700;
  src: url(../fonts/cormorant-garamond-latin-ext-700-normal.woff2) format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Cormorant Garamond"; font-style: normal; font-display: swap; font-weight: 700;
  src: url(../fonts/cormorant-garamond-cyrillic-700-normal.woff2) format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }

:root {
  --font-display: "Cinzel Decorative", "Cinzel", "Cormorant Garamond", Georgia, serif;
  --font-heading: "Cinzel", "Cormorant Garamond", Georgia, "Times New Roman", serif;
}

:root:lang(ru) {
  --font-display: "Cormorant Garamond", Georgia, serif;
  --font-heading: "Cormorant Garamond", Georgia, "Times New Roman", serif;
}

:root:lang(ru) [lang="en"] {
  --font-display: "Cinzel Decorative", "Cinzel", Georgia, serif;
  --font-heading: "Cinzel", Georgia, "Times New Roman", serif;
}

/* Cormorant is smaller on the line than Cinzel: small tracked capitals get a little more size and less tracking,
   headings a heavier weight, and figures are lining like Cinzel's. */
:lang(ru) :is(.eyebrow, .nav a, .menu-panel a, .tabs a, .toc a, .md-tab, .news time, .site-foot nav a,
  .auth-art blockquote footer, .section-edit legend, .stat-table tr.group td) {
  font-size: 0.86rem;
  letter-spacing: 0.08em;
  font-weight: 700;
}
:lang(ru) .eyebrow { letter-spacing: 0.14em; }
:lang(ru) .btn { font-size: 0.92rem; letter-spacing: 0.05em; }
:lang(ru) input[type="file"]::file-selector-button { font-family: var(--font-ui); font-size: 0.78rem; letter-spacing: 0.02em; }
:lang(ru) :is(h1, h2, h3, .steps strong, .empty strong, .race-option strong, .perk .title, .stat-name, .perk-list strong,
  table.queue td a.name, .skill-table tbody th) {
  font-weight: 700;
  letter-spacing: 0.01em;
}
:root:lang(ru) body { font-variant-numeric: lining-nums; }
:lang(ru) .hero-title[lang="en"] { font-family: var(--font-display); }
:lang(ru) .stat-table thead th { letter-spacing: 0.06em; }
:lang(ru) .meter-label { letter-spacing: 0.08em; }
:lang(ru) .skill-table tbody th { white-space: normal; }

/* RU / EN switch: two plain links, the current one marked. Works without JavaScript. */
.lang-switch { display: inline-flex; align-items: center; gap: 0.1rem; flex: none; }
.lang-switch a {
  display: inline-grid; place-items: center; min-width: 2.25rem; min-height: 2.25rem; padding: 0 0.45rem;
  border-radius: 8px; border: 1px solid transparent; text-decoration: none;
  font-family: var(--font-ui); font-weight: 650; font-size: 0.74rem; letter-spacing: 0.08em; color: var(--ink-faint);
}
.lang-switch a + a { position: relative; }
.lang-switch a + a::before {
  content: ""; position: absolute; left: -0.1rem; top: 30%; bottom: 30%; width: 1px; background: var(--line);
}
.lang-switch a:hover { color: var(--gold-bright); }
.lang-switch a[aria-current="true"] { color: var(--ink); border-color: var(--line); }
.lang-switch a:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }

.topbar .bar-switch { margin-left: 0.2rem; }
.topbar .nav + .bar-switch, .topbar .account + .bar-switch { padding-left: 0.6rem; border-left: 1px solid var(--line); }

@media (max-width: 1080px) {
  .topbar .bar { gap: 1rem; }
}
@media (max-width: 860px) {
  .topbar .bar-switch { margin-left: auto; padding-left: 0; border-left: 0; }
  .topbar .bar-switch + .menu { margin-left: 0.4rem; }
}
@media (max-width: 480px) {
  .topbar .bar { gap: 0.6rem; }
  .topbar .bar-switch a { min-width: 2rem; padding: 0 0.3rem; }
}
