
:root {
  --night: #0a0f1c; --deck: #121a2c; --deck2: #172137; --line: #24304a; --ink: #e9edf5; --dim: #95a1b8;
  --fire: #ff8a1f; --ember: #ffc14d; --bid: #2bc39a; --ask: #ff6b6b;
  --display: "Montserrat", "Segoe UI", Arial, sans-serif;
  --body: "IBM Plex Sans", "Segoe UI", Roboto, Arial, sans-serif;
  --mono: "JetBrains Mono", Consolas, monospace;
  color-scheme: dark;
}
* { box-sizing: border-box }
body { margin: 0; background: var(--night); color: var(--ink); font: 400 16px/1.65 var(--body) }
a { color: var(--ember) }
body::before { content: ""; position: fixed; inset: 0 0 auto; height: env(safe-area-inset-top, 0px); z-index: 10; background: var(--night) }
header { position: sticky; top: env(safe-area-inset-top, 0px); z-index: 5; background: var(--night); border-bottom: 1px solid var(--line) }
.bar { max-width: 1240px; margin: 0 auto; display: flex; align-items: center; gap: 16px; padding-block: 12px;
  padding-left: max(16px, env(safe-area-inset-left, 0px)); padding-right: max(16px, env(safe-area-inset-right, 0px)) }
.brand { font: 800 17px/1 var(--display); color: var(--ink); text-decoration: none }
.brand span { color: var(--fire) }
.crumb { color: var(--dim); font-size: 14px }
.grow { flex: 1 }
.lang { display: flex; border: 1px solid var(--line); border-radius: 8px; overflow: hidden }
.lang button { background: none; border: 0; color: var(--dim); font: 600 12px/1 var(--body); padding: 9px 11px; cursor: pointer; min-height: 36px }
.lang button[aria-pressed="true"] { background: var(--deck); color: var(--ink) }
.menuBtn { display: none; background: var(--deck); color: var(--ink); border: 1px solid var(--line); border-radius: 8px; padding: 8px 12px; font: 600 14px var(--body); min-height: 40px }

.wrap { max-width: 1240px; margin: 0 auto; display: grid; grid-template-columns: 290px minmax(0, 1fr); gap: 36px;
  padding-block: 24px 64px; padding-left: max(16px, env(safe-area-inset-left, 0px)); padding-right: max(16px, env(safe-area-inset-right, 0px)) }
aside { position: sticky; top: 76px; align-self: start; max-height: calc(100vh - 96px); overflow: auto; padding-right: 6px }
.search { width: 100%; background: var(--deck); border: 1px solid var(--line); color: var(--ink); border-radius: 8px; padding: 10px 12px; font: 400 15px var(--body); margin-bottom: 14px }
.toc { list-style: none; margin: 0; padding: 0; font-size: 14.5px }
.toc > li { margin-bottom: 2px }
.toc .ch { display: flex; gap: 10px; padding: 7px 10px; border-radius: 6px; color: var(--ink); text-decoration: none }
.toc .ch:hover { background: var(--deck) }
.toc .ch b { color: var(--dim); font: 600 12px/1.9 var(--mono); min-width: 22px }
.toc .on > .ch { background: var(--deck2); box-shadow: inset 3px 0 0 var(--fire) }
.toc ul { list-style: none; margin: 2px 0 8px 32px; padding: 0 }
.toc ul a { display: block; color: var(--dim); text-decoration: none; padding: 4px 8px; font-size: 13.5px; border-radius: 5px }
.toc ul a:hover { color: var(--ink) }
.tier { font: 600 10.5px/1 var(--body); letter-spacing: .06em; color: var(--night); background: var(--ember); border-radius: 4px; padding: 3px 5px; margin-left: 6px; vertical-align: 1px }

main { min-width: 0; max-width: 820px }
.eyebrow { font: 600 12px/1 var(--body); letter-spacing: .14em; text-transform: uppercase; color: var(--fire) }
h1 { font: 800 34px/1.15 var(--display); margin: 8px 0 10px; text-wrap: balance }
h2 { font: 800 22px/1.25 var(--display); margin: 40px 0 10px; text-wrap: balance; scroll-margin-top: 80px }
h3 { font: 600 17px/1.3 var(--body); margin: 26px 0 6px }
.lead { color: var(--dim); max-width: 66ch; margin: 0 }
p, li { max-width: 68ch }
.where { display: inline-flex; flex-wrap: wrap; gap: 6px; align-items: center; background: var(--deck); border: 1px solid var(--line); border-radius: 8px; padding: 8px 12px; margin: 14px 0 0; font-size: 14px; color: var(--dim) }
.where kbd, kbd { font: 600 12.5px var(--mono); color: var(--ink); background: var(--deck2); border: 1px solid var(--line); border-bottom-width: 2px; border-radius: 5px; padding: 1px 6px }
.shot { margin: 20px 0 8px; border: 1px dashed #3a4a6c; border-radius: 10px; background: repeating-linear-gradient(135deg, var(--deck), var(--deck) 12px, #101828 12px, #101828 24px);
  aspect-ratio: 16 / 8; max-width: 100%; position: relative; display: grid; place-items: center; color: var(--dim); font-size: 14px }
.pin { position: absolute; width: 26px; height: 26px; border-radius: 50%; background: var(--fire); color: #1a0d00; font: 800 13px/26px var(--display); text-align: center; box-shadow: 0 0 0 3px rgba(255,138,31,.25) }
figcaption { color: var(--dim); font-size: 13.5px; margin-bottom: 14px }
ol.callouts { padding-left: 0; list-style: none; counter-reset: c; margin: 10px 0 }
ol.callouts li { counter-increment: c; display: grid; grid-template-columns: 30px minmax(0,1fr); gap: 8px; margin: 8px 0 }
ol.callouts li::before { content: counter(c); width: 22px; height: 22px; border-radius: 50%; background: var(--fire); color: #1a0d00; font: 800 12px/22px var(--display); text-align: center; margin-top: 2px }
.tbl { overflow-x: auto; border: 1px solid var(--line); border-radius: 10px; margin: 14px 0 }
table { border-collapse: collapse; width: 100%; min-width: 560px; font-size: 14.5px }
th, td { text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--line); vertical-align: top }
th { background: var(--deck); color: var(--dim); font-weight: 600; font-size: 13px }
tr:last-child td { border-bottom: 0 }
td:first-child { color: var(--ink); font-weight: 600; white-space: nowrap }
.note, .warn { border-radius: 10px; padding: 12px 14px; margin: 16px 0; font-size: 15px; max-width: 68ch }
.note { background: rgba(43,195,154,.08); border: 1px solid rgba(43,195,154,.35) }
.warn { background: rgba(255,138,31,.08); border: 1px solid rgba(255,138,31,.4) }
.note b, .warn b { display: block; font-size: 13px; letter-spacing: .04em; text-transform: uppercase; margin-bottom: 2px }
.note b { color: var(--bid) } .warn b { color: var(--fire) }
.keys { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 8px; margin: 12px 0 }
.keys div { background: var(--deck); border: 1px solid var(--line); border-radius: 8px; padding: 10px 12px; font-size: 14px }
.keys div span { display: block; color: var(--dim); font-size: 13px; margin-top: 4px }
.pager { display: flex; gap: 12px; margin-top: 44px; flex-wrap: wrap }
.pager a { flex: 1 1 220px; border: 1px solid var(--line); border-radius: 10px; padding: 14px 16px; text-decoration: none; color: var(--ink); background: var(--deck) }
.pager a small { display: block; color: var(--dim); font-size: 12.5px }
.pager a:last-child { text-align: right }
[lang="en"] .ru, [lang="ru"] .en { display: none }

@media (max-width: 900px) {
  .wrap { grid-template-columns: minmax(0,1fr) }
  aside { position: static; max-height: none; display: none; border: 1px solid var(--line); border-radius: 10px; padding: 12px; background: var(--deck) }
  aside.open { display: block }
  .menuBtn { display: inline-block }
  .crumb { display: none }
  h1 { font-size: 28px }
}

.shot img { width: 100%; height: auto; display: block; border-radius: 10px }
.shot.real { border: 1px solid var(--line); background: none; aspect-ratio: auto; display: block }
.shot.real .pin { pointer-events: none }
.chapters { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 10px; margin: 22px 0 }
.chapters a { display: block; background: var(--deck); border: 1px solid var(--line); border-radius: 10px; padding: 14px 16px; text-decoration: none; color: var(--ink); min-height: 44px }
.chapters a b { color: var(--fire); font: 600 12px var(--mono); display: block; margin-bottom: 4px }
ol.steps { padding-left: 22px } ol.steps li { margin: 6px 0 }
.path { font-family: var(--mono); font-size: 13.5px; color: var(--ember) }
