/* Анимации уроков 4–9. Общий deck.css не меняем: первый урок его не подключает. */

.lessons{position:fixed;z-index:30;top:10px;left:12px;display:flex;gap:6px;align-items:center;font:700 14px/1 Manrope,sans-serif}
.lessons a{color:#f6d595;text-decoration:none;background:rgba(8,10,16,.78);border:1px solid rgba(246,213,149,.5);border-radius:999px;padding:7px 10px}
.lessons a.here{background:#f6d595;color:#1a1208}
a.gonext{display:inline-flex;margin-top:14px;padding:12px 16px;border-radius:14px;border:1px solid rgba(246,213,149,.7);background:rgba(20,14,10,.9);color:#f6d595;font:800 24px/1.2 "Playfair Display",serif;text-decoration:none}

.slide h2{margin-bottom:14px}
.slide .kicker{margin-bottom:8px}

.stack{display:flex;flex-direction:column;gap:14px}
.pair{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}
.pair .stack{min-width:0}

.prose{
  margin:0;padding:15px 20px;border-radius:16px;
  background:rgba(8,10,16,.88);border:1px solid rgba(246,213,149,.3);
  font-size:32px;line-height:1.42;
}
.prose.soft{background:rgba(8,10,16,.72)}

.say{
  margin:0;padding:14px 18px;border-radius:16px;
  background:linear-gradient(180deg,#fbf3e2,#efe0c0);color:#2a2017;
  font:700 27px/1.38 "Playfair Display",serif;
}
.say .who{display:block;margin:0 0 6px;font:800 13px/1 Manrope,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#8a4b12}
.say b{color:#8a4b12}

.person{
  display:grid;grid-template-columns:330px 78px 1fr;gap:12px;align-items:center;
  padding:11px 16px;border-radius:14px;
  background:rgba(8,10,16,.88);border:1px solid rgba(246,213,149,.28);
  font-size:24px;line-height:1.32;
}
.person b{font:700 26px/1.15 "Playfair Display",serif}
.person i{font:900 34px/1 "Playfair Display",serif;font-style:normal;color:#f6d595;text-align:center}
.person.nonum{grid-template-columns:340px 1fr}

.nums{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.numbox{
  text-align:center;padding:14px 12px 16px;border-radius:16px;
  background:rgba(8,10,16,.88);border:1px solid rgba(246,213,149,.35);
}
.numbox .v{font:900 72px/1 "Playfair Display",serif;color:#f6d595}
.numbox .l{margin-top:6px;font-size:20px;line-height:1.3;color:#f7f1e6}

.basm-line{text-align:center;font-family:"Amiri Quran",Amiri,serif;font-size:32px;line-height:1.45;color:#f6d595;margin:0 0 8px}
.verses{display:flex;flex-direction:column;gap:8px}
.verse{
  display:grid;grid-template-columns:58px 1fr;grid-template-rows:auto auto;
  column-gap:8px;align-items:center;
  background:rgba(8,10,16,.9);border:1px solid rgba(246,213,149,.42);border-radius:14px;
  padding:5px 16px 7px 8px;
}
.verse .num{grid-row:1 / span 2;font:800 26px/1 Manrope,sans-serif;color:#f6d595;text-align:center}
.verse .ar{grid-column:2;grid-row:1;margin:0;text-align:center;font-size:34px;line-height:1.75;color:#fff8ec}
.verse .tr{grid-column:2;grid-row:2;margin:0;text-align:center;font-size:22px;line-height:1.28;color:#f7f1e6}
.verse .an{color:#e8b25a}
.verse cite{grid-column:2;grid-row:3;text-align:center}
.verses.long .ar, .verse.long .ar{font-size:26px;line-height:1.65}
.verses.long .tr, .verse.long .tr{font-size:18px;line-height:1.28}

.slide .qa{gap:12px 16px}
.slide .qa .q{font-size:22px;line-height:1.32;padding:12px 16px}
.slide .qa .q .a{font-size:20px;line-height:1.32}

.yearline{display:flex;flex-direction:column;gap:10px}
.yearline .y{
  display:grid;grid-template-columns:168px 1fr;gap:14px;align-items:center;
  padding:16px 18px;border-radius:14px;
  background:rgba(8,10,16,.88);border:1px solid rgba(246,213,149,.28);
  font-size:26px;line-height:1.38;
}
.yearline .y b{font:800 22px/1.1 Manrope,sans-serif;color:#f6d595}

/* новые появления: не повтор подъёма из первого урока */
.f.ink{transform:none;clip-path:inset(0 100% 0 0)}
.f.ink.on{clip-path:inset(0 0 0 0);transition:opacity .35s ease, clip-path .9s cubic-bezier(.16,.84,.2,1)}

.f.seal{transform:scale(1.12) rotate(-2.5deg);filter:blur(3px)}
.f.seal.on{transform:none;filter:none;transition:transform .5s cubic-bezier(.2,1.45,.32,1), opacity .28s ease, filter .45s ease}

.f.leaf{transform:perspective(900px) rotateX(-68deg);transform-origin:top center}
.f.leaf.on{transform:none;transition:transform .75s cubic-bezier(.16,.8,.22,1), opacity .4s ease}

.f.turn{transform:perspective(1000px) rotateX(64deg);transform-origin:center top}
.f.turn.on{transform:none;transition:transform .7s cubic-bezier(.16,.8,.22,1), opacity .35s ease}

.f.unroll{transform:none;clip-path:inset(0 0 100% 0)}
.f.unroll.on{clip-path:inset(0 0 0 0);transition:opacity .3s ease, clip-path 1s cubic-bezier(.16,.8,.2,1)}

.f.side{transform:translateX(70px) rotate(1.5deg)}
.f.side.on{transform:none;transition:transform .7s cubic-bezier(.16,.8,.22,1), opacity .4s ease}

.type{display:block;position:relative}
.type .ghost{visibility:hidden;display:block}
.type .live{position:absolute;left:0;top:0;right:0}
.type .live::after{
  content:"";display:inline-block;width:2px;height:.85em;margin-left:3px;
  background:currentColor;vertical-align:-2px;animation:caret .9s steps(1) infinite;
}
.type.typed .live::after{display:none}
@keyframes caret{50%{opacity:0}}

.flip.mid{height:248px}
.flips.two{grid-template-columns:1fr 1fr}

/* Хвост абзаца приходит отдельным шагом. Место в карточке занято сразу, карточка не прыгает. */
.prose .ln.f{
  transform:none;
  filter:blur(8px);
  opacity:0;
}
.prose .ln.f.on{
  transform:none;
  filter:none;
  opacity:1;
  transition:opacity .5s ease, filter .7s ease, clip-path .85s cubic-bezier(.16,.84,.2,1);
}
/* clip-path на длинной строке внутри абзаца срезает перенос. Здесь только проявление. */
.prose .ln.f.soak{filter:blur(3px)}
.prose .ln.f.soak.on{filter:none;clip-path:none}
