/* Страница учебника в дизайне приложения: тёплая бумага, терракота, Fraunces.
   Токены те же, что в styles.css, — учебник и приложение выглядят одним продуктом. */
:root{
  --paper:#fdfdfe; --card:#ffffff; --ink:#191a1e; --muted:#6f6a63; --line:#e9e7e4;
  --accent:#c0512c; --accent-soft:#f7e9e2; --ok:#2f6b52; --ok-soft:#e4efe9;
  --shadow:0 1px 2px rgba(60,40,20,.05), 0 10px 30px rgba(60,40,20,.07);
  --r:18px;
  --sans:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,Inter,sans-serif;
  --serif:"Fraunces",Georgia,"Times New Roman",serif;
}
:root[data-theme="dark"]{ --paper:#121114; --card:#1b1a1e; --ink:#f2ede6; --muted:#9c958c; --line:#2b292e;
         --accent:#e8825c; --accent-soft:#2c211d; --ok:#7cc0a0; --ok-soft:#1d2926;
         --shadow:0 1px 2px rgba(0,0,0,.5), 0 10px 30px rgba(0,0,0,.4); }
*{box-sizing:border-box; -webkit-tap-highlight-color:transparent}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);
  font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}

#toolbar{position:sticky;top:0;z-index:5;display:flex;gap:.6rem;align-items:center;
  padding:.6rem 1rem;background:color-mix(in srgb,var(--paper) 82%,transparent);
  backdrop-filter:blur(18px) saturate(180%);font-size:.82rem;color:var(--muted)}
#toolbar button{border:1px solid var(--line);background:var(--card);color:var(--ink);
  border-radius:999px;width:2.1rem;height:2.1rem;cursor:pointer;font-size:1rem;
  transition:transform .1s ease-out}
#toolbar button:active{transform:scale(.94)}
#toolbar #mode{margin-left:auto}
#toolbar label{display:flex;gap:.4rem;align-items:center;cursor:pointer}
#wrap{display:flex;gap:1.5rem;align-items:flex-start;justify-content:center;padding:1.2rem 1rem 5rem}
#scan img{width:min(42vw,640px);border:1px solid var(--line);border-radius:12px;background:#fff}
#page{width:min(40rem,100%)}

/* ---------- шапка урока ---------- */
.lesson-head{margin-bottom:1.8rem}
.lesson-head .eyebrow{font-size:.72rem;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;color:var(--accent)}
.lesson-head h1{font-family:var(--serif);font-optical-sizing:auto;font-weight:600;
  font-size:clamp(1.9rem,5vw,2.6rem);line-height:1.08;letter-spacing:-.02em;
  margin:.4rem 0 .9rem;text-wrap:balance}
.tags{display:flex;flex-wrap:wrap;gap:.4rem}
.tags span{display:inline-flex;align-items:center;gap:.45rem;border:1px solid var(--line);
  background:var(--card);border-radius:999px;padding:.3rem .75rem;font-size:.82rem;color:var(--muted)}
.tags b{width:1.15rem;height:1.15rem;border-radius:50%;background:var(--accent-soft);
  color:var(--accent);display:grid;place-items:center;font-size:.68rem;font-weight:700}

/* ---------- разделы ---------- */
.sec{display:flex;align-items:baseline;gap:.6rem;margin:2.2rem 0 .8rem}
.sec .k{font-size:.72rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--accent)}
.sec .s{font-family:var(--serif);font-size:1.05rem;font-weight:600;letter-spacing:-.01em}
.sec::after{content:"";flex:1;height:1px;background:var(--line)}

/* ---------- упражнение ---------- */
.ex{background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  padding:1.05rem 1.15rem;margin:.7rem 0;box-shadow:var(--shadow)}
.ex-head{display:flex;align-items:flex-start;gap:.55rem;margin-bottom:.5rem}
.chip{display:inline-grid;place-items:center;min-width:1.7rem;height:1.7rem;padding:0 .45rem;
  border-radius:9px;background:var(--accent);color:#fff;font-size:.8rem;font-weight:700;
  font-variant-numeric:tabular-nums;flex:none;margin-top:.05rem}
.chip.sub{background:var(--accent-soft);color:var(--accent)}
.ex .instr{font-weight:600;font-size:.98rem;line-height:1.45;flex:1}
.kind{font-size:.7rem;color:var(--muted);border:1px solid var(--line);border-radius:999px;
  padding:.18rem .55rem;white-space:nowrap;flex:none;margin-top:.15rem}

ol.items{list-style:none;margin:.7rem 0 0;padding:0}
ol.items>li{display:grid;grid-template-columns:1.4rem 1fr;gap:.6rem;padding:.62rem 0;
  border-top:1px solid var(--line)}
ol.items>li:first-child{border-top:0;padding-top:.15rem}
ol.items>li>.n{color:var(--muted);font-size:.8rem;font-weight:600;font-variant-numeric:tabular-nums;
  text-align:right;padding-top:.2rem}
ol.choices{list-style:none;margin:.5rem 0 0;padding:0;display:grid;gap:.35rem}
ol.choices>li{display:grid;grid-template-columns:1.25rem 1fr;gap:.5rem;align-items:start;
  border:1px solid var(--line);border-radius:12px;padding:.55rem .65rem;cursor:pointer;
  transition:border-color .15s,background .15s}
ol.choices>li:hover{border-color:var(--accent)}
ol.choices>li.picked{border-color:var(--accent);background:var(--accent-soft)}
ol.choices>li>.n{font-weight:700;color:var(--accent);text-align:center}

.ans{width:100%;border:0;border-bottom:1.5px dashed var(--line);background:transparent;
  font:inherit;font-size:.95rem;padding:.35rem .1rem;margin-top:.4rem;color:var(--ink);
  transition:border-color .15s}
.ans::placeholder{color:var(--muted);opacity:.6}
.ans:focus{outline:none;border-bottom-style:solid;border-color:var(--accent)}
.ans.filled{border-bottom-style:solid;border-color:var(--ok)}
.hintline{font-size:.8rem;color:var(--muted);margin-top:.55rem;padding-left:.9rem;
  border-left:2px solid var(--line)}

/* ---------- заметка ---------- */
.tip{border-left:3px solid var(--accent);background:var(--accent-soft);border-radius:0 14px 14px 0;
  padding:.9rem 1rem;margin:1.2rem 0}
.tip .brand{font-size:.7rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;
  color:var(--accent);margin-bottom:.3rem}
.tip p{margin:0;font-size:.94rem;line-height:1.5}

/* ---------- текст для чтения ---------- */
.article{margin:1.1rem 0 .4rem;background:var(--card);border:1px solid var(--line);
  border-radius:var(--r);padding:1.3rem 1.4rem;box-shadow:var(--shadow)}
.article h2{font-family:var(--serif);font-weight:600;font-size:clamp(1.45rem,4vw,1.95rem);
  line-height:1.12;letter-spacing:-.02em;margin:0 0 .3rem;text-wrap:balance}
.article .by{color:var(--muted);font-size:.88rem;margin:0 0 1.1rem}
.article .txt{font-size:1.05rem;line-height:1.66}
.article .txt p{margin:0 0 1em}
.article .txt .dc{float:left;font-family:var(--serif);font-weight:600;font-size:3.2em;
  line-height:.8;padding:.05em .1em 0 0;color:var(--accent)}
.article .more{font-size:.8rem;color:var(--muted);border-top:1px solid var(--line);
  padding-top:.7rem;margin-top:.3rem}

figure.fig{margin:1rem 0;border:1px solid var(--line);border-radius:14px;overflow:hidden;
  background:var(--card);box-shadow:var(--shadow)}
figure.fig img{width:100%;display:block}
figure.fig figcaption{font-size:.82rem;color:var(--muted);padding:.55rem .8rem}

.footer{margin-top:2.4rem;padding-top:1rem;border-top:1px solid var(--line);
  display:flex;justify-content:space-between;font-size:.76rem;color:var(--muted)}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* ================== своя графика: цвет юнита, обложка, иконки ================== */
:root{ --u:#c0512c; --u2:#e0a06a; --u-soft:#f7e9e2; }

/* мягкий фон вместо пустой бумаги — два тёплых пятна по краям, текст не трогают */
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(60rem 40rem at 12% -8%, color-mix(in srgb,var(--u) 13%, transparent), transparent 60%),
    radial-gradient(48rem 34rem at 92% 18%, color-mix(in srgb,var(--u2) 16%, transparent), transparent 62%),
    radial-gradient(52rem 40rem at 50% 108%, color-mix(in srgb,var(--u) 8%, transparent), transparent 60%);}

/* обложка урока */
.hero{border-radius:var(--r);overflow:hidden;margin:.2rem 0 1.4rem;box-shadow:var(--shadow);
  position:relative;background:var(--card)}
.hero svg{display:block}
.hero::after{content:"";position:absolute;inset:auto 0 0 0;height:72%;pointer-events:none;
  background:linear-gradient(to top, color-mix(in srgb,var(--u) 88%, #2a1408) 4%,
                                     color-mix(in srgb,var(--u) 55%, transparent) 46%, transparent)}
.hero .cap{position:absolute;left:1.15rem;bottom:1rem;right:1.15rem;color:#fff;z-index:1;
  text-shadow:0 1px 10px rgba(40,20,10,.35)}
.hero .cap .u{font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;opacity:.95}
.hero .cap h1{font-family:var(--serif);font-weight:600;font-size:clamp(1.7rem,4.6vw,2.4rem);
  line-height:1.06;letter-spacing:-.02em;margin:.15rem 0 0;color:#fff}

.lesson-head{margin-bottom:1.2rem}
.lesson-head .eyebrow{color:var(--u)}
.tags b{background:var(--u-soft);color:var(--u)}

/* разделы с иконкой */
.sec{align-items:center}
.sec .k{display:inline-flex;align-items:center;gap:.42rem;color:var(--u)}
.sec .ico{opacity:.9}

/* акцент упражнения — в цвете юнита */
.chip{background:var(--u)}
.chip.sub{background:var(--u-soft);color:var(--u)}
.ans:focus{border-color:var(--u)}
ol.choices>li:hover{border-color:var(--u)}
ol.choices>li.picked{border-color:var(--u);background:var(--u-soft)}
ol.choices>li>.n{color:var(--u)}
.tip{border-left-color:var(--u);background:var(--u-soft)}
.tip .brand{color:var(--u)}
.article .txt .dc{color:var(--u)}

/* выполненное задание — спокойная награда, без фейерверков */
.ex{transition:border-color .25s, box-shadow .25s}
.ex.done{border-color:color-mix(in srgb,var(--ok) 45%, var(--line))}
.ex.done .stamp{opacity:1;transform:none}
.stamp{margin-left:auto;display:inline-flex;align-items:center;gap:.3rem;font-size:.72rem;font-weight:700;
  color:var(--ok);background:var(--ok-soft);border-radius:999px;padding:.2rem .6rem;flex:none;
  opacity:0;transform:translateY(-3px) scale(.9);transition:opacity .25s, transform .3s cubic-bezier(.2,.9,.24,1)}

/* прогресс страницы */
.pbar{position:sticky;top:0;z-index:4;height:3px;background:transparent;margin:-1.2rem -1rem 1.2rem}
.pbar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--u),var(--u2));
  border-radius:0 3px 3px 0;transition:width .45s cubic-bezier(.2,.9,.24,1)}
.pnote{display:flex;align-items:center;gap:.5rem;font-size:.78rem;color:var(--muted);margin:.2rem 0 1rem}
.pnote b{color:var(--u)}

:root[data-theme="dark"] .hero .cap h1, :root[data-theme="dark"] .hero .cap .u{text-shadow:0 1px 14px rgba(0,0,0,.6)}
@media (prefers-reduced-motion:reduce){ .stamp,.pbar i{transition:none} }

/* ================== живой фон и графика на полях ================== */
#bg{position:fixed;inset:-12%;z-index:-1;pointer-events:none;overflow:hidden;
  contain:strict}
#bg .b{position:absolute;border-radius:50%;filter:blur(100px);will-change:transform;opacity:.16}
#bg .b1{width:46vw;height:46vw;left:-8vw;top:-6vw;background:radial-gradient(circle at 35% 35%,
  color-mix(in srgb,var(--u) 20%,transparent),transparent 72%)}
#bg .b2{width:40vw;height:40vw;right:-6vw;top:18vh;background:radial-gradient(circle at 45% 40%,
  color-mix(in srgb,var(--u2) 22%,transparent),transparent 70%)}
#bg .b3{width:52vw;height:52vw;left:22vw;bottom:-22vw;background:radial-gradient(circle at 50% 40%,
  color-mix(in srgb,var(--u) 12%,transparent),transparent 74%)}
body::before{content:none}          /* статичные пятна больше не нужны */

.side{position:absolute;pointer-events:none;z-index:0;opacity:.5;
  will-change:transform;transition:opacity .5s ease, filter .5s ease;filter:saturate(.9)}
.side.in{opacity:.6;filter:none}
.side svg{display:block}
@media (max-width:1180px){ .side{display:none} }

#page{position:relative;z-index:1}
#wrap{position:relative}

@media (prefers-reduced-motion:reduce){
  #bg .b{transform:none!important}
  .side{transform:none!important;transition:none}
}

/* ================== расширение: наш материал сверх учебника ================== */
.extras{margin-top:2.6rem;position:relative;z-index:1}
.ex-title{display:flex;align-items:baseline;gap:.6rem;margin-bottom:.9rem;
  padding-top:1.1rem;border-top:2px solid color-mix(in srgb,var(--u) 30%, var(--line))}
.ex-title span{font-family:var(--serif);font-weight:600;font-size:1.35rem;letter-spacing:-.01em}
.ex-title small{color:var(--muted);font-size:.8rem}

.xcard{background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  padding:1.05rem 1.15rem;margin:.7rem 0;box-shadow:var(--shadow)}
.xcard.puzzle{background:color-mix(in srgb,var(--u) 3%, var(--card))}
.x-head{display:flex;align-items:center;gap:.5rem;margin-bottom:.6rem;color:var(--u)}
.x-head .t{font-weight:700;font-size:.95rem;letter-spacing:.01em}
.x-head .s{margin-left:auto;font-size:.72rem;color:var(--muted);border:1px solid var(--line);
  border-radius:999px;padding:.15rem .55rem;white-space:nowrap}
.x-note{margin:.1rem 0 .6rem;font-size:.86rem;color:var(--muted)}
.x-sub{font-weight:600;font-size:.92rem;margin:.9rem 0 .4rem}
.x-sub:first-of-type{margin-top:.2rem}
.x-prompt{border-left:2px solid var(--u);padding:.1rem 0 .1rem .7rem;margin:.4rem 0;font-size:.94rem}

ol.xlist{list-style:none;margin:.3rem 0 0;padding:0}
ol.xlist>li{display:grid;grid-template-columns:1.4rem 1fr;gap:.6rem;padding:.6rem 0;border-top:1px solid var(--line)}
ol.xlist>li:first-child{border-top:0}
.xn{color:var(--muted);font-size:.78rem;font-weight:600;text-align:right;padding-top:.35rem;
  font-variant-numeric:tabular-nums}
.xlist .ru{font-size:.96rem;line-height:1.45}
.xlist .wrong{font-size:.96rem;color:var(--muted)}
.xlist .wrong s{text-decoration-color:color-mix(in srgb,var(--u) 60%, transparent)}
.xlist .stem{font-size:.72rem;font-weight:700;letter-spacing:.12em;color:var(--u);text-transform:uppercase}
.xlist .gap{border-bottom:1.5px solid var(--u);padding:0 .3rem}

.chk{margin-top:.35rem}
.chk-row{display:flex;gap:.4rem;align-items:center}
.chk-row .ans{flex:1;margin-top:0}
.ans.right{border-bottom-color:var(--ok);border-bottom-style:solid;color:var(--ok)}
.mini{border:1px solid var(--line);background:var(--card);color:var(--u);border-radius:9px;
  padding:.34rem .6rem;font:inherit;font-size:.76rem;font-weight:600;cursor:pointer;white-space:nowrap;
  transition:transform .1s ease-out,border-color .15s}
.mini:hover{border-color:var(--u)}
.mini:active{transform:scale(.95)}
.mini.ghost{color:var(--muted)}
.fb{margin-top:.4rem;font-size:.85rem;border-radius:9px;padding:.35rem .55rem}
.fb.ok{background:var(--ok-soft);color:var(--ok)}
.fb.warn{background:color-mix(in srgb,var(--u) 10%, var(--card));color:var(--u)}
.fb .alt{opacity:.7;font-weight:400}
.fb .why{color:var(--muted);font-size:.8rem;margin-top:.2rem}

.chips{display:flex;flex-wrap:wrap;gap:.4rem;margin:.4rem 0}
.wchip{border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:10px;
  padding:.4rem .7rem;font:inherit;font-size:.9rem;cursor:pointer;transition:.15s}
.wchip:hover{border-color:var(--u)}
.wchip.good{border-color:var(--ok);background:var(--ok-soft);color:var(--ok)}
.wchip.bad{opacity:.45;text-decoration:line-through}

/* ================== звук, новые блоки урока ================== */
.play{display:inline-flex;align-items:center;gap:.3rem;border:1px solid var(--line);background:var(--card);
  color:var(--u);border-radius:999px;padding:.2rem .5rem;font:inherit;font-size:.72rem;font-weight:600;
  cursor:pointer;vertical-align:middle;transition:.15s}
.play:hover{border-color:var(--u)}
.play.on{background:var(--u);border-color:var(--u);color:#fff}
.play svg{flex:none}
.audio-row{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.5rem;align-items:center}
.audio-row .lbl{font-size:.74rem;color:var(--muted);margin-right:.2rem}

.pullquote{font-family:var(--serif);font-size:1.15rem;line-height:1.35;color:var(--u);
  border-left:3px solid var(--u);padding:.4rem 0 .4rem .9rem;margin:1.1rem 0}
.refbank{display:flex;align-items:center;gap:.5rem;border:1px dashed var(--u);border-radius:12px;
  padding:.55rem .8rem;margin:.8rem 0;font-size:.85rem;color:var(--u);background:var(--u-soft)}
.refbank b{font-weight:700}
.refbank span{color:var(--muted);font-weight:400}

.mail{border:1px solid var(--line);border-radius:14px;overflow:hidden;margin:.7rem 0;background:var(--card)}
.mail .h{display:flex;gap:.5rem;font-size:.78rem;color:var(--muted);padding:.5rem .8rem;
  border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--u) 3%, var(--card))}
.mail .h b{color:var(--ink);font-weight:600}
.mail .b{padding:.8rem .9rem;font-size:.95rem;line-height:1.55}
.mail .b p{margin:0 0 .7em} .mail .b p:last-child{margin:0}

.subtasks{list-style:none;margin:.6rem 0 0;padding:0;display:grid;gap:.4rem}
.subtasks li{display:grid;grid-template-columns:1.2rem 1fr;gap:.45rem;font-size:.92rem}
.subtasks .k{font-weight:700;color:var(--u)}
.notes{display:grid;gap:.5rem;margin-top:.6rem}
.note-box{border:1px solid var(--line);border-radius:12px;padding:.55rem .7rem;font-size:.9rem}
.note-box b{display:block;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--u);margin-bottom:.25rem}
.note-box .row{display:flex;gap:.4rem;align-items:baseline}
.note-box .row i{font-style:normal;color:var(--muted);width:4.6rem;flex:none;font-size:.8rem}
.sit{border:1px solid var(--line);border-radius:12px;padding:.7rem .8rem;margin:.5rem 0;font-size:.93rem}
.sit b{color:var(--u)}
.wbox{width:100%;min-height:9rem;border:1px solid var(--line);border-radius:12px;background:var(--card);
  color:var(--ink);font:inherit;font-size:.95rem;line-height:1.5;padding:.7rem .8rem;margin-top:.5rem;resize:vertical}
.wbox:focus{outline:none;border-color:var(--u)}
.wcount{font-size:.75rem;color:var(--muted);margin-top:.3rem}
.wcount.ok{color:var(--ok)}
.reveal{margin-top:.45rem;font-size:.85rem;background:var(--u-soft);color:var(--u);border-radius:9px;
  padding:.4rem .6rem}
.pick{display:inline-flex;gap:.3rem;margin-left:.5rem}
.pick button{border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:8px;
  width:1.9rem;height:1.9rem;font:inherit;font-weight:700;font-size:.8rem;cursor:pointer}
.pick button.good{border-color:var(--ok);background:var(--ok-soft);color:var(--ok)}
.pick button.bad{opacity:.4}
.pagemark{display:flex;align-items:center;gap:.6rem;margin:2.4rem 0 1rem;color:var(--muted);font-size:.76rem}
.pagemark::before,.pagemark::after{content:"";flex:1;height:1px;background:var(--line)}

/* ---------- цитаты, правила, квиз, пропуски, словарные сети ---------- */
.quotes{display:grid;gap:.5rem;margin:.8rem 0}
.quotes .q{background:color-mix(in srgb,var(--u) 6%, var(--card));border-radius:12px;
  padding:.7rem .85rem;font-size:.95rem;line-height:1.45}
.rulesbox{display:flex;gap:.7rem;border:1px solid var(--line);border-radius:12px;padding:.7rem .85rem;
  margin:.7rem 0;background:color-mix(in srgb,var(--u) 4%, var(--card));font-size:.92rem}
.rulesbox b{writing-mode:vertical-rl;transform:rotate(180deg);font-size:.65rem;letter-spacing:.14em;
  color:var(--u);flex:none}
.ex.as-rules{background:color-mix(in srgb,var(--u) 4%, var(--card))}
.wordbox{display:flex;flex-wrap:wrap;gap:.35rem;margin:.6rem 0;padding:.6rem;border:1px solid var(--line);
  border-radius:12px}
.wordbox .wb{font-size:.88rem;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:.2rem .5rem}
.gaptext{font-size:.98rem;line-height:2.1;margin-top:.5rem}
.ans.gap{display:inline-block;width:8.5rem;margin:0 .2rem;border-bottom:1.5px dashed var(--line);
  text-align:center;font-size:.9rem}
.webs{display:grid;gap:.6rem;margin-top:.6rem}
.web{border:1px solid var(--line);border-radius:12px;padding:.6rem .75rem}
.web .v{display:inline-block;background:var(--u);color:#fff;border-radius:8px;padding:.1rem .55rem;
  font-weight:700;font-size:.85rem}
.web .given{font-style:italic;color:var(--muted);font-size:.86rem;margin:.35rem 0}
.web ul{margin:.3rem 0 0;padding-left:1.1rem;font-size:.9rem}
.web li{margin:.15rem 0}
.quiz{background:color-mix(in srgb,var(--u) 5%, var(--card));border:1px solid var(--line);
  border-radius:var(--r);padding:1rem 1.1rem;margin:.8rem 0}
.quiz h3{font-family:var(--serif);font-weight:600;font-size:1.3rem;margin:0 0 .3rem;color:var(--u)}
.quiz .intro{font-size:.88rem;color:var(--muted);margin:0 0 .6rem}
ol.qlist{list-style:none;margin:0;padding:0}
ol.qlist>li{display:grid;grid-template-columns:1.4rem 1fr;gap:.6rem;padding:.6rem 0;border-top:1px solid var(--line)}
ol.qlist>li:first-child{border-top:0}
ol.qlist .q{font-weight:600;font-size:.93rem}

#toolbar .home{color:var(--u);text-decoration:none;font-weight:600;font-size:.8rem;
  border:1px solid var(--line);border-radius:999px;padding:.35rem .7rem;background:var(--card)}
#toolbar .home:hover{border-color:var(--u)}

/* ---------- советы, анкета, реплики, key phrases ---------- */
.tips{background:color-mix(in srgb,var(--u) 5%, var(--card));border:1px solid var(--line);
  border-radius:var(--r);padding:.9rem 1.05rem;margin:.8rem 0}
.tips .lead{font-weight:600;font-size:.93rem;margin:0 0 .5rem}
.tips ol{margin:0;padding-left:1.3rem;font-size:.93rem;line-height:1.5}
.tips li{margin:.35rem 0}
.tips li::marker{color:var(--u);font-weight:700}
.quest{background:color-mix(in srgb,var(--u) 7%, var(--card));border-radius:var(--r);
  padding:.9rem 1.05rem;margin:.8rem 0}
.quest h3{font-family:var(--serif);font-weight:600;font-size:1.2rem;margin:0 0 .4rem;color:var(--u)}
.quest ol{margin:0;padding-left:1.3rem;font-size:.92rem;line-height:1.5}
.quest li{margin:.25rem 0}
.extract{border-left:2px solid var(--line);padding:.4rem 0 .4rem .8rem;margin:.6rem 0}
.extract .lbl{font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:var(--muted);margin-bottom:.25rem}
.extract .ln{font-size:.93rem;line-height:1.5;margin:.15rem 0}
.ex.as-keyphrases{background:color-mix(in srgb,var(--u) 6%, var(--card));border-color:var(--u)}
