/* A bookish transport with a compact, shared in-page and floating layout. */
.audiobook-player{margin:1.25rem 0 2rem;padding:1rem 1.25rem .5rem;border:1px solid var(--rule);border-radius:.875rem;background:var(--surface-veil);color:var(--text);font:400 var(--audio-body)/1.5 var(--text-face);text-align:left}
.audiobook-player audio{display:block;width:100%;min-height:var(--tap)}
.audiobook-player [hidden]{display:none}
.audiobook-player button,.audiobook-player input{font:inherit}
.audiobook-player button{min-height:var(--tap);cursor:pointer;touch-action:manipulation}
.audiobook-player svg{flex:none;width:1.125rem;height:1.125rem;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.audiobook-duration{margin:0 0 .75rem!important;font-size:var(--audio-small);color:var(--text-muted)}
.audiobook-controls{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:1.25rem}
.audiobook-transport{display:flex;align-items:center;gap:.125rem}
.audiobook-play{display:grid;place-items:center;flex:none;width:3rem;height:3rem;padding:0;border:0;border-radius:50%;background:var(--plum-text);color:var(--surface-veil)}
.audiobook-player .audiobook-play svg{width:1.25rem;height:1.25rem;fill:currentColor;stroke:none}
.audiobook-play:hover{background:var(--text)}
.audiobook-play:active{transform:scale(.96)}
.audiobook-fable,.audiobook-jump,.audiobook-close,.audiobook-mute{display:grid;place-items:center;position:relative;flex:none;width:var(--tap);height:var(--tap);padding:0;border:0;border-radius:50%;background:transparent;color:var(--text-soft);text-decoration:none}
.audiobook-fable:hover,.audiobook-jump:hover,.audiobook-close:hover,.audiobook-mute:hover{background:var(--plum-tint);color:var(--plum-text)}
.audiobook-player .audiobook-jump svg{width:1.5rem;height:1.5rem}
.audiobook-jump span{position:absolute;inset:0;display:grid;place-items:center;padding-top:.125rem;font-size:var(--audio-tiny);font-variant-numeric:tabular-nums;line-height:1}
.audiobook-fable:disabled,.audiobook-jump:disabled{opacity:.4;cursor:default;background:transparent}
.audio-pause-icon,.audio-muted-icon,.is-playing .audio-play-icon,.is-muted .audio-volume-icon{display:none}
.is-playing .audio-pause-icon,.is-muted .audio-muted-icon{display:block}
.audiobook-progress{min-width:0}
.audiobook-clock{display:flex;justify-content:space-between;gap:.5rem;font-size:var(--step--3);font-variant-numeric:tabular-nums;color:var(--text-muted);line-height:1.3}
.audiobook-seek,.audiobook-volume,.audiobook-speed{appearance:none;display:block;width:100%;min-width:0;height:var(--tap);margin:0;background:transparent;cursor:pointer;accent-color:var(--plum-text)}
.audiobook-seek{margin-bottom:-.5rem}
.audiobook-seek::-webkit-slider-runnable-track,.audiobook-volume::-webkit-slider-runnable-track,.audiobook-speed::-webkit-slider-runnable-track{height:3px;border-radius:2px;background:linear-gradient(to right,var(--plum-text) var(--audio-progress,0%),var(--rule) var(--audio-progress,0%))}
.audiobook-seek::-webkit-slider-thumb,.audiobook-volume::-webkit-slider-thumb,.audiobook-speed::-webkit-slider-thumb{appearance:none;width:.625rem;height:.625rem;margin-top:calc((3px - .625rem)/2);border:0;border-radius:50%;background:var(--plum-text)}
.audiobook-seek::-moz-range-track,.audiobook-volume::-moz-range-track,.audiobook-speed::-moz-range-track{height:3px;border-radius:2px;background:var(--rule)}
.audiobook-seek::-moz-range-progress,.audiobook-volume::-moz-range-progress,.audiobook-speed::-moz-range-progress{height:3px;border-radius:2px;background:var(--plum-text)}
.audiobook-seek::-moz-range-thumb,.audiobook-volume::-moz-range-thumb,.audiobook-speed::-moz-range-thumb{width:.625rem;height:.625rem;border:0;border-radius:50%;background:var(--plum-text)}
.audiobook-seek:disabled{cursor:default}
.audiobook-seek:disabled::-webkit-slider-thumb{background:var(--text-faint)}
.audiobook-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-top:.75rem}
.audiobook-follow{display:flex;flex-wrap:wrap;align-items:center;min-width:0;gap:.5rem}
.audiobook-follow:empty,.audiobook-follow:not(:has(button)):has(.narration-status:empty){display:none}
.narration-toggle{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.25rem .75rem;border:1px solid transparent;border-radius:2rem;background:transparent;color:var(--text-soft)}
.narration-toggle:hover{background:var(--plum-tint);color:var(--plum-text)}
.narration-toggle[aria-pressed=true]{background:var(--plum-tint);color:var(--plum-text)}
.narration-toggle[aria-pressed=true] .audio-follow-lines{stroke:var(--accent-text);stroke-width:2}
.audiobook-follow-short{display:none}
.audiobook-options-toggle{display:inline-flex;align-items:center;justify-content:center;flex:none;gap:.5rem;padding:0 .5rem;border:0;border-radius:.5rem;background:transparent;color:var(--text-muted);font-variant-numeric:tabular-nums}
.audiobook-options-toggle:hover,.audiobook-options-toggle[aria-expanded=true]{background:var(--plum-tint);color:var(--plum-text)}
.audiobook-options-toggle svg:last-child{width:.75rem;height:.75rem}
.audiobook-options-toggle[aria-expanded=true] svg:last-child{transform:rotate(180deg)}
.audiobook-rate{color:var(--plum-text);min-width:2.25em;text-align:right}
.is-enhanced .audiobook-settings>summary{display:none}
.audiobook-settings:not([open])>div{display:none}
.audiobook-options{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem .75rem;padding:.75rem 0 .25rem;border-top:1px solid var(--rule);margin-top:.5rem;color:var(--text-soft)}
.audiobook-speed-control{display:block;flex:1;min-width:0;font-size:var(--step--3);line-height:1.4}
.audiobook-speed-control>span{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.25rem .5rem}
.audiobook-speed-label{font-variant-numeric:tabular-nums;color:var(--text-muted)}
.audiobook-volume{width:4rem}
.audiobook-auto-advance{display:flex;align-items:center;gap:.5rem;flex-basis:100%;padding:0 .25rem;border:0;background:transparent;color:var(--text-soft);text-align:left}
.audiobook-auto-advance:hover{color:var(--plum-text)}
.audiobook-switch{display:block;flex:none;width:2rem;height:1.125rem;padding:.125rem;margin-left:auto;border-radius:1rem;background:var(--rule)}
.audiobook-switch::before{content:"";display:block;width:.875rem;height:.875rem;border-radius:50%;background:var(--text-muted)}
.audiobook-auto-advance[aria-pressed=true] .audiobook-switch{background:var(--plum-text)}
.audiobook-auto-advance[aria-pressed=true] .audiobook-switch::before{margin-left:.875rem;background:var(--surface-veil)}
.audiobook-actions{display:flex;flex-wrap:wrap;align-items:center;gap:0 1rem;margin-top:.75rem;padding-top:.375rem;border-top:1px solid var(--rule);font-size:var(--step--3);line-height:1.5}
.audiobook-actions a,.audiobook-theme,.audiobook-popout{display:inline-flex;align-items:center;gap:.375rem;min-height:var(--tap);padding:.25rem 0;border:0;background:transparent;color:var(--text-muted);font:inherit;text-decoration:none}
.audiobook-actions a:hover,.audiobook-theme:hover,.audiobook-popout:hover{color:var(--plum-text)}
.audiobook-actions a span{font-size:var(--audio-micro)}
.audiobook-actions svg{width:1rem;height:1rem}
.audiobook-whole{margin-right:auto}
.audiobook-theme[aria-pressed=true]{color:var(--plum-text)}
.audiobook-theme[aria-pressed=true] svg{fill:var(--plum-tint)}
.audiobook-player audio:focus-within,.audiobook-player button:focus-visible,.audiobook-player input:focus-visible,.audiobook-player a:focus-visible,.audiobook-settings>summary:focus-visible{outline:2px solid var(--focus-on-paper);outline-offset:3px}
.narration-status:empty{display:none}
.narration-status,.audiobook-playback-status{flex-basis:100%;font-size:var(--step--3);color:var(--text-muted)}
.audiobook-playback-status{margin:.75rem 0 0!important}
/* The same audio and follow controls travel between the page and remote. */
.audiobook-remote-heading{display:none}
.audiobook-player.is-docked{position:fixed;inset:auto 1rem calc(1rem + env(safe-area-inset-bottom));z-index:30;width:min(26rem,calc(100% - 2rem));max-height:calc(100dvh - 2rem);overflow:auto;margin:0 auto;padding:.5rem .75rem .75rem;border:0;box-shadow:0 .5rem 2.5rem var(--audio-shadow)}
.is-docked .audiobook-remote-heading{display:flex;align-items:center;gap:.125rem;margin-bottom:.25rem}
.audiobook-remote-heading p{flex:1;min-width:0;margin:0!important;font-family:var(--display-face);font-weight:500;font-size:var(--audio-heading);line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.audiobook-loading{flex:0 1 3rem;width:3rem;max-width:20%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--audio-hidden);line-height:1.4;color:var(--text-muted);opacity:0;transition:opacity .22s ease-out}
.audiobook-loading::after{content:attr(data-short);font-size:var(--audio-tiny)}
.audiobook-loading.is-loading{opacity:1}
.is-docked .narration-toggle{flex:none;width:var(--tap);padding:0}
.is-docked .audiobook-follow-label,.is-docked .audiobook-follow-short,.is-docked .audiobook-options-label,.is-docked .audiobook-options-toggle svg:last-child{display:none}
.is-docked .audiobook-options-toggle{gap:.25rem;padding:0 .375rem;font-size:var(--audio-micro)}
.is-docked .audiobook-play{width:var(--tap);height:var(--tap)}
.is-docked .audiobook-controls{gap:.75rem}
.is-docked .audiobook-transport{gap:0}
.is-docked .audiobook-progress{display:flex;flex-wrap:wrap;align-items:center}
.is-docked .audiobook-seek{height:var(--tap);margin:0 0 -.5rem}
.is-docked .audiobook-clock{width:100%;font-size:var(--audio-micro)}
.is-docked .audiobook-toolbar,.is-docked .audiobook-duration,.is-docked .audiobook-popout{display:none}
.is-docked .audiobook-settings:not([open])~.audiobook-actions{display:none}
.is-docked .audiobook-actions{gap:0 .75rem}
.is-docked .audiobook-options{padding-top:.75rem}
.audiobook-return{display:inline-flex;align-items:center;gap:.5rem;margin:1.25rem 0 2rem;padding:.5rem 0;border:0;border-bottom:1px solid var(--rule);background:transparent;color:var(--plum-text);font:var(--audio-small) var(--text-face);min-height:var(--tap);cursor:pointer}
html.has-audio-remote{scroll-padding-bottom:calc(var(--audio-remote-space,0px) + 1rem)}
html.has-audio-remote body{padding-bottom:var(--audio-remote-space,0px)}
/* A fixed mark arrives whole, then the previous word releases in 80 ms. */
.narration-underline{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:25;overflow:hidden;fill:var(--accent-text)}
.narration-word-leaving{animation:narration-release 80ms cubic-bezier(.16,1,.3,1) forwards}
@keyframes narration-release{from{opacity:1}to{opacity:0}}
/* Keep the live announcement accessible without duplicating its reserved slot. */
.audiobook-playback-status.is-loading-status{position:absolute!important;width:1px;height:1px;padding:0!important;margin:-1px!important;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(max-width:600px){
  .audiobook-player{padding:1rem .875rem .5rem}
  .audiobook-controls{grid-template-columns:minmax(0,1fr);gap:.5rem}
  .audiobook-transport{justify-content:center}
  .audiobook-progress{display:flex;align-items:center;gap:.75rem}
  .audiobook-seek{flex:1;margin:0}
  .audiobook-clock{flex:none;gap:.5rem}
  .audiobook-options-label{display:none}
  .audiobook-toolbar{margin-top:.5rem}
  .narration-toggle{padding:.25rem .5rem;font-size:var(--audio-small)}
  .audiobook-follow-label{display:none}
  .audiobook-follow-short{display:inline}
  .audiobook-actions{gap:0 .75rem}
  .audiobook-actions a span{display:none}
  .audiobook-whole{margin-right:0}
  .audiobook-options{gap:.25rem}
  .audiobook-volume{width:3rem}
  .is-docked .audiobook-controls{grid-template-columns:auto minmax(0,1fr);gap:.5rem}
  .is-docked .audiobook-progress{gap:0}
  .is-docked .audiobook-clock{justify-content:space-between;font-size:var(--audio-tiny)}
}
@media(max-width:380px){.is-docked .audiobook-controls{grid-template-columns:minmax(0,1fr);gap:.125rem}.is-docked .audiobook-progress{flex-wrap:nowrap;gap:.75rem}.is-docked .audiobook-clock{width:auto}}
@media(prefers-reduced-motion:reduce){.narration-underline,.narration-word-leaving{transition:none;animation:none}.audiobook-loading{transition:none}.audiobook-play:active{transform:none}}
@media(forced-colors:active){.audiobook-player{border:1px solid CanvasText}.audiobook-play{background:ButtonFace;color:ButtonText;border:1px solid ButtonText}.audiobook-seek,.audiobook-volume,.audiobook-speed{appearance:auto}.narration-toggle[aria-pressed=true]{outline:1px solid Highlight}.narration-underline{fill:CanvasText}}
@media print{.audio-direct-download,.audiobook-player,.narration-underline,.audiobook-return{display:none!important}html.has-audio-remote body{padding-bottom:0}}
.audiobook-edition{margin:3rem 0;padding-top:2rem;border-top:1px solid var(--rule)}
.audiobook-edition-heading{display:flex;align-items:center;gap:1.5rem}
.audiobook-edition-heading img{width:clamp(5rem,20vw,9rem);height:auto;border-radius:.25rem}
.audiobook-edition-heading h2{margin:0}
.audiobook-directory{columns:2;column-gap:2.5rem;padding-left:1.5rem}
.audiobook-directory li{break-inside:avoid;margin:0 0 .8rem;padding-left:.25rem}
.audio-direct-download{font-size:.8em;white-space:nowrap;margin-left:.5em}
.audio-reading{max-width:45rem;min-width:0;margin:auto;overflow-wrap:anywhere}
.audio-illustration{margin:1.5rem 0 2.5rem}.audio-illustration img{display:block;max-width:100%;height:auto;border-radius:.25rem}
.audio-reading h1{line-height:1.15;overflow-wrap:anywhere}
.audio-prose{font-size:var(--step-2);line-height:1.8}
.audio-prose p{margin:0 0 1.2em}
@media(max-width:600px){.audiobook-directory{columns:1}.audiobook-edition-heading{gap:1rem}.audio-prose{font-size:var(--step-1)}}
