/* ══════════════════════════════════════════════════════════════════
   Седер Олам — облик справочника
   ══════════════════════════════════════════════════════════════════ */
:root{
  color-scheme:light;
  --paper:var(--t-paper);
  --surface:var(--t-surface);
  --ink:var(--t-ink);
  --ink-2:var(--t-ink-2);
  --ink-3:var(--t-ink-3);
  --rule:var(--t-rule);
  --rule-2:var(--t-rule-2);
  --tekhelet:var(--t-blue);
  --tekhelet-soft:var(--t-blue-soft);
  --gold:var(--t-gold);
  --gold-soft:var(--t-gold-soft);
  --world:var(--t-world);
  --world-soft:var(--t-world-soft);
  --chain:var(--t-chain);
  --shadow-1:var(--t-sh-1);
  --shadow-2:var(--t-sh-2);
  --serif:var(--t-serif);
  --sans:var(--t-sans);
  --measure:min(34rem,100%);
  --ease:var(--t-ease);
}
:root[data-theme="dark"]{
  color-scheme:dark;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:var(--tekhelet);text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:2px}
button{font:inherit;color:inherit;cursor:pointer;background:none;border:0}
:focus-visible{outline:2px solid var(--tekhelet);outline-offset:3px;border-radius:3px}
img{max-width:100%}

/* ─────────────────────────── шапка ─────────────────────────── */
.site-head{position:sticky;top:0;z-index:50;background:var(--surface);
  border-bottom:1px solid var(--rule);backdrop-filter:saturate(140%) blur(6px)}
.site-head .wrap{max-width:75rem;margin:0 auto;padding:0 1rem;
  display:flex;align-items:center;gap:.9rem;height:3.75rem}
.mark{display:flex;align-items:baseline;gap:.55rem;flex:0 0 auto}
.mark b{font-family:var(--serif);font-size:1.32rem;font-weight:600;letter-spacing:-.015em;color:var(--ink)}
.mark span{font-size:.72rem;color:var(--ink-3);letter-spacing:.04em;display:none}
@media(min-width:60rem){ .mark span{display:inline} }
.site-nav{display:flex;gap:.15rem;flex:1 1 auto}
.site-nav a{padding:.45rem .7rem;border-radius:.4rem;font-size:.9rem;color:var(--ink-2);white-space:nowrap}
.site-nav a:hover{background:var(--gold-soft);color:var(--ink);text-decoration:none}
.site-nav a[aria-current]{color:var(--ink);font-weight:600;box-shadow:inset 0 -2px 0 var(--gold)}
@media(max-width:56rem){ .site-nav{display:none} }
.head-tools{display:flex;align-items:center;gap:.4rem;flex:1 1 auto;min-width:0;justify-content:flex-end}
.iconbtn{width:2.1rem;height:2.1rem;border-radius:.45rem;display:grid;place-items:center;
  color:var(--ink-2);font-size:1rem}
.iconbtn:hover{background:var(--gold-soft);color:var(--ink)}

/* поиск */
.finder{position:relative;flex:1 1 8rem;min-width:0}
.finder input{width:100%;height:2.1rem;padding:0 .7rem 0 2rem;border:1px solid var(--rule);
  border-radius:.45rem;background:var(--paper);font-size:.86rem;color:var(--ink)}
.finder input:focus{outline:none;border-color:var(--tekhelet);background:var(--surface)}
.finder svg{position:absolute;left:.6rem;top:.55rem;color:var(--ink-3);pointer-events:none}
.finder-res{position:absolute;top:2.5rem;left:0;width:min(27rem,90vw);max-height:60vh;overflow:auto;
  background:var(--surface);border:1px solid var(--rule);border-radius:.6rem;box-shadow:var(--shadow-2);
  padding:.3rem;z-index:60}
.finder-res:empty{display:none}
.finder-res a{display:block;padding:.45rem .55rem;border-radius:.35rem;font-size:.88rem;color:var(--ink)}
.finder-res a:hover{background:var(--gold-soft);text-decoration:none}
.finder-res .grp{font-size:.66rem;text-transform:uppercase;letter-spacing:.09em;color:var(--ink-3);
  padding:.55rem .55rem .2rem;font-weight:700}
.finder-res .yy{color:var(--ink-3);font-size:.75rem;font-variant-numeric:tabular-nums}

/* ─────────────────────────── каркас ─────────────────────────── */
.wrap{max-width:75rem;margin:0 auto;padding:0 1.25rem}
main{display:block;min-height:60vh}
.crumbs{font-size:.8rem;color:var(--ink-3);padding:1.4rem 0 .1rem}
.crumbs a{color:var(--ink-3)}
.crumbs a:hover{color:var(--ink-2)}
.crumbs i{font-style:normal;opacity:.5;margin:0 .35rem}

.doc{display:grid;grid-template-columns:minmax(0,1fr);gap:2.5rem;padding-bottom:5rem}
.doc > *{min-width:0}
@media(min-width:64rem){ .doc{grid-template-columns:minmax(0,1fr) 17.5rem;align-items:start} }

/* ─────────────────────────── статья ─────────────────────────── */
.art h1{overflow-wrap:break-word;font-family:var(--serif);font-size:clamp(2rem,4.2vw,2.9rem);line-height:1.13;
  font-weight:600;letter-spacing:-.02em;margin:.35rem 0 .6rem}
.dateline{font-family:var(--sans);font-size:.82rem;color:var(--gold);font-weight:650;
  letter-spacing:.09em;text-transform:uppercase;font-variant-numeric:tabular-nums}
.lead{font-family:var(--serif);font-size:1.28rem;line-height:1.55;color:var(--ink-2);
  margin:0 0 1.7rem;max-width:var(--measure)}
.art .body{max-width:var(--measure)}
.art .body p{font-family:var(--serif);font-size:1.115rem;line-height:1.78;margin:0 0 1.15rem;
  hyphens:auto;text-wrap:pretty}
.art .body.opening p:first-of-type::first-letter{font-size:3.1em;float:left;line-height:.82;
  padding:.06em .09em 0 0;font-weight:600;color:var(--gold)}
:root[dir="rtl"] .art .body.opening p:first-of-type::first-letter{float:right;padding:.06em 0 0 .09em}
.art h2{font-family:var(--serif);font-size:1.45rem;font-weight:600;letter-spacing:-.01em;
  margin:2.6rem 0 .8rem;padding-top:1.4rem;border-top:1px solid var(--rule-2);max-width:var(--measure)}
.art h2 .ico{color:var(--gold);margin-inline-end:.4rem}

a.wiki{color:var(--tekhelet);border-bottom:1px solid var(--tekhelet-soft)}
a.wiki:hover{background:var(--tekhelet-soft);border-radius:.15rem;text-decoration:none;
  border-bottom-color:var(--tekhelet)}

.callout{max-width:var(--measure);background:var(--gold-soft);border:1px solid var(--rule-2);
  border-radius:.7rem;padding:1rem 1.15rem;font-size:.97rem;line-height:1.65;color:var(--ink-2);margin:0 0 1.2rem}
.callout.blue{background:var(--tekhelet-soft)}
.callout b{color:var(--ink)}

.srclist{max-width:var(--measure);display:flex;flex-wrap:wrap;gap:.4rem}
.srclist a,.srclist span{font-size:.85rem;padding:.35rem .7rem;border-radius:.4rem;
  background:var(--gold-soft);color:var(--ink-2);border:1px solid var(--rule-2)}
.srclist a:hover{background:var(--gold);color:#fff;text-decoration:none;border-color:transparent}
.srclist a::after{content:"↗";font-size:.65em;opacity:.6;margin-inline-start:.25rem}

.chips{display:flex;flex-wrap:wrap;gap:.4rem;max-width:var(--measure)}
.chip{display:inline-flex;align-items:center;gap:.35rem;font-size:.87rem;padding:.4rem .75rem;
  border-radius:2rem;background:var(--surface);border:1px solid var(--rule);color:var(--ink)}
.chip:hover{border-color:var(--tekhelet);text-decoration:none;background:var(--tekhelet-soft)}
.chip .k{opacity:.65}

/* мини-лента «что было рядом» */
.strip{max-width:var(--measure);margin:0 0 2rem;border:1px solid var(--rule);border-radius:.7rem;
  background:var(--surface);padding:.9rem 1rem .7rem;box-shadow:var(--shadow-1)}
.strip .cap{font-size:.7rem;text-transform:uppercase;letter-spacing:.09em;color:var(--ink-3);
  font-weight:650;margin-bottom:.55rem;display:flex;justify-content:space-between}
.strip .cap a{font-size:.72rem;text-transform:none;letter-spacing:0;font-weight:500}
.strip svg{display:block;width:100%;height:74px;overflow:visible}
.strip .band{stroke:var(--rule);stroke-width:15;fill:none;stroke-linecap:round}
.strip .dot{fill:var(--tekhelet);cursor:pointer}
.strip .dot.w{fill:var(--world)}
.strip .dot.me{fill:var(--gold);stroke:var(--surface);stroke-width:2.5}
.strip .lb{font-size:9.5px;fill:var(--ink-3);font-family:var(--sans)}
.strip .lb.me{fill:var(--ink);font-weight:700}
.strip a:hover .lb{fill:var(--tekhelet)}

/* карточки «смотрите также» */
.cards{display:grid;gap:.85rem;grid-template-columns:repeat(auto-fill,minmax(min(15rem,100%),1fr));
  max-width:min(52rem,100%)}
.card{display:block;padding:1rem 1.1rem;background:var(--surface);border:1px solid var(--rule);
  border-radius:.7rem;transition:border-color .15s,transform .15s,box-shadow .15s}
.card:hover{border-color:var(--gold);text-decoration:none;transform:translateY(-2px);box-shadow:var(--shadow-2)}
.card .y{font-size:.72rem;color:var(--gold);font-weight:700;letter-spacing:.07em;
  font-variant-numeric:tabular-nums;text-transform:uppercase}
.card b{display:block;font-family:var(--serif);font-size:1.06rem;font-weight:600;line-height:1.3;
  margin:.28rem 0 .3rem;color:var(--ink)}
.card p{margin:0;font-size:.87rem;line-height:1.5;color:var(--ink-2);
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}

/* соседи */
.prevnext{display:grid;gap:.85rem;grid-template-columns:1fr 1fr;margin-top:2.8rem;max-width:min(52rem,100%)}
@media(max-width:40rem){ .prevnext{grid-template-columns:1fr} }
.prevnext a{padding:.9rem 1.1rem;border:1px solid var(--rule);border-radius:.7rem;background:var(--surface)}
.prevnext a:hover{border-color:var(--gold);text-decoration:none}
.prevnext .k{font-size:.72rem;color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase}
.prevnext b{display:block;font-family:var(--serif);font-size:1rem;font-weight:600;margin-top:.25rem;color:var(--ink)}
.prevnext .nx{text-align:end}

/* ──────────────────────── боковая справка ──────────────────────── */
.infobox{background:var(--surface);border:1px solid var(--rule);border-radius:.8rem;
  padding:1.1rem 1.2rem;box-shadow:var(--shadow-1);font-size:.88rem;position:sticky;top:4.75rem}
.infobox h3{font-family:var(--serif);font-size:1.05rem;margin:0 0 .8rem;font-weight:600}
.infobox dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:.45rem .8rem}
.infobox dt{color:var(--ink-3);font-size:.78rem;white-space:nowrap}
.infobox dd{margin:0;font-variant-numeric:tabular-nums}
.infobox .sep{grid-column:1/-1;height:1px;background:var(--rule-2);margin:.35rem 0}
.infobox .note{font-size:.78rem;color:var(--ink-3);line-height:1.5;margin-top:.8rem}
.badge{display:inline-block;font-size:.72rem;padding:.15rem .5rem;border-radius:1rem;
  background:var(--gold-soft);color:var(--ink-2);border:1px solid var(--rule-2)}
.badge.map{background:var(--world-soft);color:var(--world);border-color:transparent}
.badge.chain{background:rgba(27,127,94,.12);color:var(--chain);border-color:transparent}

/* ─────────────────────────── главная ─────────────────────────── */
.hero{padding:3.5rem 0 2.5rem;border-bottom:1px solid var(--rule-2)}
.hero h1{font-family:var(--serif);font-size:clamp(2.3rem,5.5vw,3.8rem);line-height:1.08;
  font-weight:600;letter-spacing:-.025em;margin:0 0 1rem;max-width:20ch}
.hero p{font-family:var(--serif);font-size:1.24rem;line-height:1.6;color:var(--ink-2);
  max-width:42rem;margin:0 0 1.8rem}
.hero .cta{display:flex;gap:.7rem;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;gap:.45rem;height:2.85rem;padding:0 1.3rem;
  border-radius:.5rem;border:1px solid var(--rule);font-size:.95rem;background:var(--surface);color:var(--ink)}
.btn:hover{border-color:var(--gold);text-decoration:none;background:var(--gold-soft)}
.btn.primary{background:var(--tekhelet);color:#fff;border-color:transparent;font-weight:600}
.btn.primary:hover{filter:brightness(1.08);background:var(--tekhelet)}
.stats{display:flex;gap:2.2rem;flex-wrap:wrap;margin-top:2.2rem;color:var(--ink-3);font-size:.85rem}
.stats b{display:block;font-family:var(--serif);font-size:1.75rem;color:var(--ink);font-weight:600;
  font-variant-numeric:tabular-nums}
section.band{padding:3rem 0;border-bottom:1px solid var(--rule-2)}
section.band > h2{font-family:var(--serif);font-size:1.7rem;font-weight:600;margin:0 0 .4rem}
section.band > .sub{color:var(--ink-3);font-size:.95rem;margin:0 0 1.5rem}
.routes{display:grid;gap:.9rem;grid-template-columns:repeat(auto-fill,minmax(min(17rem,100%),1fr))}
.route{display:flex;gap:.9rem;padding:1.15rem;background:var(--surface);border:1px solid var(--rule);
  border-radius:.8rem}
.route:hover{border-color:var(--gold);text-decoration:none;box-shadow:var(--shadow-2)}
.route .ic{font-size:1.6rem;line-height:1}
.route b{display:block;font-family:var(--serif);font-size:1.08rem;font-weight:600;margin-bottom:.25rem;color:var(--ink)}
.route p{margin:0;font-size:.86rem;line-height:1.5;color:var(--ink-2);
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.route .m{font-size:.75rem;color:var(--ink-3);margin-top:.5rem}

/* указатель */
.idx-tabs{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:1.5rem}
.idx-tabs a{padding:.4rem .85rem;border-radius:2rem;border:1px solid var(--rule);
  font-size:.86rem;color:var(--ink-2)}
.idx-tabs a[aria-current]{background:var(--tekhelet);color:#fff;border-color:transparent;font-weight:600}
.idx-tabs a:hover{text-decoration:none;border-color:var(--gold)}
.idx-cols{column-width:min(15rem,100%);column-gap:2rem}
.idx-grp{break-inside:avoid;margin-bottom:1.2rem}
.idx-grp h3{font-family:var(--serif);font-size:1.15rem;color:var(--gold);margin:0 0 .35rem;font-weight:600}
.idx-grp a{display:block;font-size:.92rem;padding:.16rem 0;color:var(--ink)}
.idx-grp .yy{color:var(--ink-3);font-size:.78rem;font-variant-numeric:tabular-nums}

/* обсуждение */
.talk-box{max-width:var(--measure);border:1px dashed var(--rule);border-radius:.7rem;
  padding:1.4rem;text-align:center;color:var(--ink-3);font-size:.92rem;line-height:1.6}

/* подвал */
.site-foot{border-top:1px solid var(--rule);background:var(--surface);padding:2.5rem 0;
  font-size:.85rem;color:var(--ink-3)}
.site-foot .cols{display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(min(12rem,100%),1fr))}
.site-foot h4{font-size:.75rem;text-transform:uppercase;letter-spacing:.09em;color:var(--ink-2);
  margin:0 0 .6rem;font-weight:700}
.site-foot a{display:block;color:var(--ink-3);padding:.15rem 0}
.site-foot a:hover{color:var(--ink)}
.site-foot .fine{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--rule-2);line-height:1.6}

@media(max-width:34rem){
  .mark b{font-size:1.1rem}
  .art h1{font-size:1.75rem}
  .lead{font-size:1.12rem}
  .art .body p{font-size:1.05rem;line-height:1.72}
  .wrap{padding:0 .9rem}
  .infobox{position:static}
  .strip svg{height:96px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
@media print{ .site-head,.site-foot,.strip,.prevnext,.talk-box{display:none} .doc{grid-template-columns:1fr} }

/* ══════════════════════ живая главная ══════════════════════ */
.gate{min-height:calc(100vh - 3.75rem);display:flex;flex-direction:column;justify-content:center;
  padding:2rem 0 4rem;position:relative}
.gate h1{font-family:var(--serif);font-size:clamp(2.6rem,7vw,5rem);line-height:1.03;font-weight:600;
  letter-spacing:-.03em;margin:0 0 1.2rem;max-width:16ch}
.gate p{font-family:var(--serif);font-size:clamp(1.1rem,2vw,1.35rem);line-height:1.6;color:var(--ink-2);
  max-width:44rem;margin:0 0 2.4rem}
.gate .go{display:inline-flex;align-items:center;gap:.7rem;height:3.4rem;padding:0 2rem;
  border-radius:2rem;background:var(--tekhelet);color:#fff;font-size:1.05rem;font-weight:600;
  border:0;box-shadow:0 4px 18px rgba(47,93,158,.28);transition:transform .18s var(--ease),box-shadow .18s}
.gate .go:hover{transform:translateY(-2px);box-shadow:0 8px 26px rgba(47,93,158,.34)}
.gate .go .arr{transition:transform .25s var(--ease)}
.gate .go:hover .arr{transform:translateY(3px)}
.gate .sub{margin-top:1.6rem;font-size:.85rem;color:var(--ink-3)}

.live{padding:3rem 0 3.5rem;border-bottom:1px solid var(--rule-2);
  opacity:0;transform:translateY(18px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
body.opened .live{opacity:1;transform:none}
.live-head{display:flex;gap:2rem;align-items:flex-end;flex-wrap:wrap;margin-bottom:1.6rem}
.live-head .am{font-family:var(--serif);font-size:clamp(3rem,8vw,4.6rem);line-height:.95;
  font-weight:600;letter-spacing:-.03em;font-variant-numeric:tabular-nums;color:var(--ink)}
.live-head .hd{font-size:.95rem;color:var(--ink-2);margin-top:.4rem}
.live-head .ticker{font-size:1rem;color:var(--ink-2);line-height:1.6;flex:1 1 18rem}
.live-head .ticker b{color:var(--ink);font-variant-numeric:tabular-nums}
.live-head .clock{font-variant-numeric:tabular-nums;color:var(--gold);font-weight:600;
  margin-inline-start:.3rem}
#liveLeft{font-size:.9rem;color:var(--ink-3);margin-top:.5rem}
#liveband{margin:0 0 1rem}
.live-ctl{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1.4rem}
.live-ctl input[type=range]{flex:1 1 18rem;accent-color:var(--tekhelet);height:1.6rem;min-width:12rem}
.live-ctl .hint{font-size:.82rem;color:var(--ink-3)}
.live-ctl button{font-size:.85rem;padding:.4rem .9rem;border:1px solid var(--rule);border-radius:2rem;
  color:var(--ink-2);background:var(--surface)}
.live-ctl button:hover{border-color:var(--gold)}
#liveWhat{background:var(--surface);border:1px solid var(--rule);border-radius:.8rem;padding:1rem 1.2rem;
  max-width:min(46rem,100%)}
.lw-head{font-size:.74rem;letter-spacing:.09em;text-transform:uppercase;color:var(--gold);
  font-weight:700;margin-bottom:.6rem;font-variant-numeric:tabular-nums}
.lw-item{display:flex;gap:.9rem;padding:.4rem 0;font-size:.95rem;color:var(--ink);align-items:baseline}
.lw-item:hover{color:var(--tekhelet);text-decoration:none}
.lw-item .y{color:var(--ink-3);font-size:.8rem;font-variant-numeric:tabular-nums;
  min-width:4.5rem;flex:0 0 auto}

/* сравнение двух событий */
.cmp{display:grid;gap:1rem;grid-template-columns:1fr 1fr;max-width:min(52rem,100%);margin-bottom:1.5rem}
@media(max-width:40rem){ .cmp{grid-template-columns:1fr} }
.cmp .slot{position:relative}
.cmp .slot input{width:100%;height:2.8rem;padding:0 .9rem;border:1px solid var(--rule);
  border-radius:.55rem;background:var(--surface);font-size:.95rem;color:var(--ink)}
.cmp .slot input:focus{outline:none;border-color:var(--tekhelet)}
.cmp .slot .lst{position:absolute;top:3rem;left:0;right:0;max-height:16rem;overflow:auto;z-index:20;
  background:var(--surface);border:1px solid var(--rule);border-radius:.55rem;box-shadow:var(--shadow-2);padding:.25rem}
.cmp .slot .lst:empty{display:none}
.cmp .slot .lst button{display:block;width:100%;text-align:start;padding:.45rem .6rem;
  border-radius:.35rem;font-size:.88rem}
.cmp .slot .lst button:hover{background:var(--gold-soft)}
.cmp .slot .lst .yy{color:var(--ink-3);font-size:.78rem}
#cmpOut{max-width:min(52rem,100%)}
.verdict{background:var(--surface);border:1px solid var(--rule);border-radius:.8rem;padding:1.6rem;
  margin-bottom:1.2rem}
.verdict .big{font-family:var(--serif);font-size:1.6rem;line-height:1.35;font-weight:600;margin:0 0 .8rem}
.verdict .rows{display:grid;grid-template-columns:auto 1fr;gap:.4rem 1rem;font-size:.95rem}
.verdict .rows dt{color:var(--ink-3)}
.verdict .rows dd{margin:0;font-variant-numeric:tabular-nums}

/* звания и награды */
.rank{display:flex;gap:1rem;align-items:center;background:var(--surface);border:1px solid var(--rule);
  border-radius:.8rem;padding:1.1rem 1.3rem;margin-bottom:1.4rem;max-width:min(40rem,100%)}
.rank .sig{font-size:2.2rem;line-height:1}
.rank b{display:block;font-family:var(--serif);font-size:1.25rem;font-weight:600}
.rank .he{font-size:.85rem;color:var(--gold);direction:rtl;unicode-bidi:isolate}
.rank .pr{height:.4rem;background:var(--rule-2);border-radius:1rem;margin-top:.5rem;overflow:hidden}
.rank .pr i{display:block;height:100%;background:var(--gold);border-radius:1rem}
.ladder{display:grid;gap:.6rem;max-width:min(40rem,100%)}
.ladder .row{display:flex;gap:.9rem;align-items:center;padding:.7rem .9rem;border-radius:.6rem;
  border:1px solid var(--rule-2);font-size:.92rem}
.ladder .row.on{border-color:var(--gold);background:var(--gold-soft)}
.ladder .row .sig{font-size:1.3rem}
.ladder .row .he{color:var(--gold);font-size:.85rem;margin-inline-start:auto;direction:rtl;unicode-bidi:isolate}

/* ══════════════════════════════════════════════════════════════════
   Свет на главной. Те же приёмы, что и на ленте, своим кодом:
   медленное сияние за первым экраном, бегущий блик по числу года,
   отблеск на главной кнопке.
   ══════════════════════════════════════════════════════════════════ */
.gate{position:relative;isolation:isolate;overflow:clip}
.gate::before{content:"";position:absolute;z-index:-1;inset:-14% -18% -6% -18%;pointer-events:none;
  background:
    radial-gradient(38% 46% at 22% 34%, rgba(176,130,67,.30), transparent 68%),
    radial-gradient(34% 42% at 68% 26%, rgba(47,93,158,.20), transparent 68%),
    radial-gradient(30% 38% at 50% 74%, rgba(194,90,44,.16), transparent 68%);
  filter:blur(72px);opacity:.8;animation:gateDrift 78s ease-in-out infinite}
:root[data-theme="dark"] .gate::before{opacity:.5}
@keyframes gateDrift{
  0%,100%{transform:none}
  34%{transform:translate3d(3%,2%,0) scale(1.09)}
  67%{transform:translate3d(-3%,-2%,0) scale(.95)}}

/* число года тихо переливается — видно, что счёт живой */
.live .am{background-image:linear-gradient(100deg,
    var(--ink-1) 34%, var(--gold) 46%, var(--ink-1) 58%);
  background-size:280% 100%;-webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
  animation:amShine 9s linear infinite}
@keyframes amShine{from{background-position:180% 0}to{background-position:-80% 0}}

/* блик по главной кнопке */
.gate .go{position:relative;overflow:hidden;isolation:isolate;align-self:flex-start}
.gate .go::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.34) 50%,transparent 60%);
  transform:translateX(-140%)}
.gate .go:hover::after{animation:goSheen 1s cubic-bezier(.16,1,.3,1)}
@keyframes goSheen{from{transform:translateX(-140%)}to{transform:translateX(140%)}}

@media (prefers-reduced-motion:reduce){
  .gate::before,.live .am,.gate .go:hover::after{animation:none!important}
  .live .am{-webkit-text-fill-color:currentColor;color:var(--ink-1)}
}

/* ══════════════════════ ПО ГЛАВАМ ТАНАХА ══════════════════════ */
.tn-part{font-family:var(--serif);font-size:1.5rem;font-weight:600;margin:2.2rem 0 .9rem;
  padding-bottom:.4rem;border-bottom:1px solid var(--rule)}
.tn-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(15rem,100%),1fr));gap:.7rem}
.tn-card{display:block;padding:.85rem .95rem 1rem;border:1px solid var(--rule);border-radius:12px;
  background:var(--raised);text-decoration:none;color:inherit;
  transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .25s}
.tn-card:hover{transform:translateY(-2px);border-color:var(--gold);
  box-shadow:0 6px 20px rgba(60,44,20,.11)}
.tn-card b{display:block;font-family:var(--serif);font-size:1.12rem;font-weight:600;
  letter-spacing:-.01em}
.tn-card .tn-n{display:block;font-size:.78rem;color:var(--ink-3);margin-top:.15rem}
.tn-card .tn-spark{display:block;position:relative;height:16px;margin-top:.55rem}
.tn-card .tn-spark i{position:absolute;bottom:0;width:2px;border-radius:1px;
  background:var(--tekhelet);opacity:.55}
.tn-chs{display:flex;flex-direction:column;gap:.2rem}
.tn-ch{border-top:1px solid var(--rule);padding:.75rem 0 .3rem}
.tn-ch h3{margin:0 0 .45rem;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--gold);font-weight:700}
.tn-ch ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.15rem}
.tn-ch li{display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap;padding:.3rem 0}
.tn-ch li a{display:flex;align-items:baseline;gap:.6rem;text-decoration:none;color:inherit;
  border-radius:7px;padding:.15rem .4rem;margin-inline-start:-.4rem;min-width:0}
.tn-ch li a:hover{background:color-mix(in srgb,var(--gold) 12%,transparent)}
.tn-ch li em{font-style:normal;color:var(--ink-3);font-size:.8rem;
  font-variant-numeric:tabular-nums;flex:0 0 auto;min-width:4.2rem}
.tn-ch li b{font-weight:500;font-size:1rem}
.tn-ch li s{text-decoration:none;color:var(--ink-3);font-size:.76rem;
  background:var(--chip);border-radius:20px;padding:.1rem .5rem}
.tn-ch:target,.tn-ch:has(:target){background:color-mix(in srgb,var(--gold) 8%,transparent)}
.tnchips{display:flex;flex-wrap:wrap;gap:.4rem;margin:.2rem 0 .4rem}
.tnchip{display:inline-block;text-decoration:none;font-size:.85rem;font-weight:600;
  color:var(--tekhelet);background:color-mix(in srgb,var(--tekhelet) 9%,transparent);
  border:1px solid color-mix(in srgb,var(--tekhelet) 22%,transparent);
  border-radius:20px;padding:.22rem .7rem;transition:background .2s,transform .25s var(--ease)}
.tnchip:hover{background:color-mix(in srgb,var(--tekhelet) 17%,transparent);transform:translateY(-1px)}

/* ── Тора: главы и псуким ── */
.tn-part small{display:block;font-family:var(--sans);font-size:.72rem;font-weight:400;
  letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin-top:.2rem}
.parsha-bar{display:flex;flex-wrap:wrap;gap:.3rem;margin:.9rem 0 .2rem}
.parsha-bar a{font-size:.82rem;padding:.22rem .6rem;border:1px solid var(--rule);
  border-radius:999px;color:var(--ink-2)}
.parsha-bar a:hover{border-color:var(--gold);background:var(--gold-soft);text-decoration:none}
.ch-row{display:grid;grid-template-columns:2.4rem 1fr;gap:.85rem;align-items:start;
  padding:.85rem 0;border-top:1px solid var(--rule-2)}
.ch-row .num{font-family:var(--serif);font-size:1.5rem;line-height:1.1;color:var(--gold);
  text-align:right;padding-top:.1rem}
.ch-row .num:hover{text-decoration:none;color:var(--ink)}
.ch-row h4{margin:0 0 .3rem;font-family:var(--serif);font-size:1.1rem;font-weight:600}
.ch-row h4 a{color:var(--ink)}
.ch-row p{margin:0;color:var(--ink-2);font-size:.93rem;line-height:1.58;max-width:44rem}
.ch-row .ev{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.5rem}
.ch-row .ev a{font-size:.76rem;padding:.15rem .55rem;border:1px solid var(--rule);
  border-radius:999px;color:var(--ink-3)}
.ch-row .ev a:hover{border-color:var(--gold);background:var(--gold-soft);
  color:var(--ink);text-decoration:none}
.ch-events{margin:1.4rem 0}
.ch-events h2,.pesukim h2{font-family:var(--serif);font-size:1.15rem;font-weight:600;
  margin:0 0 .5rem;padding-bottom:.35rem;border-bottom:1px solid var(--gold)}
.ch-events ul{list-style:none;margin:0;padding:0}
.ch-events li{display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap;padding:.3rem 0}
.ch-events li a{display:flex;align-items:baseline;gap:.6rem;color:inherit}
.ch-events li em{font-style:normal;color:var(--ink-3);font-size:.8rem;
  font-variant-numeric:tabular-nums;min-width:4.2rem;text-align:right}
.ch-events li b{font-weight:500}
.ch-events li s{text-decoration:none;color:var(--ink-3);font-size:.76rem}
.phead+.lead{margin-top:1rem}
.pesukim{margin:1.6rem 0;max-width:54rem}
.pasuk{display:grid;grid-template-columns:2rem 1fr;gap:.7rem;padding:.6rem 0;
  border-top:1px solid var(--rule-2);scroll-margin-top:4.5rem}
.pasuk:hover{background:color-mix(in srgb,var(--gold) 6%,transparent)}
.pasuk .pn{font-size:.78rem;color:var(--ink-3);text-align:right;padding-top:.55rem;
  font-variant-numeric:tabular-nums}
.pasuk .he{margin:0;direction:rtl;text-align:right;font-family:var(--serif);
  font-size:1.34rem;line-height:2.05;color:var(--ink)}
.pasuk .tr{margin:.25rem 0 0;color:var(--ink-2);font-size:.97rem;line-height:1.62}
.pasuk .brk{margin:.45rem 0 0;text-align:center;color:var(--gold);font-family:var(--serif);
  font-size:.95rem;letter-spacing:.5em;opacity:.75}
.ch-nav{display:grid;grid-template-columns:1fr auto 1fr;gap:.8rem;align-items:center;
  margin:2rem 0 .6rem;padding-top:1rem;border-top:1px solid var(--rule);font-size:.9rem}
.ch-nav .next{text-align:right}
.ch-nav .up{color:var(--ink-3);font-size:.82rem;white-space:nowrap}
.note{padding:.8rem 1rem;border:1px dashed var(--rule);border-radius:10px;
  color:var(--ink-2);font-size:.92rem}
.srcline{margin-top:1.2rem}
@media(max-width:40rem){
  .ch-nav{grid-template-columns:1fr;text-align:left}
  .ch-nav .next{text-align:left}
  .pasuk .he{font-size:1.2rem;line-height:1.95}
}

/* ── недельные главы ── */
.he-name{font-family:var(--serif);font-size:.62em;color:var(--gold);margin-inline-start:.5rem;
  vertical-align:.15em}
.week-box{display:flex;flex-wrap:wrap;align-items:baseline;gap:.2rem .8rem;margin:1rem 0 .4rem;
  padding:.85rem 1.1rem;border:1px solid var(--gold);border-radius:12px;background:var(--gold-soft)}
.week-box .wk-label{font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.week-box .wk-name{font-family:var(--serif);font-size:1.35rem;font-weight:600}
.tn-card.is-week{border-color:var(--gold);background:var(--gold-soft)}
.aliyot{margin:1.4rem 0}
.aliyot h2{font-family:var(--serif);font-size:1.15rem;font-weight:600;margin:0 0 .5rem;
  padding-bottom:.35rem;border-bottom:1px solid var(--gold)}
.aliyot table{border-collapse:collapse;width:100%;max-width:44rem}
.aliyot th{text-align:left;font-weight:500;color:var(--ink-3);font-size:.86rem;
  padding:.35rem .8rem .35rem 0;white-space:nowrap;vertical-align:baseline}
.aliyot td{padding:.35rem 0;font-size:.95rem;vertical-align:baseline}
.aliyot td.dim,.dim{color:var(--ink-3)}
.aliyot .ext{font-size:.8rem;margin-inline-start:.4rem}
h3.aliya{font-family:var(--serif);font-size:1.02rem;font-weight:600;margin:1.5rem 0 .2rem;
  color:var(--gold);display:flex;align-items:baseline;gap:.6rem}
h3.aliya small{font-family:var(--sans);font-size:.75rem;font-weight:400;color:var(--ink-3)}
.aliya-note{font-size:.9rem;margin:1.2rem 0 0}
.pasuk a.pn{font-variant-numeric:tabular-nums;text-decoration:none}
.pasuk a.pn:hover{color:var(--gold)}
p.mitz{line-height:1.4}
p.mitz .mitz-src{display:block;font-size:.8em;opacity:.62;margin-top:.15em}
/* patch_parasha_zapovedi: список заповедей главы */
details.mitzlist{margin:.1rem 0 1.1rem}
details.mitzlist>summary{cursor:pointer;font-size:.88rem;color:var(--gold);
  list-style:none;display:inline-block;padding:.1rem 0}
details.mitzlist>summary::-webkit-details-marker{display:none}
details.mitzlist>summary::before{content:"\25B8 ";font-size:.9em}
details.mitzlist[open]>summary::before{content:"\25BE "}
ol.mitz-ol{list-style:none;margin:.7rem 0 0;padding:0;display:grid;gap:0;
  grid-template-columns:1fr}
ol.mitz-ol li{display:flex;align-items:baseline;gap:.55rem;font-size:.92rem;
  line-height:1.42;padding:.3rem 0;border-bottom:1px solid var(--rule)}
ol.mitz-ol .mnum{flex:0 0 2.3em;text-align:end;color:var(--gold);
  font-variant-numeric:tabular-nums;font-size:.82em;text-decoration:none}
ol.mitz-ol .mnum:hover{text-decoration:underline}
ol.mitz-ol .mtxt{flex:1 1 auto}
ol.mitz-ol .mhe{display:block;font-size:.86em;color:var(--ink-3);margin-top:.05em}
ol.mitz-ol .mvid{flex:0 0 auto;font-style:normal;font-size:.72em;
  color:var(--ink-3);white-space:nowrap}
p.mitz-note{font-size:.8rem;color:var(--ink-3);margin:.7rem 0 0}
@media (min-width:48rem){ol.mitz-ol{grid-template-columns:1fr 1fr;
  column-gap:1.6rem}}
.pheroes{margin:1.6rem 0}
.pheroes h2,.pworld h2{font-family:var(--serif);font-size:1.15rem;font-weight:600;
  margin:0 0 .6rem;padding-bottom:.35rem;border-bottom:1px solid var(--gold)}
.ph-grid{display:grid;gap:.7rem;grid-template-columns:repeat(auto-fill,minmax(min(13rem,100%),1fr))}
.ph-card{display:block;padding:.8rem .95rem;background:var(--surface);
  border:1px solid var(--rule);border-radius:11px;text-decoration:none;
  transition:border-color .15s,transform .15s}
.ph-card:hover{border-color:var(--gold);transform:translateY(-2px);text-decoration:none}
.ph-card b{display:block;font-family:var(--serif);font-size:1.02rem;font-weight:600;
  color:var(--ink);line-height:1.25}
.ph-role{display:block;font-size:.8rem;color:var(--ink-2);line-height:1.45;margin-top:.25rem}
.ph-yrs{display:block;font-size:.72rem;color:var(--gold);margin-top:.35rem;
  font-variant-numeric:tabular-nums}
.ph-chips{margin:.8rem 0 0;font-size:.85rem;line-height:2.1}
.ph-chips a{border:1px solid var(--rule);border-radius:999px;padding:.22rem .7rem;
  margin-inline-end:.35rem;white-space:nowrap;text-decoration:none;color:var(--ink-2)}
.ph-chips a:hover{border-color:var(--gold);color:var(--ink)}
.pworld{margin:1.6rem 0}
.pw-note{font-size:.85rem;color:var(--ink-3);margin:.2rem 0 .6rem}
.pw-list{list-style:none;margin:0;padding:0}
.pw-list li{padding:.2rem 0}
.pw-list a{display:flex;align-items:baseline;gap:.7rem;text-decoration:none}
.pw-list em{font-style:normal;font-size:.78rem;color:var(--world,#c25a2c);
  font-variant-numeric:tabular-nums;min-width:3.2rem;text-align:right}
.pw-list b{font-weight:500;color:var(--ink)}
.pw-list a:hover b{color:var(--world,#c25a2c)}

/* ── навигация «Ещё» ── */
.site-nav details.morenav{position:relative;display:inline-block;vertical-align:baseline}
.site-nav details.morenav>summary{list-style:none;cursor:pointer;display:inline-flex;
  align-items:baseline;gap:5px;font:inherit;color:inherit}
.site-nav details.morenav>summary::-webkit-details-marker{display:none}
.site-nav details.morenav>summary::after{content:"";width:7px;height:7px;
  border-inline-end:1.6px solid currentColor;border-block-end:1.6px solid currentColor;
  transform:rotate(45deg) translateY(-2px);transition:transform .15s}
.site-nav details.morenav[open]>summary::after{transform:rotate(-135deg) translateY(-2px)}
.site-nav details.morenav>div{position:absolute;inset-inline-end:0;top:calc(100% + 8px);
  min-width:14rem;background:var(--surface);border:1px solid var(--rule-2);
  border-radius:12px;box-shadow:var(--shadow-2);padding:7px;z-index:60;
  display:flex;flex-direction:column}
.site-nav details.morenav>div a{display:block;padding:8px 12px;border-radius:8px;
  white-space:nowrap}
.site-nav details.morenav>div a:hover{background:var(--gold-soft)}

/* «В эти дни в истории» на главной */
#thisweek:empty{display:none}
#thisweek .tw-head{display:flex;align-items:baseline;justify-content:space-between;
  gap:1rem;flex-wrap:wrap;margin-bottom:1.2rem}
#thisweek .tw-head h2{font-family:var(--serif);font-size:1.7rem;font-weight:600;margin:0}
#thisweek .tw-today{color:var(--ink-3);font-size:.9rem;white-space:nowrap}
.tw-list{display:grid;gap:.85rem;grid-template-columns:repeat(auto-fill,minmax(min(15rem,100%),1fr))}
.tw-card{display:block;padding:1rem 1.1rem;background:var(--surface);
  border:1px solid var(--rule);border-radius:var(--rad,12px);
  transition:transform .18s,border-color .18s,box-shadow .18s}
.tw-card:hover{border-color:var(--gold);text-decoration:none;
  transform:translateY(-2px);box-shadow:var(--shadow-2)}
.tw-card .tw-date{display:block;font-size:.72rem;color:var(--gold);font-weight:700;
  letter-spacing:.07em;text-transform:uppercase;margin-bottom:.35rem}
.tw-card b{display:block;font-family:var(--serif);font-size:1.02rem;font-weight:600;
  line-height:1.3;color:var(--ink);margin-bottom:.3rem}
.tw-card .tw-ago{font-size:.82rem;color:var(--ink-3)}
.tw-more{display:inline-block;margin-top:1.1rem;font-size:.92rem}

/* ── родословие ── */
.gen-hasid{margin:.1rem 0 .7rem;font-size:.92rem;color:var(--ink-2)}
.gen-hasid a{margin-inline-start:.5rem;font-size:.85rem}
.gen-groups{display:grid;gap:.9rem 1.4rem;margin:.6rem 0 .5rem;
  grid-template-columns:repeat(auto-fit,minmax(min(15rem,100%),1fr))}
.gen-g h3{font-size:.74rem;letter-spacing:.09em;text-transform:uppercase;
  color:var(--ink-3);margin:0 0 .45rem;font-weight:600}
.gen-chips{display:flex;flex-wrap:wrap;gap:.45rem}
.gen-full{display:inline-flex;align-items:center;gap:.45rem;margin:.2rem 0 1.4rem;
  padding:.62rem 1rem;border:1px solid var(--gold);border-radius:10px;
  background:var(--gold-soft);color:var(--ink);text-decoration:none;
  font-family:var(--serif);font-size:.95rem}
.gen-full:hover{background:var(--gold);color:#fff;text-decoration:none}
.gen-full b{font-weight:400}
.gen-chip{display:inline-flex;flex-direction:column;gap:.1rem;padding:.5rem .8rem;
  border:1px solid var(--rule);border-radius:10px;background:var(--surface);
  text-decoration:none;max-width:100%;transition:border-color .15s}
.gen-chip:hover{border-color:var(--gold);text-decoration:none}
.gen-chip b{font-family:var(--serif);font-size:.98rem;font-weight:600;color:var(--ink);
  line-height:1.2}
.gen-chip span{font-size:.72rem;color:var(--gold);letter-spacing:.03em}
.gen-chip i{font-style:normal;font-size:.72rem;color:var(--ink-3);line-height:1.35;
  max-width:15rem}
.gen-chip.self{border-color:var(--gold);background:var(--gold-soft)}
.gen-note{font-size:.8rem;color:var(--ink-3);margin:.6rem 0 .7rem}
.dv-h{font-family:var(--serif);font-size:1.3rem;font-weight:600;margin:1.8rem 0 .8rem;
  padding-bottom:.35rem;border-bottom:1px solid var(--gold)}
.dv-chip{display:inline-flex;flex-direction:column;gap:.06rem;padding:.42rem .7rem;
  border:1px solid var(--rule);border-radius:9px;background:var(--surface);
  text-decoration:none;vertical-align:top;transition:border-color .15s}
.dv-chip:hover{border-color:var(--gold);text-decoration:none}
.dv-chip b{font-family:var(--serif);font-size:.92rem;font-weight:600;color:var(--ink);
  line-height:1.2}
.dv-chip span{font-size:.68rem;color:var(--gold)}
.dv-chip i{font-style:normal;font-size:.68rem;color:var(--ink-3);max-width:14rem;
  line-height:1.35}
.dv-tree,.dv-tree ul{list-style:none;margin:0;padding:0 0 0 1.15rem;position:relative}
.dv-tree{padding:0;margin:0 0 1.4rem}
/* Глубокое родословие шире телефонного экрана: прокручивается само,
   а не тащит вбок всю страницу. */
.dv-tree{overflow-x:auto;-webkit-overflow-scrolling:touch}
.dv-tree>li{min-width:max-content}
.dv-tree ul::before{content:"";position:absolute;left:.28rem;top:-.35rem;bottom:.9rem;
  border-left:2px solid var(--rule)}
.dv-tree li{position:relative;padding:.28rem 0 .04rem}
.dv-tree ul li::before{content:"";position:absolute;left:-.87rem;top:1.25rem;width:.75rem;
  border-top:2px solid var(--rule)}
.dv-chain{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;margin:0 0 .9rem}
.dv-arr{color:var(--gold);font-size:1.1rem}
.dv-amp{color:var(--gold);font-size:1rem;opacity:.8}
.dv-note{font-style:normal;font-size:.76rem;color:var(--ink-3);max-width:22rem}
.dv-find{display:flex;align-items:center;gap:.7rem;margin:0 0 1.4rem}
.dv-find input{flex:1 1 auto;max-width:20rem;padding:.55rem .8rem;font:inherit;
  font-size:.92rem;border:1px solid var(--rule);border-radius:9px;
  background:var(--surface);color:var(--ink)}
.dv-find input:focus{outline:none;border-color:var(--gold)}
.dv-find span{font-size:.8rem;color:var(--ink-3)}
.dv-chip.dim{opacity:.22}
/* от Адама до Давида — полтора десятка колен; на телефоне такой отступ
   съедает всю ширину, поэтому там лесенка мельче */
@media (max-width:700px){
  .dv-tree,.dv-tree ul{padding-left:.62rem}
  /* на пятнадцатом колене вертикальных направляющих набирается лес —
     на узком экране они должны быть заметно тише */
  .dv-tree ul::before{left:.1rem;border-left-width:1px;opacity:.55}
  .dv-tree ul li::before{border-top-width:1px;opacity:.55}
  .dv-tree ul li::before{left:-.52rem;width:.42rem}
  .dv-chip{padding:.36rem .55rem}
  .dv-chip i{font-size:.66rem}
}
.dv-chip:target{border-color:var(--gold);background:var(--gold-soft);
  box-shadow:0 0 0 3px var(--gold-soft)}

/* ── соседний инструмент ── */
.tool-cross{margin:1.4rem 0 0;padding:.7rem .9rem;border:1px dashed var(--rule);
  border-radius:10px;font-size:.88rem;color:var(--ink-2)}
.tool-cross a{font-weight:600}

/* ── значки справочника ── */
.ico svg,.k svg,.ic svg{width:1em;height:1em;display:block}
.ico{display:inline-flex;align-items:center;justify-content:center;
  width:1.15em;height:1.15em;color:var(--gold);flex:0 0 auto}
h2 .ico{margin-inline-end:.45rem;vertical-align:-.1em}
.chip .k{display:inline-flex;width:1em;height:1em;color:var(--gold);
  margin-inline-end:.35rem}
.card .ic,.route .ic,.ic{display:inline-flex;align-items:center;
  justify-content:center;width:1.5rem;height:1.5rem;color:var(--gold);
  flex:0 0 auto}
/* у карточек маршрутов свой размер задан шрифтом — svg берёт его же */
.route .ic svg,.card .ic svg{width:1.5rem;height:1.5rem}
/* значки, которые ставит скрипт (site.js): обёртки у них нет */
svg.svgi{width:1em;height:1em;display:inline-block;vertical-align:-.14em;
  color:var(--gold);flex:0 0 auto}
.sig{display:inline-flex;align-items:center;justify-content:center;
  width:1.4rem;height:1.4rem;color:var(--gold);flex:0 0 auto}
.sig svg{width:100%;height:100%}
.badge.chain svg{width:1em;height:1em;vertical-align:-.12em}
.hero-ico{color:var(--gold)}
.hero-ico svg{width:1em;height:1em;display:block}

/* ── изучить эпоху ── */
.uch{padding:1.6rem 1.2rem 2.4rem;max-width:52rem;margin:0 auto;
  border-top:1px solid var(--rule-2,#e3ddd0)}
.uch h2{font-size:1.3rem;margin:0 0 .3rem}
.uch .sub{color:var(--ink-2);line-height:1.6;margin:0}
.uch-row{display:flex;flex-wrap:wrap;gap:.6rem;margin:.9rem 0 .4rem}
.uch-done{color:var(--ink-3);font-size:.86rem;margin:.3rem 0 0}

/* ── кнопка «назад» в приложении ── */
/* В браузере её нет вовсе: класс in-app ставит скрипт только внутри
   приложения. Отступ сверху — на вырез экрана. */
#appBack{position:fixed;inset-inline-start:10px;
  top:calc(9px + env(safe-area-inset-top,0px));z-index:60;
  width:38px;height:38px;border-radius:50%;border:1px solid var(--border);
  background:var(--raised);color:var(--ink-2);display:flex;
  align-items:center;justify-content:center;box-shadow:var(--sh-1);
  cursor:pointer;-webkit-tap-highlight-color:transparent}
#appBack:active{transform:scale(.94)}
html.in-app{overscroll-behavior-y:none}
html.in-app button,html.in-app .lbl,html.in-app .life,html.in-app .lifelbl,
html.in-app .card,html.in-app nav a{-webkit-touch-callout:none;
  -webkit-user-select:none;user-select:none}

/* ── в приложении шапка не прячется под вырез экрана ── */
html.in-app .site-head{padding-top:env(safe-area-inset-top,0px)}

/* so-double-tap: двойной тап в WebKit увеличивал страницу, а вернуться
   было нечем — щипок забирает лента. manipulation убирает именно
   двойной тап, оставляя прокрутку и щипок; none на ленте, мини-карте и
   древе отдаёт все жесты нашему коду. */
html{touch-action:manipulation}
#ribbon,#mini,#miniInner,#miniWin,#dvWrap,#dvWrap canvas{touch-action:none}

/* so-wa-form: форма письма автору жила без единого правила —
   в приложении она открывалась поверх листа настроек голыми полями, и
   заполнить её было нельзя. Даём ей вид остального кабинета. */
#waForm{display:flex;flex-direction:column;gap:8px;margin:10px 0 4px}
#waForm input,#waForm textarea{
  width:100%;box-sizing:border-box;padding:10px 12px;
  border:1px solid var(--border);border-radius:10px;
  background:var(--plane);color:var(--ink);
  font-family:inherit;font-size:15px;line-height:1.4}
#waForm textarea{resize:vertical;min-height:96px}
#waForm input:focus,#waForm textarea:focus{
  outline:2px solid var(--accent,#6f86c8);outline-offset:1px}
#waForm button[type=submit]{align-self:flex-start}

/* so-revizia: «+ Событие» пишет личные правки в память браузера — в
   приложении это непонятная форма для рецензента Apple, прячем. */
html.in-app #addBtn{display:none !important}

/* so-polya: в приложении слева плавает стрелка «назад» — шапке
   статьи нужен отступ под неё, иначе стрелка ложится на имя сайта. */
html.in-app .site-head .wrap{padding-inline-start:56px}
@media (max-width:640px){
  html.in-app .site-head .wrap{padding-inline-start:52px;gap:.55rem}
  html.in-app .site-head input[type="search"],
  html.in-app .site-head .search{min-width:0;flex:1 1 auto}
}

/* ══════════ СТРАНИЦА «ПОДДЕРЖАТЬ ПРОЕКТ» ══════════ */
.pod-list{list-style:none;margin:.6rem 0 1.4rem;padding:0;
  display:flex;flex-direction:column;gap:.7rem}
.pod-list li{padding-inline-start:1rem;
  border-inline-start:2px solid color-mix(in srgb,var(--gold) 35%,transparent);
  line-height:1.55}
.pod-list li b{font-weight:650}
.pod-cta{margin:1.8rem 0 2rem;text-align:center}
.pod-btn{display:inline-flex;align-items:center;justify-content:center;
  min-height:3.2rem;padding:0 2.2rem;border-radius:2rem;
  background:var(--tekhelet);color:#fff;text-decoration:none;
  font-size:1.05rem;font-weight:650;letter-spacing:.01em;
  box-shadow:0 4px 18px color-mix(in srgb,var(--tekhelet) 32%,transparent);
  transition:transform .3s cubic-bezier(.16,1,.3,1),box-shadow .3s,filter .2s;
  position:relative;overflow:hidden;isolation:isolate}
.pod-btn:hover{transform:translateY(-2px);filter:brightness(1.06);
  box-shadow:0 8px 26px color-mix(in srgb,var(--tekhelet) 38%,transparent)}
.pod-btn:active{transform:translateY(0) scale(.98)}
.pod-btn::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.32) 50%,transparent 60%);
  transform:translateX(-140%)}
.pod-btn:hover::after{animation:podSheen 1s cubic-bezier(.16,1,.3,1)}
@keyframes podSheen{from{transform:translateX(-140%)}to{transform:translateX(140%)}}
.pod-note{margin:.9rem auto 0;max-width:26rem;font-size:.85rem;color:var(--ink-3);line-height:1.5}
.pod-thanks{margin-top:2rem;padding-top:1.1rem;border-top:1px solid var(--rule);
  font-family:var(--serif);font-size:1.15rem;color:var(--gold);text-align:center}
@media (prefers-reduced-motion:reduce){.pod-btn,.pod-btn::after{animation:none!important;transition:none}}

/* ==== РАЗВОРОТ v1 — начало (pravka.py) ==== */
/* Одна колонка чтения вместо узкой полосы у левого края.
   Было: текст 34rem (544px) в поле 1200px — половина экрана пустая.
   Стало: страница сама сужается до колонки, всё выровнено по одной оси. */
@media (min-width: 64rem){
  main:has(.doc) > .wrap{ max-width: 64rem }
  .doc{ --measure: 100%; align-items: stretch }
  .doc > aside{ display: block }
  .infobox{ position: sticky; top: 4.75rem }

  /* Танах и глава недели: тот же приём, только колонка шире —
     стих на иврите и перевод стоят рядом. */
  main:has(.pesukim) > .wrap,
  main:has(.phead) > .wrap{ max-width: 62rem }
  main:has(.phead){ --measure: 100% }
  .pesukim{ max-width: 100% }
}

/* Указатель: значки-звёздочки стояли без размеров и разносили
   страницу на полтора миллиона пикселей. */
/* column-width не принимает проценты: min(15rem,100%) браузер отбрасывал
   целиком, и указатель шёл одной колонкой во всю ширину. */
.idx-cols{ column-width: 19rem }
.idx-grp a{ display:flex; align-items:baseline; gap:.42rem }
.idx-grp a svg{ width:.9em; height:.9em; flex:none; align-self:center;
  color: var(--gold) }
.idx-grp a .yy{ margin-inline-start:auto; padding-inline-start:.6rem }

/* «Коротко» на странице человека: под еврейским годом — общий счёт,
   второй строкой и потише. Ставит его entity_gen.py. */
.infobox dd i.greg{ display:block; font-style:normal; font-size:.78rem;
  color:var(--ink-3); margin-top:1px; font-variant-numeric:tabular-nums }

/* Заголовок страницы теперь h1 — вид тот же, что был у h2. */
section.band > h1{ font-family: var(--serif); font-weight:600;
  margin:0 0 .4rem; letter-spacing:-.01em; line-height:1.15 }
/* ==== РАЗВОРОТ v1 — конец ==== */

/* ==== ШАПКА v1 — начало (patch_glavnaya) ==== */
/* «Ещё» — единственный пункт-не-ссылка: без этих строк он берёт
   размер от родителя и сидит выше соседей. */
.site-nav details.morenav > summary{
  font-size:.9rem; padding:.45rem .7rem; border-radius:.4rem;
  color:var(--ink-2); transition:background .15s, color .15s }
.site-nav details.morenav > summary:hover{
  background:var(--gold-soft); color:var(--ink) }
.site-nav details.morenav[open] > summary{ color:var(--ink) }

/* Знак слева — одна ссылка из двух слов: подчёркивание тянулось
   через оба и читалось как ошибка вёрстки. */
.mark:hover{ text-decoration:none }
.mark:hover b{ color:var(--gold) }
.mark b, .mark span{ transition:color .15s }

/* Язык — в шапке, а не внутри «Ещё». */
.langlink{ font-size:.82rem; color:var(--ink-3); white-space:nowrap;
  padding:.35rem .55rem; border-radius:.4rem; letter-spacing:.02em }
.langlink:hover{ background:var(--gold-soft); color:var(--ink);
  text-decoration:none }
/* so-shapka-telefon: Давид, 30 августа — на телефоне поиск короче,
   переключатель темы спрятан, а переключение языка видно всегда:
   гостю, попавшему не на свой язык, язык нужнее темы. */
@media (max-width:52rem){
  .finder{ flex:0 1 11rem }
  #themeBtn{ display:none }
  .langlink{ display:inline-block; padding:.32rem .5rem;
    border:1px solid var(--rule); border-radius:.45rem; color:var(--ink-2) }
}
/* ==== ШАПКА v1 — конец ==== */

/* ==== ЖИВАЯ ЛЕНТА v4 — начало (patch_zhivaya_lenta) ==== */
/* ═══ ГЛАВНАЯ КАК ВИТРИНА НАСТОЯЩЕЙ ЛЕНТЫ ══════════════════════ */

/* кнопки действия — латунные; в светлой теме латунь темнее, чтобы
   светлая надпись читалась */
:root{--knopka:#8a6132}
:root[data-theme="dark"]{--knopka:var(--t-gold)}
.gate .go,.pod-btn{background:var(--knopka);color:var(--paper);
  box-shadow:0 4px 18px color-mix(in srgb,var(--knopka) 30%,transparent)}
:root[data-theme="dark"] .gate .go,
:root[data-theme="dark"] .pod-btn{color:#1c1509}
.gate .go:hover{box-shadow:0 8px 26px color-mix(in srgb,var(--knopka) 38%,transparent)}
.pod-btn:hover{filter:brightness(1.05)}

/* «Сейчас — такое-то число» */
.hl-now{display:flex;align-items:center;gap:.45rem;margin:0 0 .55rem;
  font-size:.78rem;color:var(--ink-3)}
.hl-now i{width:.4rem;height:.4rem;border-radius:50%;background:var(--gold);
  flex:none;animation:hlpuls 3.4s ease-in-out infinite}
@keyframes hlpuls{0%,100%{opacity:.35;transform:scale(.8)}50%{opacity:1;transform:scale(1.15)}}

/* ── ЖИВОСТЬ И РИТМ ВСЕЙ СТРАНИЦЫ ─────────────────────────────
   Разделы проявляются при прокрутке, а карточки внутри — следом,
   по очереди, с шагом в 60 мс. Движение медленное и в одну сторону:
   снизу вверх, всегда одинаково. Ровный шаг успокаивает глаз, а
   разнобой — наоборот. */
.hl-yav{opacity:0;transform:translateY(20px);
  transition:opacity 1s var(--ease),transform 1s var(--ease)}
.hl-yav.tut{opacity:1;transform:none}
.hl-yav .card,.hl-yav .route,.hl-yav .cards > *{
  opacity:0;transform:translateY(14px);
  transition:opacity .8s var(--ease),transform .8s var(--ease),
             border-color .25s,box-shadow .25s;
  transition-delay:var(--zad,0s)}
.hl-yav.tut .card,.hl-yav.tut .route,.hl-yav.tut .cards > *{
  opacity:1;transform:none}

/* Ряды карточек. Сетка укладывала их по левому краю, и последний
   ряд оставался обрывком: четыре плашки и одна сиротой под ними.
   Гибкий ряд с центровкой хвоста ставит остаток посередине, а более
   узкая основа даёт всем пяти опорным точкам уместиться в один ряд. */
main .cards,main .routes{display:flex;flex-wrap:wrap;justify-content:center;
  gap:.85rem;grid-template-columns:none;
  /* ряд карточек был уже всего остального: 52rem против 72rem у ленты
     и маршрутов — оттого и казался сдвинутым влево */
  max-width:100%}
/* min-width:0 обязателен: иначе длинный заголовок вроде «Разрушение
   Первого Храма, 9 ава 3338» держит плашку шире, чем нужно, и ряд
   ломается раньше времени */
main .cards > *{flex:1 1 12.5rem;max-width:17.5rem;min-width:0}
main .routes > *{flex:1 1 16rem;max-width:20rem;min-width:0}
@media (max-width:46rem){
  main .cards > *,main .routes > *{flex:1 1 100%;max-width:none}
}

/* одинаковый воздух у всех разделов: раньше он был разным */
main section.band{padding:3.6rem 0}
main section.band > h2{margin-bottom:.5rem}
main section.band > .sub{margin-bottom:1.7rem}

/* карточки отзываются мягче и одинаково по всей странице */
.card,.route{transition:border-color .25s var(--ease),
  box-shadow .25s var(--ease),transform .25s var(--ease)}
.card:hover,.route:hover{transform:translateY(-3px)}
@media (prefers-reduced-motion:reduce){
  .card:hover,.route:hover{transform:none}
}

/* первый экран */
.hl{margin:.2rem 0 5.5rem;position:relative}
.gate{min-height:max(15rem, calc(100vh - 3.75rem - 27rem));
  padding-top:2.4rem;padding-bottom:.9rem}
.gate h1{font-size:clamp(1.9rem,3.9vw,3rem);line-height:1.07;margin:0 0 .75rem}
.gate p{font-size:.95rem;line-height:1.55;max-width:54ch;margin:0 0 1.05rem}
.gate .go{margin-bottom:.75rem}
.gate .sub{margin:0;font-variant-numeric:tabular-nums}
@media (max-height:46rem){
  .gate{min-height:max(13rem, calc(100vh - 3.75rem - 27.5rem));padding-top:1.4rem}
  .gate h1{font-size:clamp(1.7rem,3.2vw,2.3rem)}
  .gate p{font-size:.85rem;max-width:74ch;margin-bottom:.75rem}
  .gate .go{height:2.9rem;padding:0 1.6rem}
  .hl-now{margin-bottom:.4rem;font-size:.74rem}
}
.hl-foot{display:flex;align-items:center;justify-content:space-between;gap:1rem;
  margin-top:.6rem;font-size:.78rem;color:var(--ink-3)}
.hl-foot a{color:var(--ink-3);text-decoration:none;border-bottom:1px solid var(--rule-2)}
.hl-foot a:hover{color:var(--ink);border-color:var(--gold)}
.hl-zvuk{font:inherit;font-size:.72rem;color:var(--ink-3);background:none;
  white-space:nowrap;border:1px solid var(--rule-2);border-radius:1rem;
  padding:.12rem .55rem;cursor:pointer;transition:color .2s,border-color .2s}
.hl-zvuk:hover{color:var(--ink);border-color:var(--gold)}
.hl-zvuk[aria-pressed="true"]{color:var(--gold);border-color:var(--gold)}
.hl-zvuk i{font-style:normal;margin-right:.15rem}

/* ── ОКНО ЛЕНТЫ: копия рабочей области настоящей ленты.
   Лента живёт в собственной тёмной гамме — окно всегда тёмное,
   как живой снимок приложения, в обеих темах сайта. ─────────── */
.lk{position:relative;border-radius:.9rem;overflow:hidden;height:100%;
  background:#12100b;border:1px solid rgba(242,237,227,.09)}
.lk-c{position:absolute;inset:0;width:100%;height:100%;display:block}
.lk-niz{position:absolute;left:.55rem;right:.55rem;bottom:3.05rem;z-index:4;
  display:flex;gap:.4rem;align-items:center;pointer-events:none;
  flex-wrap:nowrap;overflow:hidden}
.lk-chip{font-size:.6rem;color:#9b8f7b;white-space:nowrap;
  border:1px solid rgba(242,237,227,.12);border-radius:1rem;
  padding:.14rem .5rem;background:rgba(20,17,12,.92);
  font-variant-numeric:tabular-nums}
.lk-chip s{display:inline-block;width:.42rem;height:.42rem;border-radius:50%;
  text-decoration:none;margin:0 .25rem 0 .35rem;vertical-align:-.02rem}
.lk-chip s:first-child{margin-left:0}
.lk-chip .t-j,.lk-chip s.t-j{background:#93bcf2}
.lk-chip s.t-w{background:#e08b56}
/* Подсказка стоит справа в ряду чипов и в узкой рамке не помещалась:
   ряд не переносится и режется по границе, так что текст обрывался на
   середине слова. Теперь она сжимается и кончается многоточием, а на
   средних экранах, где от неё остаётся два слова, её просто нет. */
.lk-hint{margin-left:auto;min-width:0;flex:0 1 auto;
  overflow:hidden;text-overflow:ellipsis}
.lk-prav{position:absolute;right:.55rem;bottom:5.4rem;z-index:4;display:flex;
  flex-direction:column;gap:.3rem;align-items:flex-end;pointer-events:none}
.lk-kn{font-size:.6rem;color:#cdc2ad;background:rgba(60,52,40,.82);
  border-radius:1rem;padding:.16rem .55rem}
.lk-zoom{font-size:.58rem;color:#d0a464;letter-spacing:.08em;
  background:linear-gradient(90deg,rgba(208,164,100,.25),rgba(208,164,100,.55));
  border-radius:.3rem;padding:.18rem .45rem}
.lk-zoom i{font-style:normal;letter-spacing:.14em}
.lk-mini{position:absolute;left:0;right:0;bottom:0;height:1.9rem;width:100%;
  z-index:3;border-top:1px solid rgba(242,237,227,.14);
  background:#0c0a07;display:block}

.hl-okno{position:relative;height:100%;overflow:hidden}  /* so-ramka: ничто не высовывается из окна анимации */
/* окна крупные: чем выше окно, тем больше рядов подписей помещается —
   лента показывает столько же, сколько показывает настоящая */
.hl-hero{height:22rem}
.hl-hero .lk{height:100%}
@media (max-width:46rem){ .hl-hero{height:15rem} }

/* курсор поверх окна */
.hl-cur{position:absolute;z-index:9;width:1.2rem;height:1.2rem;left:0;top:0;
  pointer-events:none;opacity:0;
  transition:transform 1.5s var(--ease),opacity .6s;
  filter:drop-shadow(0 1px 2.5px rgba(0,0,0,.4))}
.hl-cur.show{opacity:1}

/* ── карточка события: как в ленте ────────────────────────────── */
.lk-card{position:absolute;z-index:8;top:1.6rem;width:min(24rem,70%);
  transform:translate(-50%,.7rem);opacity:0;pointer-events:none;
  background:#211d16;border:1px solid rgba(242,237,227,.16);
  border-radius:.7rem;box-shadow:0 18px 44px rgba(0,0,0,.55);
  padding:.75rem .9rem .7rem;color:#f2ead9;
  transition:opacity .8s var(--ease),transform .8s var(--ease),left 1.4s var(--ease)}
.lk-card.show{opacity:1;transform:translate(-50%,0)}
.lk-card .x{position:absolute;top:.5rem;right:.55rem;width:1.35rem;height:1.35rem;
  border-radius:50%;border:1px solid rgba(242,237,227,.2);display:flex;
  align-items:center;justify-content:center;color:#9b8f7b;font-size:.85rem}
.lk-card b{display:block;font-family:var(--serif);font-size:1.02rem;
  line-height:1.22;font-weight:600;margin:0 1.4rem .45rem 0}
.lk-card .hd{display:inline-block;background:#d0a464;color:#1c1509;
  border-radius:1rem;padding:.16rem .6rem;font-size:.7rem;font-weight:650;
  margin-bottom:.4rem;font-variant-numeric:tabular-nums}
.lk-card .chips{display:flex;gap:.3rem;flex-wrap:wrap;margin-bottom:.45rem}
.lk-card .chips i{font-style:normal;font-size:.66rem;color:#cdc2ad;
  border:1px solid rgba(242,237,227,.16);border-radius:1rem;
  padding:.1rem .5rem;background:rgba(242,237,227,.05)}
.lk-card .telo{max-height:3.2rem;overflow:hidden;
  -webkit-mask-image:linear-gradient(#000 0,#000 62%,transparent);
  mask-image:linear-gradient(#000 0,#000 62%,transparent)}
.lk-card .telo p{margin:0;font-size:.76rem;line-height:1.42;color:#cdc2ad;
  transition:transform 5s linear}
.lk-card .btns{display:flex;gap:.4rem;margin-top:.55rem}
.lk-card .btns i{font-style:normal;font-size:.72rem;padding:.28rem .75rem;
  border-radius:1rem;border:1px solid rgba(242,237,227,.18);color:#cdc2ad}
.lk-card .btns .pri{background:#5b8dd6;border-color:transparent;color:#fff;
  font-weight:600}

/* ── список «Несколько событий», как в ленте ──────────────────── */
.lk-spis{position:absolute;z-index:8;top:1.6rem;width:min(20.5rem,62%);
  transform:translate(-50%,.7rem);opacity:0;pointer-events:none;
  background:#211d16;border:1px solid rgba(242,237,227,.16);
  border-radius:.7rem;box-shadow:0 18px 44px rgba(0,0,0,.55);
  padding:.65rem .8rem .55rem;color:#f2ead9;left:50%;
  transition:opacity .75s var(--ease),transform .75s var(--ease),left 1.4s var(--ease)}
.lk-spis.show{opacity:1;transform:translate(-50%,0)}
.lk-spis b{display:block;font-family:var(--serif);font-size:.95rem;
  font-weight:600;margin-bottom:.4rem}
.lk-spis .hd{display:flex;gap:.3rem;margin-bottom:.45rem}
.lk-spis .hd i{font-style:normal;font-size:.66rem;border-radius:1rem;
  padding:.12rem .55rem;color:#cdc2ad;background:rgba(242,237,227,.07);
  font-variant-numeric:tabular-nums}
.lk-spis .hd i.g{background:#d0a464;color:#1c1509;font-weight:650}
.lk-spis .rr{display:flex;gap:.45rem;align-items:baseline;font-size:.76rem;
  padding:.26rem .4rem;border-radius:.4rem;color:#e6ddc9;
  transition:background .3s}
.lk-spis .rr.on{background:rgba(208,164,100,.18)}
.lk-spis .rr .gd{font-size:.66rem;color:#9b8f7b;min-width:2rem;text-align:right;
  font-variant-numeric:tabular-nums;flex:none}
.lk-spis .rr s{width:.44rem;height:.44rem;border-radius:50%;flex:none;
  text-decoration:none;background:#93bcf2;align-self:center}
.lk-spis .rr s.w{background:#e08b56}

/* ── срез времени: линия и панель, как в ленте ────────────────── */
.lk-srlin{position:absolute;top:0;bottom:1.9rem;width:0;z-index:5;
  border-left:2px dashed #7ea7dd;opacity:0;transition:opacity .9s,left 2s var(--ease)}
.lk-srlin.show{opacity:.85}
.lk-srchip{position:absolute;top:.5rem;left:0;transform:translateX(-50%);
  font-style:normal;white-space:nowrap;font-size:.66rem;font-weight:650;
  color:#eaf1fb;background:#3f5f86;border-radius:1rem;padding:.18rem .6rem;
  font-variant-numeric:tabular-nums}
.sr-pan{position:absolute;z-index:8;top:.55rem;right:.7rem;bottom:2.3rem;
  width:min(19rem,52%);overflow:hidden;
  background:#1b1812;border:1px solid rgba(242,237,227,.14);
  border-radius:.7rem;box-shadow:0 18px 44px rgba(0,0,0,.5);
  padding:.6rem .75rem;color:#f2ead9;opacity:0;transform:translateX(14px);
  transition:opacity .9s var(--ease),transform .9s var(--ease)}
.sr-pan.show{opacity:1;transform:none}
/* заголовок панели перекрывает докручиваемое содержимое */
.sr-zag{font-size:.62rem;letter-spacing:.13em;text-transform:uppercase;
  color:#d0a464;font-weight:700;display:flex;justify-content:space-between;
  align-items:center;position:relative;z-index:2;background:#1b1812;
  margin:-.6rem -.75rem .4rem;padding:.6rem .75rem .35rem}
.sr-body{transition:transform 2.4s var(--ease)}
.sr-zag .x{width:1.15rem;height:1.15rem;border-radius:50%;
  border:1px solid rgba(242,237,227,.18);display:flex;align-items:center;
  justify-content:center;color:#9b8f7b;font-size:.75rem;font-weight:400;
  letter-spacing:0}
.sr-god b{font-family:var(--serif);font-size:1.5rem;font-weight:600;
  font-variant-numeric:tabular-nums}
.sr-god i{display:block;font-style:normal;font-size:.66rem;color:#9b8f7b;
  margin:-.15rem 0 .4rem}
.sr-cep{background:rgba(90,140,95,.14);border:1px solid rgba(120,170,120,.22);
  border-radius:.45rem;padding:.35rem .5rem;font-size:.66rem;line-height:1.35;
  color:#cfe0cd;margin-bottom:.45rem}
.sr-cep b{color:#e9f2e6;font-weight:650}
.sr-sek{font-size:.58rem;letter-spacing:.12em;text-transform:uppercase;
  color:#9b8f7b;font-weight:700;margin:.45rem 0 .25rem}
.sr-row{display:flex;gap:.5rem;align-items:baseline;background:rgba(242,237,227,.05);
  border-radius:.4rem;padding:.18rem .45rem;margin-bottom:.18rem;
  opacity:0;transform:translateX(8px);
  transition:opacity .8s var(--ease),transform .8s var(--ease),background .5s}
.sr-row.tut{opacity:1;transform:none}
/* Выбранный человек — не подсвеченная строка, а раскрывшаяся карточка:
   в ленте нажатие на имя открывает окно с подробностями, и витрина
   должна показывать именно это. Латунная черта слева, своя подложка,
   тень — чтобы карточка отделилась от списка. */
.sr-row.on{background:rgba(208,164,100,.13);
  box-shadow:0 .35rem 1.1rem rgba(0,0,0,.28);
  border-inline-start:2px solid #d0a464;
  padding-block:.42rem;transform:translateX(.12rem)}
.sr-row.on .nm{color:#fff;font-weight:640}
.sr-row .vz{font-size:.66rem;color:#9b8f7b;min-width:1.5rem;text-align:right;
  font-variant-numeric:tabular-nums;flex:none}
.sr-row .nm{font-size:.74rem;color:#f2ead9;line-height:1.3}
.sr-row .nm em{display:block;font-style:normal;font-size:.64rem;color:#9b8f7b;
  line-height:1.4;max-height:0;overflow:hidden;
  transition:max-height 1.2s var(--ease), opacity .8s var(--ease);opacity:0}
.sr-row.on .nm em{max-height:4.5rem;opacity:1;color:#cbbda3;
  margin-top:.22rem;padding-top:.22rem;
  border-top:1px solid rgba(208,164,100,.22)}
.sr-mir{display:flex;gap:.5rem;align-items:baseline;background:rgba(242,237,227,.04);
  border-radius:.4rem;padding:.2rem .45rem;margin-bottom:.2rem;
  opacity:0;transition:opacity .45s var(--ease)}
.sr-mir.tut{opacity:1}
.sr-mir .gd{font-size:.62rem;color:#9b8f7b;min-width:2rem;text-align:right;
  font-variant-numeric:tabular-nums;flex:none}
.sr-mir .nm{font-size:.7rem;color:#e6ddc9}
.sr-mir .dl{margin-left:auto;font-size:.62rem;color:#9b8f7b;flex:none;
  font-variant-numeric:tabular-nums}

/* ── сцены: шахматный порядок ─────────────────────────────────── */
/* Ритм страницы: между сценами — 6rem, между текстом и анимацией —
   3.5rem. Глазу нужно, чтобы соседние сцены не спорили за внимание. */
.hl-demo{display:grid;grid-template-columns:1fr 1.35fr;gap:3.5rem;
  align-items:center;margin:0 0 6rem}
/* в перевёрнутой сцене анимация уходит в первую колонку — значит и
   широкой должна стать она, иначе окно съёживается */
.hl-demo.obr{grid-template-columns:1.35fr 1fr}
.hl-demo.obr .hl-anim{order:-1}
.hl-demo .hl-anim{height:30rem}
.hl-demo:last-of-type{margin-bottom:4.5rem}
.hl-txt h2{font-family:var(--serif);font-size:1.5rem;line-height:1.18;
  font-weight:600;margin:0 0 .9rem;letter-spacing:-.01em;text-wrap:balance}
.hl-txt p{margin:0 0 .9rem;font-size:.95rem;line-height:1.6;color:var(--ink-2)}
.hl-txt .hl-mini{font-size:.8rem;line-height:1.55;color:var(--ink-3);
  padding-top:.7rem;border-top:1px solid var(--rule-2);margin-bottom:1.1rem}
.hl-txt .hl-dalee{display:inline-block}
.hl-dalee{font-size:.85rem;color:var(--gold);text-decoration:none;font-weight:600}
.hl-dalee:hover{text-decoration:underline}
/* в малых окнах сцен правым кнопкам не хватает места — их видно в
   большом верхнем окне */
.hl-demo .lk-prav{display:none}
@media (max-width:75rem){
  /* От подсказки в этой ширине остаётся два слова с многоточием —
     лучше пусто, чем обрубок. */
  .lk-hint{display:none}
}

@media (max-width:52rem){
  /* .obr задан двумя классами и иначе перебил бы одноколоночную
     раскладку — поэтому названы оба */
  .hl-demo,.hl-demo.obr{grid-template-columns:1fr}
  .hl-demo{gap:1.4rem;margin-bottom:4rem}
  .sr-pan{width:76%}
  .lk-card{width:min(24rem,88%)}
  .lk-spis{width:min(20.5rem,84%)}
  .hl-demo.obr .hl-anim{order:0}
  .hl-demo .hl-anim{height:21rem}
  .lk-hint,.lk-prav{display:none}
}

@media (prefers-reduced-motion:reduce){
  .hl-cur,.lk-card,.lk-card .telo p,.sr-pan,.sr-row,.sr-mir,.lk-srlin{transition:none!important}
  .hl-cur{display:none}
  .hl-now i{animation:none}
  .hl-yav{opacity:1!important;transform:none!important;transition:none}
}
/* ==== ЖИВАЯ ЛЕНТА v4 — конец ==== */

/* ── плашки с числами на главной ── */
/* Ни рамок, ни карточек: на сайте их и так довольно, и оттого ничто не
   выделено. Здесь держат внимание сами цифры — крупным серифом, с
   табличными знаками, чтобы столбцы стояли ровно. Подпись под цифрой —
   мелкой капителью, как служебная рубрика.

   Раскладка — сетка, а не гибкий ряд: при гибком последняя плашка
   сваливалась вниз одна, и разделитель повисал в пустоте. Плашек
   восемь: четыре в ряд на широком и среднем, две на узком, — и в
   каждом ряду первая остаётся без разделителя. */
.chisla-r{display:grid;grid-template-columns:repeat(4,1fr);
  margin:1.7rem 0 0;row-gap:1.5rem}
.chisla-r .pl{min-width:0;padding:.55rem .8rem;text-align:center;
  border-inline-start:1px solid var(--rule-2)}
.chisla-r .pl:nth-child(4n+1){border-inline-start:0}
.chisla-r b{display:block;font-family:var(--serif);font-weight:600;
  font-size:2.5rem;line-height:1.05;color:var(--gold);
  font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.chisla-r i{display:block;margin-top:.35rem;font-style:normal;
  font-family:var(--sans);font-size:.75rem;font-weight:600;
  letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);
  line-height:1.35}
.chisla-p{margin:1.6rem auto 0;max-width:var(--measure);text-align:center;
  font-size:.8rem;color:var(--ink-3)}
@media (max-width:62rem){
  .chisla-r .pl{padding:.5rem .5rem}
  .chisla-r b{font-size:2.1rem}
}
@media (max-width:44rem){
  .chisla-r{grid-template-columns:repeat(2,1fr);row-gap:1.3rem}
  .chisla-r .pl{padding:.5rem .6rem}
  .chisla-r .pl:nth-child(4n+1){border-inline-start:1px solid var(--rule-2)}
  .chisla-r .pl:nth-child(2n+1){border-inline-start:0}
  .chisla-r b{font-size:2rem}
}

/* ── so-perem-temy: недостающие имена цветов ── */
/* В стилях сайта сорок с лишним раз стоят --line, --ink-1 и
   --paper-2, а объявлены они не были. Недействительное значение
   переменной браузер не «не видит»: для рамки он берёт currentColor,
   то есть цвет текста, а с запасной светлой краской подложка на
   тёмной теме становится белой. Объявляем имена один раз — и все эти
   места начинают работать так, как задумывались. */
:root{
  --ink-1: var(--ink);
  --line: var(--rule);
  --paper-2: var(--surface);
}
/* ── конец so-perem-temy ── */

/* ── so-znak-pereehal: посвящение на странице «О проекте» ── */
/* so-znak-sverhu. «בס״ד» стоит там, где ему место на еврейском листе,
   — в верхнем углу, отдельной меткой, а не строкой в тексте.

   Оформление посвящения (Давид, 31 августа: «сделай аккуратно,
   выравнивание по левому краю или ровное с двух сторон, поиграй,
   чтобы было красиво»). Что сделано и почему:

   · колонка узкая — 42 знака. По центру широкой полосы строки разной
     длины расходятся веером, и никакой набор этого не спасёт;
   · выравнивание по левому краю. Ровное с двух сторон пробовали и
     отложили: на узкой колонке justify растягивает пробелы, и между
     словами встают белые прорехи — набор выходит дырявым. Левый край
     ровный, правый — с ровным же рваным краем, без прорех;
   · сам блок прижат к левому краю колонки текста и отбит от неё
     тонкой чертой слева — так набирают посвящение в книге;
   · переносов не ставим: рваных слов в посвящении быть не должно. */
.doc{position:relative}
.o-bsd{position:absolute;top:-1.75rem;right:0;
  /* right, а не inset-inline-end: на самом элементе стоит dir="rtl"
     (это иврит), и логическая сторона у него перевёрнута — метка
     уезжала в левый угол. */
  font-size:.78rem;letter-spacing:.02em;color:var(--ink-3);opacity:.8;
  line-height:1;pointer-events:none}
.o-znak{margin:1.7rem 0 2.7rem;padding:.15rem 0 .15rem 1.25rem;
  max-width:46ch;
  border-inline-start:2px solid var(--rule);
  text-align:start;hyphens:none;text-wrap:pretty;
  color:var(--ink-3)}
.o-znak p{margin:0 0 .85rem;font-size:.88rem;line-height:1.8}
.o-znak p:last-child{margin-bottom:0}
@media(max-width:40rem){
  /* text-align:right, а не end: на элементе dir="rtl", и логическая
     сторона у него перевёрнута — метка прижималась к левому краю */
  .o-bsd{position:static;display:block;text-align:right;margin-bottom:.5rem}
  .o-znak{max-width:none;padding-inline-start:.9rem}
}
/* ── конец so-znak-pereehal ── */

/* ── заставка, «на этой неделе», ползунок времени ── */
/* ── заставка ──
   Отступы шли вразнобой: 1.2 у заголовка, 2.4 у абзаца, 1.6 у строки
   чисел. Один шаг на всех, и строки заголовка делит браузер, а не
   ручной перенос: при узком экране ручной давал рваную лесенку. */
.gate h1{max-width:20ch;text-wrap:balance;margin:0 0 1.2rem}
.gate p{max-width:56ch;margin:0 0 2rem}
.gate .go{text-decoration:none}
/* Стрелка теперь ведёт вправо, в ленту, а не вниз по странице. */
.gate .go:hover .arr{transform:translateX(3px)}
.gate .sub{margin-top:1.1rem}

/* ── «на этой неделе»: две колонки ──
   Прежде глава занимала колонку текста, а справа оставалось пустое
   поле в половину экрана. Слева глава, справа её герои и что было на
   этой неделе в истории. Ниже шестидесятиrem колонки встают друг под
   друга: две колонки по тридцать знаков в строке — не колонки. */
.nanedele{padding-block:2.6rem}
.nn-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);
  gap:2.2rem 3rem;align-items:start}
@media (max-width:60rem){ .nn-grid{grid-template-columns:minmax(0,1fr);gap:2rem} }
.nn-head{display:flex;align-items:baseline;justify-content:space-between;
  gap:1rem;flex-wrap:wrap;margin:0 0 1.1rem}
.nn-head h2{font-family:var(--serif);font-size:1.7rem;font-weight:600;margin:0}
.nn-when{color:var(--ink-3);font-size:.9rem;white-space:nowrap}
.nn-h3{font-family:var(--sans);font-size:.75rem;font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);
  margin:0 0 .6rem}
/* Имя главы — крупным серифом золотом: на этой полосе оно и есть
   главное слово. */
.nanedele .ned-nm{font-family:var(--serif);font-size:2rem;font-weight:600;
  line-height:1.15;color:var(--gold);margin:0 0 .2rem}
.nanedele .ned-rn{font-size:.9rem;color:var(--ink-3);
  font-variant-numeric:tabular-nums;margin:0 0 1rem}
.nanedele .ned-s{margin:0 0 1.4rem;max-width:100%}
/* so-prazdniki-glavnaya: чтение праздника — теми же долями, что и
   краткое содержание главы, но плотнее: это перечень, а не текст. */
.nanedele .ned-net{margin:0 0 .6rem;font-weight:600}
.nanedele .ned-cht{margin:0 0 .35rem;font-size:.92rem;color:var(--ink-2)}
.nanedele .ned-cht + .nn-head{margin-top:1.8rem}
.nanedele .ned-geroi{display:flex;flex-wrap:wrap;gap:.4rem;margin:0 0 2rem}
.nanedele .ned-geroi a{font-size:.88rem;padding:.35rem .8rem;border-radius:2rem;
  border:1px solid var(--rule);color:var(--ink-2);text-decoration:none;
  transition:border-color .18s, color .18s}
.nanedele .ned-geroi a:hover{border-color:var(--gold);color:var(--ink)}
.nanedele .ned-knopki{display:flex;flex-wrap:wrap;gap:.6rem}
/* Главная кнопка здесь латунная, а не тхелет. Тхелет на сайте значит
   «ссылка, еврейская дорожка»; латунь — «здесь и сейчас», ею же горит
   «сейчас» на ленте и имя текущей эпохи. */
.nanedele .ned-knopki .btn.primary{background:var(--gold);
  border-color:transparent;color:#1a1714}
.nanedele .ned-knopki .btn.primary:hover{background:var(--gold);
  filter:brightness(1.08)}
/* Правая колонка: список того, что было на этой неделе, идёт в один
   столбец — рядом с главой ему шире не нужно. */
.nanedele #thisweek{padding:0;border:0;margin:0}
.nanedele #thisweek .tw-head{display:block;margin:0 0 .8rem}
.nanedele #thisweek .tw-head h2{font-size:1.25rem}
.nanedele #thisweek .tw-today{display:block;margin-top:.2rem}

/* ── ползунок времени и кнопка «Вернуться в сейчас» ──
   Кнопка была `hidden`, то есть выпадала из раскладки совсем: стоило
   ей появиться, строка перестраивалась и ползунок ужимался — бегунок
   прыгал из-под пальца. Теперь её место занято всегда. */
.live-ctl{display:grid;grid-template-columns:minmax(0,1fr) auto;
  align-items:center;gap:.7rem 1rem;margin-bottom:1.4rem}
.live-ctl input[type=range]{grid-column:1;min-width:0;flex:none}
.live-ctl button{grid-column:2;white-space:nowrap}
.live-ctl .hint{grid-column:1 / -1}
.live-ctl button[hidden]{display:inline-block;visibility:hidden;
  pointer-events:none}
@media (max-width:34rem){
  .live-ctl{grid-template-columns:minmax(0,1fr)}
  .live-ctl button{grid-column:1;justify-self:start}
}

/* ── заставка ──
   Отступы шли вразнобой: 1.2 у заголовка, 2.4 у абзаца, 1.6 у строки
   чисел. Один шаг на всех, и строки заголовка делит браузер, а не
   ручной перенос: при узком экране ручной давал рваную лесенку. */
.gate h1{max-width:20ch;text-wrap:balance;margin:0 0 1.2rem}
.gate p{max-width:56ch;margin:0 0 2rem}
.gate .go{text-decoration:none}
/* Стрелка теперь ведёт вправо, в ленту, а не вниз по странице. */
.gate .go:hover .arr{transform:translateX(3px)}
.gate .sub{margin-top:1.1rem}

/* ── «на этой неделе»: две колонки ──
   Прежде глава занимала колонку текста, а справа оставалось пустое
   поле в половину экрана. Слева глава, справа её герои и что было на
   этой неделе в истории. Ниже шестидесятиrem колонки встают друг под
   друга: две колонки по тридцать знаков в строке — не колонки. */
.nanedele{padding-block:2.6rem}
.nn-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);
  gap:2.2rem 3rem;align-items:start}
@media (max-width:60rem){ .nn-grid{grid-template-columns:minmax(0,1fr);gap:2rem} }
.nn-head{display:flex;align-items:baseline;justify-content:space-between;
  gap:1rem;flex-wrap:wrap;margin:0 0 1.1rem}
.nn-head h2{font-family:var(--serif);font-size:1.7rem;font-weight:600;margin:0}
.nn-when{color:var(--ink-3);font-size:.9rem;white-space:nowrap}
.nn-h3{font-family:var(--sans);font-size:.75rem;font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);
  margin:0 0 .6rem}
/* Имя главы — крупным серифом золотом: на этой полосе оно и есть
   главное слово. */
.nanedele .ned-nm{font-family:var(--serif);font-size:2rem;font-weight:600;
  line-height:1.15;color:var(--gold);margin:0 0 .2rem}
.nanedele .ned-rn{font-size:.9rem;color:var(--ink-3);
  font-variant-numeric:tabular-nums;margin:0 0 1rem}
.nanedele .ned-s{margin:0 0 1.4rem;max-width:100%}
/* so-prazdniki-glavnaya: чтение праздника — теми же долями, что и
   краткое содержание главы, но плотнее: это перечень, а не текст. */
.nanedele .ned-net{margin:0 0 .6rem;font-weight:600}
.nanedele .ned-cht{margin:0 0 .35rem;font-size:.92rem;color:var(--ink-2)}
.nanedele .ned-cht + .nn-head{margin-top:1.8rem}
.nanedele .ned-geroi{display:flex;flex-wrap:wrap;gap:.4rem;margin:0 0 2rem}
.nanedele .ned-geroi a{font-size:.88rem;padding:.35rem .8rem;border-radius:2rem;
  border:1px solid var(--rule);color:var(--ink-2);text-decoration:none;
  transition:border-color .18s, color .18s}
.nanedele .ned-geroi a:hover{border-color:var(--gold);color:var(--ink)}
.nanedele .ned-knopki{display:flex;flex-wrap:wrap;gap:.6rem}
/* Главная кнопка здесь латунная, а не тхелет. Тхелет на сайте значит
   «ссылка, еврейская дорожка»; латунь — «здесь и сейчас», ею же горит
   «сейчас» на ленте и имя текущей эпохи. */
.nanedele .ned-knopki .btn.primary{background:var(--gold);
  border-color:transparent;color:#1a1714}
.nanedele .ned-knopki .btn.primary:hover{background:var(--gold);
  filter:brightness(1.08)}
/* Правая колонка: список того, что было на этой неделе, идёт в один
   столбец — рядом с главой ему шире не нужно. */
.nanedele #thisweek{padding:0;border:0;margin:0}
.nanedele #thisweek .tw-head{display:block;margin:0 0 .8rem}
.nanedele #thisweek .tw-head h2{font-size:1.25rem}
.nanedele #thisweek .tw-today{display:block;margin-top:.2rem}

/* ── ползунок времени и кнопка «Вернуться в сейчас» ──
   Кнопка была `hidden`, то есть выпадала из раскладки совсем: стоило
   ей появиться, строка перестраивалась и ползунок ужимался — бегунок
   прыгал из-под пальца. Теперь её место занято всегда. */
.live-ctl{display:grid;grid-template-columns:minmax(0,1fr) auto;
  align-items:center;gap:.7rem 1rem;margin-bottom:1.4rem}
.live-ctl input[type=range]{grid-column:1;min-width:0;flex:none}
.live-ctl button{grid-column:2;white-space:nowrap}
.live-ctl .hint{grid-column:1 / -1}
.live-ctl button[hidden]{display:inline-block;visibility:hidden;
  pointer-events:none}
@media (max-width:34rem){
  .live-ctl{grid-template-columns:minmax(0,1fr)}
  .live-ctl button{grid-column:1;justify-self:start}
}

/* ==== ВИТРИНЫ v1 — начало (patch_glavnaya_demo) ==== */
/* Обзорной полосы в витринах нет (canvas убран из разметки); правило
   на случай, если слой остался от прошлой версии страницы. */
.hl-okno .lk-mini,.hl-hero .lk-mini{display:none!important}

/* Текст рядом с витриной выходит по очереди. Класс hl-vyh ставит
   скрипт — без него текст виден как обычно. */
.hl-txt.hl-vyh > *{opacity:0;transform:translateY(9px);
  transition:opacity .75s var(--ease),transform .75s var(--ease);
  transition-delay:var(--zad,0s)}
.hl-txt.hl-vyh.tut > *{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .hl-txt.hl-vyh > *{opacity:1;transform:none;transition:none}
}
/* ==== ВИТРИНЫ v1 — конец ==== */

/* ==== КОЛОНКИ НЕДЕЛИ v1 — начало (patch_glavnaya_kolonki) ==== */
/* Герои стоят под текстом главы — им нужен воздух сверху, а снизу
   колонка и так кончается. */
.nn-l #weekGeroi{margin-top:1.7rem}
.nn-l #weekGeroi:empty{display:none}
/* Герои теперь стоят внутри блока главы, над кнопками: сверху воздух
   как перед новым разделом, снизу — ровно столько, чтобы кнопка не
   липла к последнему имени. */
.nanedele .ned-geroi{margin:0 0 1.5rem}
.nanedele #weekHome .nn-h3{margin:1.6rem 0 .7rem}
.nanedele .ned-knopki{margin-bottom:0}
/* ==== КОЛОНКИ НЕДЕЛИ v1 — конец ==== */

/* ── so-knopka-appstore: приложение для iPhone на главной ── */
.pril{display:none;max-width:19rem;padding:.8rem .95rem;
  border:1px solid var(--gold);border-radius:12px;background:var(--gold-soft);
  text-decoration:none;color:inherit;
  transition:background .15s ease,transform .15s ease}
.pril[data-vidno]{display:block}
.pril:hover{background:var(--gold);transform:translateY(-1px)}
.pril:hover .pril-t,.pril:hover .pril-p,.pril:hover .pril-n{color:var(--surface)}
.pril:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.pril-t{display:block;font-weight:600;font-size:.92rem;line-height:1.3;color:var(--ink)}
.pril-p{display:block;font-size:.78rem;line-height:1.35;color:var(--gold);margin-top:.15rem}
.pril-n{display:block;font-size:.73rem;line-height:1.4;color:var(--ink-3);margin-top:.4rem}
/* русская главная: карточка года и плашка в один ряд */
.what-row{display:flex;gap:1.5rem;align-items:flex-start}
.what-row>#liveWhat{flex:1 1 auto;min-width:0}
/* Давид, 31 августа: правая грань плашки вровень с правым краем
   полосы шести тысяч лет. Прижимаем автополем, а не числом. */
.what-row>.pril{flex:0 0 auto;margin-top:.2rem;margin-inline-start:auto}
@media(max-width:54rem){
  .what-row{flex-direction:column;gap:1rem}
  .what-row>.pril{max-width:none;align-self:stretch}
}
/* английская главная: плашка под полосой «что уже собрано», вправо */
.pril-row{display:flex;justify-content:flex-end;margin:.2rem 0 1.6rem}
@media(max-width:40rem){.pril-row>.pril{max-width:none;flex:1 1 auto}}
/* запасное место, если полосы чисел на странице не окажется */
.gate .pril{margin:1.25rem auto 0}

/* ── so-pokazat-na-lente: кнопка «Показать на ленте» ── */
.nalente{margin:1.4rem 0 0}
.badge.lente{background:var(--gold-soft);color:var(--gold);
  border-color:transparent;font-size:.78rem;padding:.3rem .8rem;
  text-decoration:none;transition:background .15s ease,color .15s ease}
.badge.lente:hover{background:var(--gold);color:var(--surface)}
.badge.lente:focus-visible{outline:2px solid var(--ink);outline-offset:2px}

/* ── so-en-shapka-telefon: английская шапка на телефоне ── */
@media(max-width:56rem){
  /* общий класс site-nav на узком экране прячется — английской
     навигации это оставляло пустую шапку. Возвращаем её одной
     строкой: высота шапки задана жёстко (3.75rem), и перенос
     второй строки вывалился бы за нижнюю границу. */
  .site-head .site-nav-en{
    display:flex; flex-wrap:nowrap; gap:.1rem;
    flex:1 1 auto; min-width:0;
    overflow-x:auto; overflow-y:hidden;
    -webkit-overflow-scrolling:touch; scrollbar-width:none;
  }
  .site-head .site-nav-en::-webkit-scrollbar{ display:none }
  .site-head .site-nav-en a{
    padding:.3rem .45rem; font-size:.82rem;
    white-space:nowrap; flex:0 0 auto;
  }
  /* переключатель языка не уезжает вместе с прокруткой:
     прижат к правому краю и виден всегда */
  .site-head .site-nav-en a[lang="ru"]{
    position:sticky; inset-inline-end:0; margin-inline-start:auto;
    border:1px solid var(--rule); border-radius:.4rem;
    background:var(--surface); color:var(--ink-2);
    box-shadow:-10px 0 10px -4px var(--surface);
  }
}
/* ── конец: английская шапка на телефоне ── */

/* ── конец: английская шапка на телефоне ── */
