/* Lecteur « Écouter le manuscrit » (structure de Céleste, couleurs Yoga To Heaven) : bouton, plein écran, texte surligné, mini-lecteur. */
.ls-open{ width:100%; display:flex; align-items:center; gap:14px; margin:4px 0 22px; padding:14px 18px; border-radius:22px; text-align:start; cursor:pointer;
  color:#f5ecd9; background:linear-gradient(140deg,#1d2b22,#16241c 55%,#2b2517); border:1px solid rgba(226,206,160,.3); box-shadow:var(--shadow-sm);
  transition:transform .3s var(--ease), box-shadow .3s; }
.ls-open:hover{ transform:translateY(-2px); box-shadow:var(--shadow); }
.ls-open-ic{ width:46px; height:46px; flex:none; display:grid; place-items:center; border-radius:50%; color:#1c150c;
  background:radial-gradient(circle at 34% 32%,#fff4d6,#e2c792 50%,#b0894f); box-shadow:0 0 22px rgba(226,199,146,.45); }
.ls-open-ic svg{ width:22px; height:22px; }
.ls-open-t{ flex:1; display:flex; flex-direction:column; gap:2px; min-width:0; }
.ls-open-t b{ font-family:var(--serif); font-weight:500; font-size:1.15rem; color:#f4e4c1; }
.ls-open-t small{ color:rgba(245,236,217,.8); font-size:.86rem; line-height:1.45; }
.ls-open-go{ width:38px; height:38px; flex:none; display:grid; place-items:center; border-radius:50%; background:rgba(226,199,146,.16); color:#e8cf9c; }
.ls-open-go svg{ width:16px; height:16px; }
[dir="rtl"] .ls-open-go svg, [dir="rtl"] .ls-ctrl{ transform:none; }

html.ls-lock, html.ls-lock body{ overflow:hidden; }
.ls{ --ls-bg:linear-gradient(165deg,#fbf6ec 0%,#f1e8d6 55%,#e5ecd9 100%); --ls-ink:#2e261d; --ls-soft:#6a604f; --ls-acc:#b0894f; --ls-acc2:#c9a86a;
  --ls-chip:rgba(63,90,58,.08); --ls-line:rgba(63,90,58,.14); --ls-read:rgba(46,38,29,.42); --ls-on:rgba(201,168,106,.32);
  position:fixed; inset:0; z-index:90; display:none; color:var(--ls-ink); background:var(--ls-bg); overflow:hidden;
  opacity:0; transform:translateY(24px); transition:opacity .32s var(--ease), transform .32s var(--ease); }
[data-theme="dark"] .ls{ --ls-bg:linear-gradient(165deg,#15241c 0%,#0f1c15 55%,#221d12 100%); --ls-ink:#f3ead8; --ls-soft:#b5bba7; --ls-acc:#e2c792; --ls-acc2:#c9a86a;
  --ls-chip:rgba(234,219,187,.08); --ls-line:rgba(226,206,160,.14); --ls-read:rgba(243,234,216,.42); --ls-on:rgba(226,199,146,.26); }
.ls.open{ display:block; }
.ls.open:not(.closing){ opacity:1; transform:none; }
.ls-bg i{ position:absolute; border-radius:50%; filter:blur(60px); opacity:.5; pointer-events:none; }
.ls-bg i:nth-child(1){ width:420px; height:420px; top:-160px; inset-inline-end:-120px; background:rgba(201,168,106,.45); }
.ls-bg i:nth-child(2){ width:360px; height:360px; bottom:-140px; inset-inline-start:-120px; background:rgba(125,149,96,.4); }
.ls-bg i:nth-child(3){ width:220px; height:220px; top:40%; left:40%; background:rgba(226,199,146,.25); animation:breath 8s ease-in-out infinite; }
.ls-main{ position:relative; height:100%; display:flex; flex-direction:column; max-width:1100px; margin:0 auto; padding:max(12px,env(safe-area-inset-top)) 20px max(14px,env(safe-area-inset-bottom)); }
.ls-top{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding:6px 0 10px; }
.ls-top-t{ text-align:center; display:flex; flex-direction:column; min-width:0; }
.ls-top-t small{ color:var(--ls-soft); font-size:.74rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.ls-top-t strong{ font-family:var(--serif); font-weight:500; font-size:1.02rem; }
.ls-ibtn{ width:44px; height:44px; flex:none; display:grid; place-items:center; border-radius:50%; color:var(--ls-ink); background:var(--ls-chip); border:1px solid var(--ls-line); cursor:pointer; }
.ls-ibtn svg{ width:22px; height:22px; }
.ls-ibtn:disabled{ opacity:.4; }
.ls-body{ flex:1; min-height:0; display:grid; grid-template-columns:minmax(300px,420px) minmax(0,1fr); gap:28px; }
.ls-player{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px; min-height:0; }
.ls-art{ position:relative; width:min(250px,52vw); aspect-ratio:1; display:grid; place-items:center; }
.ls-halo{ position:absolute; inset:-8%; border-radius:50%; background:radial-gradient(circle,rgba(226,199,146,.5),transparent 68%); animation:breath 6s ease-in-out infinite; }
.ls-orbit{ position:absolute; inset:0; border-radius:50%; border:1.5px solid rgba(201,168,106,.45); animation:spin 14s linear infinite; }
.ls-orbit i{ position:absolute; top:-5px; left:50%; width:10px; height:10px; margin-left:-5px; border-radius:50%; background:var(--ls-acc); box-shadow:0 0 14px var(--ls-acc2); }
.ls.is-playing .ls-orbit{ animation-duration:6s; }
.ls-moon{ position:relative; width:62%; aspect-ratio:1; border-radius:50%; display:grid; place-items:center; color:#3f5a3a;
  background:radial-gradient(circle at 34% 32%,#fff6df,#e8cf9c 46%,#b0894f 100%); box-shadow:0 0 0 10px rgba(201,168,106,.12),0 0 60px rgba(226,199,146,.55); }
.ls-moon svg{ width:42%; height:42%; }
.ls.is-playing .ls-moon{ animation:breath 4.5s ease-in-out infinite; }
.ls-prep{ position:absolute; inset:0; display:none; place-items:center; }
.ls.is-prep .ls-prep{ display:grid; }
.ls.is-prep .ls-moon{ animation:breath 3.2s ease-in-out infinite; opacity:.55; }
.ls-prep svg{ position:absolute; inset:0; width:100%; height:100%; transform:rotate(-90deg); }
.ls-prep circle{ fill:none; stroke-width:4; }
.ls-prep .t{ stroke:var(--ls-line); }
.ls-prep .f{ stroke:var(--ls-acc); stroke-linecap:round; stroke-dasharray:326.7; stroke-dashoffset:326.7; transition:stroke-dashoffset .6s var(--ease); }
.ls-prep b{ position:relative; font-size:1.5rem; font-weight:800; color:#2e261d; }
.ls-meta{ text-align:center; max-width:30em; }
.ls-meta h2{ font-family:var(--serif); font-weight:500; font-size:clamp(1.25rem,3vw,1.7rem); line-height:1.25; }
.ls-meta p{ color:var(--ls-soft); font-size:.9rem; margin-top:2px; }
.ls-status{ color:var(--ls-acc); font-weight:700; font-size:.92rem; text-align:center; }
.ls-status[data-hint]::after{ content:attr(data-hint); display:block; color:var(--ls-soft); font-weight:500; font-size:.82rem; margin-top:2px; }
.ls-status.is-err{ color:var(--err-text); }
.ls-seek{ width:100%; max-width:420px; }
.ls-track{ position:relative; }
.ls-seek input{ width:100%; height:22px; margin:0; background:transparent; -webkit-appearance:none; appearance:none; cursor:pointer; }
.ls-seek input::-webkit-slider-runnable-track{ height:6px; border-radius:6px; background:linear-gradient(90deg,var(--ls-acc) var(--p,0%),var(--ls-line) var(--p,0%)); }
.ls-seek input::-moz-range-track{ height:6px; border-radius:6px; background:linear-gradient(90deg,var(--ls-acc) var(--p,0%),var(--ls-line) var(--p,0%)); }
.ls-seek input::-webkit-slider-thumb{ -webkit-appearance:none; width:16px; height:16px; margin-top:-5px; border-radius:50%; background:var(--ls-acc); box-shadow:0 0 0 4px rgba(201,168,106,.25); }
.ls-seek input::-moz-range-thumb{ width:16px; height:16px; border:0; border-radius:50%; background:var(--ls-acc); }
.ls-marks{ position:absolute; inset:0; pointer-events:none; }
.ls-marks i{ position:absolute; top:50%; width:3px; height:10px; margin:-5px 0 0 -1.5px; border-radius:2px; background:var(--ls-ink); opacity:.35; }
.ls-times{ display:flex; justify-content:space-between; color:var(--ls-soft); font-size:.8rem; font-variant-numeric:tabular-nums; }
.ls-ctrl{ display:flex; align-items:center; justify-content:center; gap:14px; }
.ls-sm{ width:38px; height:38px; background:none; border-color:transparent; }
.ls-play{ width:72px; height:72px; display:grid; place-items:center; border-radius:50%; border:0; cursor:pointer; color:#fff;
  background:linear-gradient(140deg,var(--forest-2),var(--forest)); box-shadow:0 16px 34px -14px rgba(63,90,58,.9); transition:transform .25s var(--ease); }
[data-theme="dark"] .ls-play{ color:#1c150c; background:linear-gradient(140deg,#e8cf9c,#b0894f); box-shadow:0 16px 34px -14px rgba(201,168,106,.7); }
.ls-play svg{ width:30px; height:30px; }
.ls-play:active{ transform:scale(.94); }
.ls-play:disabled{ opacity:.55; }
.ls-sub{ display:flex; gap:10px; }
.ls-speed{ min-width:64px; padding:7px 14px; border-radius:999px; font-weight:800; font-size:.9rem; color:var(--ls-ink); background:var(--ls-chip); border:1px solid var(--ls-line); cursor:pointer; }
