/* Shared site chrome: color tokens (dark + light) and the one site header (web-shared/site-nav.cjs renders it).
   Loaded by every page family after its own styles. Theme = html[data-theme="dark"|"light"], set before first paint
   by the boot script in site-nav.cjs head(); dark by default, the choice lives in localStorage "gh.theme".
   Page families keep their own :root tokens (dark); :root[data-theme="light"] below wins on specificity. */

@font-face{font-family:Inter;font-style:normal;font-weight:400 800;font-display:swap;src:url(/assets/fonts/inter-cyrillic-ext.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}
@font-face{font-family:Inter;font-style:normal;font-weight:400 800;font-display:swap;src:url(/assets/fonts/inter-cyrillic.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:Inter;font-style:normal;font-weight:400 800;font-display:swap;src:url(/assets/fonts/inter-latin-ext.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:Inter;font-style:normal;font-weight:400 800;font-display:swap;src:url(/assets/fonts/inter-latin.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}

/* ── Tokens ─────────────────────────────────────────────────────────────── */
:root{
  --gh-nav-bg:rgba(7,10,17,.72);
  --gh-nav-line:rgba(255,255,255,.08);
  --gh-pop-bg:rgba(17,24,39,.96);
  --gh-pop-shadow:0 18px 48px rgba(0,0,0,.5), 0 0 0 1px rgba(255,255,255,.06);
  --gh-hover:rgba(255,255,255,.06);
  --gh-active:rgba(139,124,216,.16);
  --gh-ink:#F3F6FC; --gh-mute:#94A2BC; --gh-accent:#A797F0;
  --gh-cta-a:#9A8BE6; --gh-cta-b:#7A69CF; --gh-cta-ink:#fff;
}
:root[data-theme="light"]{
  color-scheme:light;
  --bg:#F5F4EF; --bg-2:#ECEAE2; --card:#FFFFFF; --map:#0B1322;
  --line:rgba(18,22,34,.10); --line-2:rgba(18,22,34,.18);
  --text:#121622; --muted:#475067; --dim:#5C6680; --meta:#5C6680;
  --accent:#6A5BC4; --accent-hi:#5A4BB3; --link:#5A4BB3;
  --h1grad:linear-gradient(96deg,#121622 0%,#3D3470 45%,#6A5BC4 100%);
  --shadow:0 16px 40px rgba(18,22,34,.14);
  --gh-nav-bg:rgba(245,244,239,.78);
  --gh-nav-line:rgba(18,22,34,.09);
  --gh-pop-bg:rgba(255,255,255,.97);
  --gh-pop-shadow:0 18px 48px rgba(18,22,34,.16), 0 0 0 1px rgba(18,22,34,.07);
  --gh-hover:rgba(18,22,34,.05);
  --gh-active:rgba(106,91,196,.12);
  --gh-ink:#121622; --gh-mute:#475067; --gh-accent:#5A4BB3;
  --gh-cta-a:#7B6BD6; --gh-cta-b:#5D4DBE;
}
:root[data-theme="dark"]{color-scheme:dark}

/* ── Header ─────────────────────────────────────────────────────────────── */
.gh-nav{
  position:sticky; top:0; z-index:50;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Noto Sans",sans-serif;
  font-size:14px; line-height:1; color:var(--gh-ink);
  background:transparent; border-bottom:1px solid transparent;
  transition:background-color .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.gh-nav[data-scrolled]{
  background:var(--gh-nav-bg); border-bottom-color:var(--gh-nav-line);
  -webkit-backdrop-filter:blur(18px) saturate(160%); backdrop-filter:blur(18px) saturate(160%);
}
html:not(.gh-js) .gh-nav{background:var(--gh-nav-bg); border-bottom-color:var(--gh-nav-line)}
.gh-in{
  max-width:1120px; margin:0 auto; height:64px; padding:0 24px;
  display:flex; align-items:center; gap:12px;
}
.gh-nav a{text-decoration:none; color:inherit}
.gh-nav svg{width:18px; height:18px; flex:none}

.gh-brand{display:flex; align-items:center; gap:10px; font-weight:700; font-size:15px; letter-spacing:-.01em; white-space:nowrap; margin-inline-end:8px}
.gh-brand img{width:28px; height:28px; border-radius:8px; box-shadow:0 0 0 1px var(--gh-nav-line), 0 4px 14px rgba(74,144,226,.22)}

.gh-links{display:flex; align-items:center; gap:2px; margin-inline:auto}
.gh-link{
  display:inline-flex; align-items:center; gap:8px; height:38px; padding:0 14px; border-radius:999px;
  color:var(--gh-mute)!important; font-weight:600; letter-spacing:.005em;
  transition:color .18s ease, background-color .18s ease;
}
.gh-link svg{opacity:.8}
.gh-link:hover{color:var(--gh-ink)!important; background:var(--gh-hover)}
.gh-link[aria-current="page"]{color:var(--gh-ink)!important; background:var(--gh-active)}
.gh-link[aria-current="page"] svg{color:var(--gh-accent); opacity:1}

.gh-tools{display:flex; align-items:center; gap:6px}
.gh-pop{position:relative}
.gh-pop>summary{list-style:none}
.gh-pop>summary::-webkit-details-marker{display:none}
.gh-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:6px; height:38px; padding:0 12px;
  border-radius:999px; cursor:pointer; user-select:none; color:var(--gh-mute); font-weight:600;
  border:1px solid var(--gh-nav-line); background:transparent;
  transition:color .18s ease, background-color .18s ease, border-color .18s ease;
}
.gh-btn:hover,.gh-pop[open]>.gh-btn{color:var(--gh-ink); background:var(--gh-hover)}
.gh-btn:focus-visible,.gh-link:focus-visible,.gh-cta:focus-visible,.gh-item:focus-visible,.gh-brand:focus-visible{outline:2px solid var(--gh-accent); outline-offset:2px}
.gh-icon{width:38px; padding:0}
.gh-code{color:var(--gh-ink); font-size:13px; letter-spacing:.02em}
.gh-chev{width:14px!important; height:14px!important; transition:transform .2s ease}
.gh-pop[open] .gh-chev{transform:rotate(180deg)}
.gh-th{display:none; line-height:0}
:root[data-theme="light"] .gh-th-light,:root:not([data-theme="light"]) .gh-th-dark{display:inline-flex}

.gh-menu{
  position:absolute; top:calc(100% + 10px); inset-inline-end:0; min-width:200px; padding:6px;
  display:flex; flex-direction:column; gap:2px; border-radius:14px;
  background:var(--gh-pop-bg); box-shadow:var(--gh-pop-shadow);
  -webkit-backdrop-filter:blur(20px); backdrop-filter:blur(20px);
  transform-origin:top right; animation:gh-in .16s ease-out;
}
[dir="rtl"] .gh-menu{transform-origin:top left}
@keyframes gh-in{from{opacity:0; transform:translateY(-4px) scale(.98)}to{opacity:1; transform:none}}
.gh-item{
  display:flex; align-items:center; gap:10px; width:100%; min-height:38px; padding:0 12px; border-radius:9px;
  color:var(--gh-ink)!important; font:inherit; font-weight:500; text-align:start; white-space:nowrap;
  background:none; border:0; cursor:pointer;
}
.gh-item:hover{background:var(--gh-hover)}
.gh-item>span{flex:1}
.gh-item svg{color:var(--gh-mute)}
.gh-check{opacity:0; color:var(--gh-accent)!important}
.gh-item[aria-current="true"],.gh-item[aria-checked="true"]{font-weight:700}
.gh-item[aria-current="true"] .gh-check,.gh-item[aria-checked="true"] .gh-check{opacity:1}
html:not(.gh-js) .gh-theme{display:none}

.gh-cta{
  display:inline-flex; align-items:center; gap:8px; height:38px; padding:0 16px; border-radius:999px;
  color:var(--gh-cta-ink)!important; font-weight:700; white-space:nowrap;
  background:linear-gradient(180deg,var(--gh-cta-a),var(--gh-cta-b));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.22), 0 6px 18px rgba(122,105,207,.35);
  transition:transform .15s ease, box-shadow .2s ease, filter .2s ease;
}
.gh-cta:hover{filter:brightness(1.06); box-shadow:inset 0 1px 0 rgba(255,255,255,.22), 0 8px 24px rgba(122,105,207,.45)}
.gh-cta:active{transform:scale(.97)}

.gh-more{display:none}
.gh-x{display:none}
.gh-more[open] .gh-burger{display:none}
.gh-more[open] .gh-x{display:block}
.gh-sheet{min-width:240px}
.gh-sheet .gh-item[aria-current="page"]{background:var(--gh-active); font-weight:700}
.gh-sheet .gh-item[aria-current="page"] svg{color:var(--gh-accent)}
.gh-item-cta{margin-top:4px; border-top:1px solid var(--gh-nav-line); border-radius:0 0 9px 9px; padding-top:2px}
.gh-item-cta svg{color:var(--gh-accent)}

/* Tablet: icon-only section links */
@media (max-width:980px){
  .gh-link{padding:0 11px}
  .gh-link span{display:none}
  .gh-link{width:38px; justify-content:center; padding:0}
}
/* Phone: sections + CTA move into the menu */
@media (max-width:640px){
  .gh-in{height:56px; padding:0 16px; gap:8px}
  .gh-links,.gh-cta{display:none}
  .gh-more{display:block}
  .gh-tools{margin-inline-start:auto}
  .gh-lang .gh-chev{display:none}
}
@media (max-width:360px){.gh-brand span{display:none}}
@media (prefers-reduced-motion:reduce){.gh-menu{animation:none}.gh-nav,.gh-link,.gh-btn,.gh-cta{transition:none}}
