/* Les Dilettantes 0.3 — one sky, three books. No fonts, images, or network dependency. */
:root {
  color-scheme: dark;
  --ink: #0c1019;
  --paper: #ece5d9;
  --muted: #a8aaba;
  --quiet: #828999;
  --gold: #d6b795;
  --line: rgb(227 218 201 / 13%);
  --serif: 'Iowan Old Style', 'Palatino Linotype', 'Book Antiqua', Palatino, Georgia, serif;
  --sans: 'Segoe UI', 'Helvetica Neue', Arial, sans-serif;
  --reader-size: 22px;
  --gutter: clamp(22px, 5.1vw, 80px);
  --ease: cubic-bezier(.22, .8, .24, 1);
  --book-w: clamp(172px, min(19.1vw, 31svh), 272px);
}
* {box-sizing: border-box}
html {scroll-behavior: auto; scroll-padding-top: 120px}
body {margin:0; background:var(--ink); color:var(--paper); font:14px/1.6 var(--sans); -webkit-font-smoothing:antialiased; overflow-x:hidden}
button, a, input {-webkit-tap-highlight-color: transparent}
button, input {font:inherit}
button {color:inherit; border:0; background:none; cursor:pointer}
a {color:inherit; text-decoration:none}
button:disabled {opacity:.35; cursor:not-allowed}
a, button, input {touch-action:manipulation}
a:focus-visible, button:focus-visible, input:focus-visible {outline:1px solid var(--gold); outline-offset:5px}
::selection {color:#fff7e7; background:#4a4d64}
h1,h2,h3,p {margin:0}
h1,h2,h3 {font-family:var(--serif); font-weight:400}
[hidden] {display:none!important}
.icon {width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.4; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0; vertical-align:middle}
.sr-only {position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0}
.skip-link {position:fixed; z-index:200; top:12px; left:20px; padding:10px 18px; background:var(--paper); color:var(--ink); transform:translateY(-180%)}
.skip-link:focus {transform:none}
.site-header {position:fixed; z-index:40; inset:0 0 auto; height:98px; padding:0 var(--gutter); display:flex; align-items:center; justify-content:space-between; gap:20px; pointer-events:none}
.site-header > * {pointer-events:auto}
.brand {display:inline-flex; gap:15px; align-items:center; white-space:nowrap}
.brand-mark {position:relative; display:block; width:33px; height:33px; border:1px solid #b89b733b; border-radius:50%; transform:rotate(-30deg)}
.brand-mark::before {content:''; position:absolute; inset:5px -5px; border:1px solid var(--gold); border-radius:50%; transform:rotate(-16deg)}
.brand-mark::after {content:''; position:absolute; right:1px; top:4px; width:4px; height:4px; border-radius:50%; background:var(--paper); box-shadow:0 0 10px #eecfaf55}
.brand-name {font-family:var(--serif); font-size:25px; letter-spacing:.015em}
.brand-dot {color:var(--gold)}
#main {outline:none; position:relative; min-height:100svh; z-index:2}
/* The original orbital/water composition, now in ink blue rather than bottle green. */
.world {position:fixed; inset:0; z-index:0; overflow:hidden; pointer-events:none; transition:opacity 1.1s ease; background:radial-gradient(ellipse at 73% 45%,#3745682c,transparent 53%),radial-gradient(ellipse at 43% 83%,#936b4817,transparent 43%),linear-gradient(110deg,#0c1019 10%,#0c131d 63%,#111a27)}
.world::after {content:''; position:absolute; inset:0; background:linear-gradient(0deg,#0a0e19b3,transparent 23%,transparent 87%,#0c101944); z-index:8}
.stardust {position:absolute; inset:0; overflow:hidden}
.star {position:absolute; width:var(--size,2px); height:var(--size,2px); background:#dbd9d6; border-radius:50%; opacity:var(--alpha,.35); animation:star-breathe var(--period,8s) ease-in-out infinite alternate; animation-delay:var(--delay,0s)}
.star.prominent {box-shadow:0 0 8px 1px #eee3bf44}
.star.prominent::after {content:''; position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:1px; height:9px; background:linear-gradient(transparent,#dedec766,transparent)}
@keyframes star-breathe {to {opacity:calc(var(--alpha,.35)*.45)}}
.orbital-stage {position:absolute; left:calc(57% - 220px); top:calc(48% - 370px); width:770px; height:685px; transform:scale(1.09); transform-origin:50% 50%}
.cosmic-haze {position:absolute; width:770px; height:550px; left:-40px; top:95px; background:radial-gradient(ellipse at 50% 52%,#d2ba8e21 0,#d7c29a0b 29%,#687b9f17 50%,transparent 66%); filter:blur(25px); animation:haze-breathe 24s ease-in-out infinite alternate}
@keyframes haze-breathe {to {opacity:.55; transform:scale(1.035) translateY(-9px)}}
.cosmic-disc {position:absolute; left:144px; top:99px; width:438px; height:438px; border-radius:50%; background:radial-gradient(circle at 29% 77%,#1d2433 0,#141b2a 25%,#0b131f 62%,#0b111c 88%); box-shadow:inset 0 -1px 1px #d5c19b85,inset -5px -3px 18px #b4afa510,0 8px 38px #dec79513; transform:rotate(-21deg)}
.cosmic-disc::after {content:''; position:absolute; inset:-1px; border-radius:inherit; background:conic-gradient(from 24deg,transparent 0 22%,#e8d9b8 38%,#b9bfce 54%,#ddd0ab50 65%,transparent 78%); mask:radial-gradient(circle,transparent 69.8%,#000 70.1%); opacity:.75}
.cosmic-orbit {position:absolute; left:36px; top:32px; width:650px; height:562px; border:1px solid #bec0d21b; border-radius:50%; transform:rotate(-26deg); box-shadow:0 1px 2px #bac1d90b}
.cosmic-orbit.outer {left:-34px; top:6px; width:790px; height:620px; border-color:#d3d1df0d}
.cosmic-orbit::after {content:''; position:absolute; width:5px; height:5px; border-radius:50%; background:#e4cfa7; top:51px; left:487px; box-shadow:0 0 13px 3px #f2e9cc3b}
.cosmic-orbit.outer::after {background:#a1b4d0; width:3px; height:3px; left:79px; top:474px; box-shadow:0 0 10px #a1b4d044}
.light-thread {position:absolute; left:96px; top:124px; width:530px; height:420px; border-bottom:1px solid #c6bea591; border-radius:50%; transform:rotate(-29deg); filter:drop-shadow(0 0 4px #e5cb9966)}
.water-glow {position:absolute; left:0; right:0; top:70%; height:16%; background:radial-gradient(ellipse at 67% 42%,#debd961b,transparent 52%); transform:scaleX(1.6); filter:blur(14px)}
.water-horizon {position:absolute; left:-6%; right:-10%; top:76%; height:1px; background:linear-gradient(90deg,transparent,#e7d5aa26 57%,#a7b1d324,transparent); box-shadow:0 7px 16px #e6cbad10}
.water-ripple {position:absolute; left:22%; top:79%; width:78%; height:75px; border:1px solid #c9c1a312; border-radius:50%; transform:rotate(-3deg)}
.water-ripple.second {top:82%; left:28%; width:64%; height:29px; border-color:#c9c1a30d}
.hero-glint {position:absolute; top:27%; left:88%; width:24px; height:24px; background:radial-gradient(circle,#f5e5cb 0 3%,#d5c9b440 8%,transparent 55%); opacity:.8}
.hero-glint::before,.hero-glint::after {content:''; position:absolute; inset:50% 0 auto; height:1px; background:linear-gradient(90deg,transparent,#e8d6b78c,transparent)}
.hero-glint::after {transform:rotate(90deg)}
/* A single stage, not a vertically stacked landing page. */
.library-stage {position:relative; height:100svh; min-height:480px; overflow:hidden; perspective:1700px; isolation:isolate}
.library-stage .shelf {position:absolute; inset:0}
.book-object {position:absolute; top:50%; left:50%; width:var(--book-w); aspect-ratio: .665; transform:translate(-50%,-50%) translateX(var(--x)) scale(var(--scale,1)) rotateY(var(--angle,0deg)); opacity:var(--opacity,1); z-index:var(--z,3); transition:transform 1.05s var(--ease),opacity .9s ease,top 1s var(--ease); outline-offset:10px; transform-style:preserve-3d}
.book-object::before {content:''; position:absolute; bottom:-36px; left:-10%; width:120%; height:38px; border-radius:50%; background:#00000070; filter:blur(20px); transform:rotateX(65deg); pointer-events:none; transition:opacity .7s}
.book-object::after {content:''; position:absolute; top:103%; left:6%; width:88%; height:21%; background:linear-gradient(#a390720c,transparent); filter:blur(8px); transform:scaleY(-1); opacity:.65; pointer-events:none}
.book-jacket {position:absolute; inset:0; display:block; border-radius:2px 5px 5px 2px; border:1px solid #e1c9a840; background:#1b1c29; box-shadow:inset 3px 0 5px #00000099,inset -1px 0 1px #eee5d838,12px 18px 35px #0000003d; overflow:hidden; transition:transform .55s var(--ease),box-shadow .55s}
.book-jacket::before {content:''; position:absolute; left:3.3%; top:0; bottom:0; width:1px; background:linear-gradient(#f6dfbd30,#f6dfbd16); z-index:8; box-shadow:1px 0 2px #0000006b}
.book-jacket::after {content:''; position:absolute; inset:0; z-index:5; background:linear-gradient(90deg,#00000033,transparent 7%,transparent 97%,#ecddc01a),linear-gradient(0deg,#080c1799,transparent 32%,#0b0e1966 82%,#0b0e19a6); pointer-events:none}
.book-object:hover .book-jacket,.book-object:focus-visible .book-jacket {transform:translateY(-9px); box-shadow:inset 3px 0 5px #00000099,inset -1px 0 1px #eee5d84d,12px 25px 40px #00000055}
.book-title {position:absolute; z-index:6; top:18%; left:12%; right:9%; font-family:var(--serif); font-size:calc(var(--book-w) * .12); line-height:1.13; letter-spacing:-.025em; font-weight:400; text-align:center; text-wrap:balance; color:#f3e5d1; text-shadow:0 2px 12px #00000033}
.book-series {position:absolute; left:10%; right:7%; top:8%; text-align:center; font-size:calc(var(--book-w) * .026); text-transform:uppercase; letter-spacing:.23em; z-index:6; color:#e8d7c195}
.book-author {position:absolute; bottom:8%; left:9%; right:7%; text-align:center; font-family:var(--serif); font-size:calc(var(--book-w) * .048); color:#e6d4bdcc; letter-spacing:.13em; z-index:6}
.book-numeral {position:absolute; left:0; right:0; top:103%; text-align:center; font-family:var(--serif); font-size:14px; color:#c0b3a384; letter-spacing:.14em; transition:opacity .6s}
.book-symbol {position:absolute; left:50%; bottom:18%; width:25px; height:25px; transform:translateX(-50%) rotate(45deg); border:1px solid #e4c79b4f; z-index:6}
.book-symbol::after {content:''; position:absolute; inset:6px; border:1px solid #e4c79b78; border-radius:50%}
.book-art {position:absolute; inset:0; overflow:hidden}
.art-sky {position:absolute; inset:0; background:radial-gradient(ellipse at 56% 72%,#d0a66e69,transparent 58%),linear-gradient(165deg,#25232d,#51413b 55%,#86705a)}
.art-stars {position:absolute; inset:0; background-image:radial-gradient(circle at 18% 42%,#eae2b49a 0 1px,transparent 1.5px),radial-gradient(circle at 81% 38%,#eae2b479 0 1px,transparent 1.5px),radial-gradient(circle at 73% 51%,#eae2b46c 0 .8px,transparent 1.2px),radial-gradient(circle at 42% 12%,#eae2b452 0 1px,transparent 1.5px),radial-gradient(circle at 90% 66%,#eae2b487 0 .7px,transparent 1.1px)}
.art-sun {position:absolute; top:42%; left:32%; width:38%; aspect-ratio:1; border-radius:50%; border:1px solid #f1d5a5b5; background:radial-gradient(circle at 30% 80%,#e6c69112,#c5a17a05 80%); box-shadow:0 0 35px #efd1a532,inset 0 0 24px #efd2b015}
.art-sun::before {content:''; position:absolute; inset:-17%; border:1px solid #e0d3aa25; border-radius:50%}
.art-ground {position:absolute; bottom:-27%; left:-20%; width:140%; height:66%; border-radius:50% 50% 0 0; background:linear-gradient(#81705d,#2a2933 70%); box-shadow:0 -1px 0 #e4ca974f; transform:rotate(-8deg)}
.art-ground::after {content:''; position:absolute; inset:9% 0 -20% 10%; background:linear-gradient(#544944,#252632); border-radius:50% 70% 0 0; transform:rotate(18deg); box-shadow:0 -1px 0 #cab58d29}
.art-path {position:absolute; left:31%; bottom:-38%; width:40%; height:80%; border:1px solid #e5c8a063; border-left:2px solid #e5c8a061; border-radius:50%; transform:rotate(17deg); z-index:2}
.blue .art-sky {background:radial-gradient(ellipse at 49% 67%,#91a7c654,transparent 58%),linear-gradient(160deg,#1c2437,#364f6d 58%,#253746)}
.blue .art-sun {top:44%; left:33%; width:36%; background:#172b45df; border-color:#bdcddd; box-shadow:inset -1px -1px 5px #c9cfdf66,0 0 50px #a6b5df15}
.blue .art-sun::before {inset:-27%; border-color:#bdd0e32c}
.blue .art-ground {background:linear-gradient(#465e7e,#1e283b); transform:rotate(0deg); bottom:-36%; height:62%; box-shadow:0 -1px 0 #d0d5e165}
.blue .art-ground::after {background:linear-gradient(#2c3b58,#19232f); transform:rotate(-10deg)}
.blue .art-path {bottom:-32%; height:77%; width:116%; left:-8%; transform:rotate(-18deg); border-color:#a2b9da45; border-left-width:1px}
.blue .book-jacket {border-color:#adc4e232}
.blue .book-title {color:#e1e6ef}
.violet .art-sky,.sage .art-sky {background:radial-gradient(ellipse at 62% 62%,#b49dae4f,transparent 57%),linear-gradient(155deg,#262237,#49405b 56%,#514259)}
.violet .art-sun,.sage .art-sun {width:25%; left:49%; top:47%; background:linear-gradient(135deg,#342b48,#b9a5c046); border-color:#d9c6d675; box-shadow:0 0 35px #d1bdc627}
.violet .art-sun::before,.sage .art-sun::before {inset:-62%; transform:rotate(-27deg); border-color:#cfbace32}
.violet .art-ground,.sage .art-ground {background:linear-gradient(#5b4c68,#2b2438); transform:rotate(7deg); bottom:-32%; box-shadow:0 -1px 0 #d5bed04a}
.violet .art-ground::after,.sage .art-ground::after {background:linear-gradient(#433951,#26212f); transform:rotate(-17deg)}
.violet .art-path,.sage .art-path {border-color:#ceadcf34; transform:rotate(-28deg); width:120%; height:104%; bottom:-18%; left:-15%}
.violet .book-jacket {border-color:#d6bcd037}
.violet .book-title {color:#ede0ec}
.book-cover-image {position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:4}
.has-cover .book-title,.has-cover .book-series,.has-cover .book-author,.has-cover .book-symbol {display:none}
/* The selected cover stays tangible. The two others drift to the edges. */
.library-stage.is-selected .book-object:not(.is-current) .book-numeral {opacity:0}
.library-stage.is-selected .book-object:not(.is-current):hover,.library-stage.is-selected .book-object:not(.is-current):focus-visible {opacity:.65}
.synopsis {position:absolute; left:calc(50% + 48px); top:50%; width:min(350px,32vw); transform:translateY(calc(-50% + 12px)); opacity:0; visibility:hidden; transition:opacity .6s .15s,transform .8s var(--ease),visibility .6s; z-index:10; pointer-events:none}
.synopsis.is-visible {transform:translateY(-50%); opacity:1; visibility:visible; pointer-events:auto}
.synopsis-roman {font:13px var(--serif); letter-spacing:.14em; color:var(--gold); margin-bottom:22px}
.synopsis h1 {font-size:clamp(28px,3.1vw,43px); letter-spacing:-.025em; line-height:1.13; text-wrap:balance; margin:0 0 24px; color:#efe5d6}
.synopsis-text {font-family:var(--serif); font-size:18px; line-height:1.8; color:#c2bfc6}
.book-opening {display:flex; align-items:center; gap:26px; flex-wrap:wrap; margin-top:31px}
.open-book {display:inline-flex; align-items:center; gap:24px; font-family:var(--serif); font-size:21px; color:var(--paper); border-bottom:1px solid #d6b79578; padding:0 2px 10px; transition:gap .2s,color .2s}
.open-book .icon {width:19px}
.open-book:hover {gap:32px; color:var(--gold)}
.book-availability {font-size:11px; color:var(--quiet)}
.resume-inline {display:inline-flex; align-items:center; gap:7px; font-size:11px; color:var(--gold)}
.resume-inline .icon {width:13px; height:13px}
.close-selection {position:absolute; left:50%; bottom:max(42px,9svh); transform:translateX(-50%); display:flex; align-items:center; gap:10px; padding:10px; color:#a7a4af; font-size:11px; opacity:0; visibility:hidden; transition:opacity .4s .3s; z-index:15}
.close-selection .icon {width:15px; height:15px}
.is-selected .close-selection {opacity:1; visibility:visible}
.close-selection:hover {color:var(--paper)}
.home-resume {position:absolute; bottom:max(38px,9svh); left:50%; transform:translateX(-50%); display:inline-flex; gap:9px; align-items:center; font-size:11px; color:#c4bba9; padding:9px; max-width:90vw; white-space:nowrap}
.home-resume .icon {width:14px; height:14px}
.is-selected .home-resume {display:none}
/* A player no bigger than the former 'En musique' button. */
.player-shell {position:relative}
.mini-player {display:flex; align-items:center; gap:2px; border:1px solid #dad2c523; border-radius:24px; min-height:37px; background:#0d131d6e; backdrop-filter:blur(16px)}
.mini-play {width:35px; height:35px; padding:0 0 0 4px; display:grid; place-items:center; color:#c6b89e; border-radius:50%}
.mini-play .icon {width:12px; height:12px}
.mini-title {max-width:215px; min-height:35px; padding:6px 12px 6px 5px; display:flex; gap:10px; align-items:center; font-size:11px; color:#dfd9d1; border-radius:0 24px 24px 0}
.mini-title #track-title {overflow:hidden; white-space:nowrap; text-overflow:ellipsis}
.mini-title .icon {width:11px; height:11px; opacity:.5; transition:transform .2s}
.mini-title[aria-expanded=true] .icon {transform:rotate(180deg)}
.mini-player.is-playing .mini-play {color:#f0d0a4}
.mini-play:hover,.mini-title:hover {color:#fff1d8}
.playlist-panel {position:absolute; right:0; top:48px; width:302px; max-height:calc(100svh - 110px); overflow:auto; padding:17px 19px 15px; border:1px solid #dccbb52a; border-radius:10px; background:#171c28f7; box-shadow:0 20px 70px #0007; backdrop-filter:blur(28px); animation:popover .2s var(--ease); overscroll-behavior:contain}
@keyframes popover {from {opacity:0; transform:translateY(-4px)} to {opacity:1; transform:none}}
.panel-heading {display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:13px}
.panel-heading h2 {font-size:21px; color:#e1d5c5}
.panel-heading button {display:grid; place-items:center; width:30px; height:30px; margin-right:-6px; color:var(--quiet)}
.panel-heading .icon {width:15px; height:15px}
.track-list {margin:0; padding:0; list-style:none}
.track-list li + li {border-top:1px solid #c4bbbd0e}
.track-item {display:flex; align-items:center; gap:12px; width:100%; padding:11px 0; text-align:left; font-family:var(--serif); font-size:18px; color:#c9c8d1}
.track-item .track-number {font:9px var(--sans); color:#8b8996; width:16px; flex-shrink:0}
.track-item .track-name {flex:1; min-width:0; overflow-wrap:anywhere; line-height:1.3}
.track-item > .icon {height:11px; width:11px; color:#c4af94; opacity:0}
.track-item.active,.track-item:hover {color:#f0ddbf}
.track-item.active > .icon,.track-item:hover > .icon {opacity:1}
.seek-row {display:flex; gap:8px; align-items:center; font-size:9px; color:var(--muted); margin-top:15px; font-variant-numeric:tabular-nums}
.seek-row input {min-width:30px; width:100%}
.sound-tools {display:flex; align-items:center; justify-content:space-between; padding:14px 0 12px; gap:12px; border-top:1px solid var(--line); margin-top:9px}
.track-steps,.volume-control {display:flex; align-items:center; gap:9px}
.sound-tools button {padding:4px; display:grid; place-items:center; color:#b5adab}
.sound-tools .icon {width:14px; height:14px}
.volume-control input {width:91px}
input[type=range] {appearance:none; background:transparent; height:20px; cursor:pointer; accent-color:var(--gold)}
input[type=range]::-webkit-slider-runnable-track {height:2px; border-radius:3px; background:linear-gradient(to right,#c1a789 var(--fill,0%),#d2cbd426 var(--fill,0%))}
input[type=range]::-webkit-slider-thumb {appearance:none; width:7px; height:7px; margin-top:-2.5px; background:#d6c1a2; border-radius:50%}
input[type=range]::-moz-range-track {height:2px; border-radius:3px; background:#d2cbd426}
input[type=range]::-moz-range-thumb {width:7px; height:7px; background:#d6c1a2; border:0; border-radius:50%}
.local-file-control {border-top:1px solid #c4bbbd10; padding-top:13px}
.local-file-label {display:flex; align-items:center; gap:8px; font-size:10px; color:#acacbc; cursor:pointer; width:fit-content; padding:4px 0}
.local-file-label:focus-within {outline:1px solid var(--gold); outline-offset:4px}
.local-file-label .icon {width:12px; height:12px}
.track-subtitle {display:block; font-size:9px; line-height:1.6; color:#7f8496; margin-top:6px}
.toast {position:fixed; z-index:90; bottom:26px; left:50%; transform:translateX(-50%); max-width:calc(100vw - 36px); width:max-content; text-align:center; font-size:11px; line-height:1.65; padding:11px 19px; color:#e7dac7; background:#1b202df7; border:1px solid #ccbaa02e; border-radius:7px; box-shadow:0 12px 30px #0004}
/* Reading: the same night, dimmed. The words occupy the space. */
body.is-reading .world {opacity:.18}
body.is-reading .site-header {background:linear-gradient(#0c1019 10%,#0c1019ec 64%,#0c101900)}
.reading-page {padding:156px 26px 76px; animation:reader-arrives .8s var(--ease)}
@keyframes reader-arrives {from {opacity:0; transform:translateY(14px)} to {opacity:1; transform:translateY(0)}}
.reader-heading {max-width:670px; margin:0 auto 47px; text-align:center}
.reader-kicker {font-size:9px; letter-spacing:.23em; text-transform:uppercase; color:var(--gold); margin-bottom:20px}
.reader-heading h1 {font-size:clamp(40px,4.4vw,62px); line-height:1.12; letter-spacing:-.035em; color:#eee4d6; text-wrap:balance}
.reader-heading .subtitle {font-family:var(--serif); font-size:24px; font-style:italic; color:var(--muted); margin-top:13px}
.reader-audio {display:inline-flex; gap:7px; align-items:center; font-size:11px; color:var(--muted); margin-top:23px; padding:4px}
.reader-audio .icon {width:14px; height:14px}
.heading-ornament {width:34px; height:1px; margin:32px auto 0; background:linear-gradient(90deg,transparent,#d6b7957d,transparent); position:relative}
.heading-ornament::after {content:''; position:absolute; width:5px; height:5px; border:1px solid #d6b7956b; background:var(--ink); left:50%; top:50%; transform:translate(-50%,-50%) rotate(45deg)}
.prose {max-width:660px; margin:auto; font-family:var(--serif); font-size:var(--reader-size); line-height:1.88; color:#d2cbd0; font-weight:400; text-align:justify; text-justify:inter-word; hyphens:auto; -webkit-hyphens:auto; overflow-wrap:break-word; letter-spacing:.005em}
.prose p {margin:0 0 1.12em; widows:3; orphans:3}
.prose > p:first-child::first-letter {float:left; font-size:3.1em; line-height:.87; padding:.08em .105em 0 0; color:#ddc4a3}
.prose .dialogue {text-indent:-.72em; padding-left:.72em}
.prose .scene-start {margin-top:2.6em}
.prose .blank-line {height:1.15em; margin:0; min-height:1.15em}
.prose em {color:#e1d7d6}
.prose h2,.prose h3 {font-size:1.45em; line-height:1.3; margin:1.9em 0 .8em; text-align:left}
.prose a {text-decoration:underline; text-decoration-color:#d6b79565; text-underline-offset:4px}
.prose ul,.prose ol {padding-left:1.2em}
.prose blockquote {margin:1.5em 0; border-left:1px solid #cbb08a66; padding:0 0 0 1em; font-style:italic; color:#e3d5c3}
.prose img {display:block; max-width:100%; height:auto; margin:1.6em auto; border-radius:2px}
.prose hr {margin:2.5em auto; width:45px; border:0; border-top:1px solid #d6b79565}
.prose pre {white-space:pre-wrap; text-align:left; overflow:auto; padding:16px; border:1px solid var(--line); font-size:.7em}
.prose code {font-size:.8em}
.prose table {display:block; overflow:auto; width:100%; border-collapse:collapse; font-family:var(--sans); font-size:13px}
.prose th,.prose td {padding:8px 12px; border:1px solid var(--line); text-align:left}
.reader-toolbar {position:fixed; top:164px; left:calc(50% + 396px); z-index:25; display:flex; flex-direction:column; gap:10px; color:#aaa6b3}
.type-tools {display:flex; gap:0; border:1px solid #ddd1c31f; border-radius:7px; background:#111623aa; backdrop-filter:blur(18px)}
.type-tools button {padding:6px 9px; font-family:var(--serif); min-height:34px; width:38px; font-size:16px; color:#c5bdba}
.type-tools button:first-child {border-right:1px solid #ddd1c313; font-size:13px}
.reader-tool {display:flex; align-items:center; gap:8px; font-size:10px; padding:8px 0}
.reader-tool .icon {width:15px; height:15px}
.reader-tool:hover,.reader-tool.is-marked {color:var(--gold)}
.reader-tool.is-marked .icon {fill:#d6b79528}
.reader-panel {position:fixed; top:154px; right:var(--gutter); z-index:35; width:310px; max-height:calc(100svh - 184px); overflow:auto; padding:18px 21px; border:1px solid #ccbaa02e; background:#171c28fa; box-shadow:0 20px 70px #0008; border-radius:9px; animation:popover .2s var(--ease)}
.reader-panel .toc-list {margin:0; padding:0; list-style:none}
.toc-list a {display:flex; gap:13px; padding:13px 0; align-items:baseline; border-top:1px solid #c5b9bf15; font-family:var(--serif); font-size:18px; line-height:1.35; color:#b6b3bf}
.toc-list a[aria-current],.toc-list a:hover {color:#ead2af}
.toc-list .toc-number {font:10px var(--sans); color:#99909b}
.saved-in-toc {border-top:1px solid var(--line); margin-top:13px; padding-top:14px; display:flex; gap:12px; align-items:center; justify-content:space-between; font-size:10px}
.saved-in-toc a {color:var(--gold)}
.saved-in-toc button {font-size:9px; color:var(--quiet); padding:4px}
.reader-end {max-width:660px; margin:53px auto 0}
.end-ornament {width:7px; height:7px; margin:0 auto 42px; transform:rotate(45deg); border:1px solid #d1b28d80}
.next-chapter {display:flex; gap:26px; justify-content:space-between; align-items:center; width:100%; padding:25px 0 26px; border-top:1px solid var(--line); border-bottom:1px solid var(--line)}
.next-chapter .next-kicker {display:block; font-family:var(--sans); font-size:9px; letter-spacing:.14em; color:var(--quiet); margin-bottom:9px}
.next-chapter .next-title {display:block; font-family:var(--serif); font-size:30px; line-height:1.25; color:#e7d3b5}
.next-chapter > .icon {width:24px; height:24px; color:var(--gold); transition:transform .2s}
.next-chapter:hover > .icon {transform:translateX(5px)}
.chapter-end-links {display:flex; align-items:center; justify-content:space-between; gap:20px; margin-top:24px; font-size:11px; color:#a29ca7}
.close-book-link {display:inline-flex; align-items:center; gap:9px; font-size:11px; padding:8px 0}
.close-book-link .icon {width:13px; height:13px}
.close-book-link:hover,.previous-chapter:hover {color:var(--paper)}
.last-page-note {text-align:center; font:italic 20px var(--serif); color:#9991a4; margin-bottom:32px}
.reading-progress {position:fixed; top:0; left:0; width:100%; height:1px; transform-origin:left; transform:scaleX(0); background:#dab58e; opacity:.68; z-index:60}
.empty-page {min-height:100svh; display:grid; align-content:center; justify-items:center; gap:30px; padding:100px 24px; text-align:center}
.empty-page h1 {font-size:44px}
.noscript {position:fixed; top:40%; left:10%; right:10%; text-align:center}
@media (min-width:1800px) { .orbital-stage {transform:scale(1.5); left:calc(57% - 160px)} }
@media (max-width:1160px) {
  .reader-toolbar {left:auto; right:var(--gutter); top:117px; flex-direction:row; align-items:center; gap:15px; background:#111622e0; border:1px solid #ddd1c316; padding:3px 10px; border-radius:8px; backdrop-filter:blur(20px)}
  .reader-toolbar .type-tools {background:none; border:0}
  .reader-toolbar .reader-tool {padding:5px 0; min-width:28px; min-height:34px; justify-content:center}
  .reader-toolbar .reader-tool span {display:none}
  .reader-panel {top:169px}
  .reading-page {padding-top:206px}
}
@media (max-width:900px) {
  :root {--gutter:30px; --book-w:clamp(154px,24vw,206px)}
  .orbital-stage {left:calc(50% - 190px); transform:scale(.93); opacity:.9}
  .book-title {font-size:calc(var(--book-w)*.119)}
  .synopsis {width:35vw; left:calc(50% + 15px)}
  .synopsis h1 {font-size:33px; margin-bottom:18px}
  .synopsis-text {font-size:17px; line-height:1.7}
  .book-opening {margin-top:25px}
}
@media (max-width:600px) {
  :root {--gutter:22px; --book-w:clamp(90px,27.5vw,156px)}
  .site-header {height:82px; gap:10px}
  .brand {gap:11px}
  .brand-mark {width:25px; height:25px}
  .brand-mark::before {inset:4px -4px}
  .brand-name {font-size:21px; letter-spacing:0}
  .brand-dot {display:none}
  .mini-player {min-height:34px}
  .mini-play {width:30px; height:32px; padding-left:3px}
  .mini-play .icon {width:10px; height:10px}
  .mini-title {font-size:10px; max-width:126px; min-height:32px; gap:7px; padding-right:9px}
  .mini-title .icon {width:9px; height:9px}
  .playlist-panel {top:43px; width:min(302px,calc(100vw - 44px)); max-height:calc(100svh - 98px)}
  .library-stage {min-height:480px}
  .orbital-stage {left:calc(50% - 340px); top:calc(43% - 356px); transform:scale(.85); opacity:.84}
  .water-horizon {top:70%}
  .water-glow {top:61%}
  .water-ripple {top:74%; left:-20%; width:145%}
  .water-ripple.second {top:77%; left:-8%; width:128%}
  .hero-glint {left:83%; top:23%; transform:scale(.7)}
  .book-object {top:49%}
  .book-title {font-size:calc(var(--book-w)*.133); top:18%; left:10%; right:7%; line-height:1.14}
  .book-series {font-size:calc(var(--book-w)*.033); letter-spacing:.12em}
  .book-author {font-size:calc(var(--book-w)*.06); letter-spacing:.07em}
  .book-symbol {width:15px; height:15px; bottom:18%}
  .book-symbol::after {inset:3px}
  .book-numeral {font-size:11px; top:107%}
  .book-object::before {bottom:-18px; filter:blur(11px)}
  .is-selected .book-object {top:29%}
  .is-selected .book-object.is-current {--selected-mobile-size:clamp(120px,22svh,171px); width:var(--selected-mobile-size)}
  .is-selected .book-object.is-current .book-title {font-size:calc(clamp(120px,22svh,171px)*.123)}
  .is-selected .book-object.is-current .book-series {font-size:6px}
  .is-selected .book-object.is-current .book-author {font-size:9px}
  .is-selected .book-object.is-current .book-numeral {display:none}
  .synopsis {top:51%; left:30px; width:calc(100% - 60px); transform:translateY(10px); text-align:center; max-height:calc(49svh - 58px); overflow:auto; overscroll-behavior:contain; padding-bottom:6px}
  .synopsis.is-visible {transform:translateY(0)}
  .synopsis-roman {display:none}
  .synopsis h1 {font-size:30px; line-height:1.13; margin-bottom:15px; max-width:360px; margin-inline:auto}
  .synopsis-text {font-size:16px; line-height:1.65; color:#c0bcc6; max-width:380px; margin:auto}
  .book-opening {justify-content:center; gap:23px; margin-top:20px}
  .open-book {font-size:19px; padding-bottom:7px; gap:18px}
  .close-selection {bottom:15px; font-size:10px; gap:7px; padding:8px}
  .home-resume {bottom:16%; font-size:10px; width:max-content}
  .reading-page {padding:175px 25px 45px}
  .reader-heading {margin-bottom:32px}
  .reader-heading h1 {font-size:43px}
  .reader-kicker {font-size:8px; letter-spacing:.17em; margin-bottom:17px}
  .reader-toolbar {top:84px; right:22px; gap:15px; padding:2px 8px}
  .reader-panel {top:133px; right:22px; max-height:calc(100svh - 160px); width:min(310px,calc(100vw - 44px))}
  .type-tools button {width:33px; min-height:31px}
  .prose {line-height:1.82; letter-spacing:0; font-size:calc(var(--reader-size) - 1px)}
  .prose p {margin-bottom:1.03em}
  .prose .scene-start {margin-top:2.1em}
  .prose > p:first-child::first-letter {font-size:2.85em}
  .reader-end {margin-top:40px}
  .next-chapter .next-title {font-size:27px}
  .chapter-end-links {font-size:10px}
  .close-book-link {font-size:10px}
}
@media (max-width:360px) {
  :root {--gutter:17px}
  .site-header {gap:8px}
  .brand-name {font-size:18px}
  .brand {gap:9px}
  .brand-mark {width:22px; height:22px}
  .mini-title {max-width:99px; font-size:9px}
  .mini-play {width:27px}
  .synopsis {left:24px; width:calc(100% - 48px)}
  .synopsis h1 {font-size:26px; margin-bottom:12px}
  .synopsis-text {font-size:15px; line-height:1.55}
  .book-opening {margin-top:15px}
}
@media (max-height:690px) and (min-width:601px) {
  :root {--book-w:clamp(145px,34svh,215px)}
  .book-object {top:52%}
  .synopsis {top:52%}
  .close-selection,.home-resume {bottom:18px}
  .site-header {height:80px}
}
@media (max-height:640px) and (max-width:600px) {
  .is-selected .book-object {top:30%}
  .synopsis {top:49%; max-height:calc(51svh - 55px)}
  .synopsis h1 {font-size:25px; margin-bottom:10px}
  .synopsis-text {font-size:15px; line-height:1.52}
  .book-opening {margin-top:15px}
  .open-book {font-size:18px; padding-bottom:5px}
}
@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after {animation-duration:.001ms!important; animation-iteration-count:1!important; transition-duration:.001ms!important; transition-delay:0ms!important; scroll-behavior:auto!important}
}
@media print {
  :root {color-scheme:light}
  body {background:white; color:#111}
  .world,.site-header,.reader-toolbar,.reader-panel,.reading-progress,.reader-end,.toast,.reader-audio {display:none!important}
  .reading-page {padding:0}
  .reader-heading h1,.prose,.prose em {color:#111}
  .prose {font-size:12pt; max-width:none}
  .reader-heading {margin-bottom:24pt}
}

/* 0.3: two independent audio channels, inside the existing small popover. */
.player-shell audio {display:none}
.playlist-panel {max-height:calc(100svh - 110px);overflow-y:auto;overscroll-behavior:contain}
.channel-heading {display:flex;align-items:center;justify-content:space-between;gap:12px;margin:4px 0 10px}
.channel-kicker {font:9px var(--sans);letter-spacing:.18em;color:var(--gold)}
.channel-return {font-size:10px;color:var(--quiet);text-decoration:underline;text-underline-offset:3px}
.channel-return:hover {color:var(--paper)}
.narration-channel {border-bottom:1px solid var(--line);padding:0 0 14px;margin-bottom:17px}
.narration-transport {display:flex;gap:12px;align-items:center;margin:8px 0 12px}
.channel-play {display:grid;place-items:center;width:31px;height:31px;border:1px solid #d6b79535;border-radius:50%;flex-shrink:0;color:var(--gold)}
.channel-play .icon {width:14px;height:14px}
.narration-title {font:20px/1.25 var(--serif);color:var(--paper);overflow-wrap:anywhere}
.music-channel-toggle {display:grid;place-items:center;width:27px;height:24px;color:var(--gold)}
.music-channel-toggle .icon {width:13px;height:13px}
.volume-label {font:9px var(--sans);color:var(--muted)}
.sound-tools {gap:12px}
.volume-control {min-width:0;gap:7px}
.volume-control input {width:84px;max-width:26vw}
.voice-skips {display:flex;gap:9px}
.voice-skips button {padding:4px 0;font:10px var(--sans);color:var(--muted);white-space:nowrap}
.chapter-follow {display:flex;align-items:center;gap:9px;font-size:10px;color:var(--muted);margin:7px 0 16px;cursor:pointer}
.chapter-follow input {accent-color:var(--gold);width:12px;height:12px;margin:0}
.local-file-control {display:flex;flex-wrap:wrap;column-gap:19px;row-gap:2px}
.local-file-control .track-subtitle {flex-basis:100%}
.reader-audio-actions {display:flex;flex-wrap:wrap;gap:0 19px;justify-content:center}
.reader-audio.is-active {color:var(--gold)}
.prose figure.chapter-illustration {margin:2.1em 0 2.2em;text-align:center}
.prose figure.chapter-illustration img {margin:0 auto;max-height:78svh;object-fit:contain;width:auto;max-width:100%}
.prose figcaption {font:italic .66em/1.65 var(--serif);color:var(--muted);margin-top:13px;text-align:center;hyphens:none;text-wrap:pretty}
@media(max-width:600px){.playlist-panel{max-height:calc(100svh - 94px)}.reader-audio-actions{gap:0 12px}.reader-audio{font-size:10px}.prose figure.chapter-illustration{margin:1.8em 0}}

/* BEGIN DILETTANTES COVERS 0.3.1
   Habillage autonome pour le site 0.3. Aucune image ni police externe.
   Les identifiants 01 / 02 / 03 suivent les livres, sans renommer les themes.
   Les couvertures fournies avec le champ "cover" ne sont pas affectees.
*/

/* Une collection : papier sombre, lignes fines, typographie composee. */
.book-object[data-book-id]:not(.has-cover) {
  --cover-w: var(--book-w);
  --cover-paper: #f1dfc3;
  --cover-light: #e6c38f;
  --cover-rule: #d9b98755;
  --cover-quiet: #ddc5a4a3;
}
.book-object[data-book-id="02"]:not(.has-cover) {
  --cover-paper: #efd5c9;
  --cover-light: #db8666;
  --cover-rule: #d785664d;
  --cover-quiet: #d4aba0b3;
}
.book-object[data-book-id="03"]:not(.has-cover) {
  --cover-paper: #B2FFFF;
  --cover-light: #B2FFFF;
  --cover-rule: #b2ffff3d;
  --cover-quiet: #c0e3e1a3;
}
.book-object[data-book-id]:not(.has-cover) .book-jacket {
  border-color: var(--cover-rule);
}
.book-object[data-book-id]:not(.has-cover) .book-jacket::after {
  background:
    linear-gradient(90deg, #00000038, transparent 7%, transparent 97%, #ffffff0a),
    linear-gradient(0deg, #080c1733, transparent 19%, transparent 78%, #080c1724);
}
.book-object[data-book-id]:not(.has-cover) .book-art::before {
  content: '';
  position: absolute;
  inset: 5.2% 7.5%;
  border: 1px solid var(--cover-rule);
  opacity: .34;
  z-index: 3;
  pointer-events: none;
}
.book-object[data-book-id]:not(.has-cover) .book-series {
  top: 8.1%; left: 12%; right: 12%;
  font-size: max(5px, calc(var(--cover-w) * .027));
  letter-spacing: .25em;
  color: var(--cover-quiet);
}
.book-object[data-book-id]:not(.has-cover) .book-title {
  top: 23%; left: 12%; right: 12%;
  transform: translateY(-50%);
  color: var(--cover-paper);
  font-size: calc(var(--cover-w) * .096);
  font-weight: 400;
  line-height: 1.32;
  letter-spacing: .055em;
  text-transform: uppercase;
  text-wrap: balance;
  text-shadow: none;
}
.book-object[data-book-id]:not(.has-cover) .book-series::before {
  content: '';
  position: absolute;
  left: 50%; bottom: calc(100% + var(--cover-w) * .028);
  width: calc(var(--cover-w) * .10);
  height: 1px;
  transform: translateX(-50%);
  background: var(--cover-rule);
}
.book-object[data-book-id]:not(.has-cover) .book-author {
  bottom: 8%; left: 9%; right: 9%;
  color: var(--cover-paper);
  font-family: var(--sans);
  text-transform: uppercase;
  font-size: max(5px, calc(var(--cover-w) * .031));
  letter-spacing: .19em;
}
.book-object[data-book-id]:not(.has-cover) .book-symbol {
  bottom: 14.2%; left: 50%;
  width: calc(var(--cover-w) * .024);
  height: calc(var(--cover-w) * .024);
  transform: translateX(-50%);
  border: 1px solid var(--cover-light);
  border-radius: 50%;
  opacity: .60;
}
.book-object[data-book-id]:not(.has-cover) .book-symbol::after {
  content: '';
  position: absolute;
  inset: auto;
  left: 50%; top: 50%;
  width: calc(var(--cover-w) * .13);
  height: 1px;
  border: none;
  border-radius: 0;
  background: linear-gradient(90deg, var(--cover-rule), transparent 36% 64%, var(--cover-rule));
  transform: translate(-50%, -50%);
}

/* I — Les horizons se succedent ; un chemin les traverse. Palette d'origine. */
.book-object[data-book-id="01"]:not(.has-cover) .art-sun {
  top: 40%; left: 26%; width: 49%; aspect-ratio: 1;
  border: 1px solid #f1d5a58c;
  border-radius: 50%;
  background: radial-gradient(circle at 45% 70%, #edc28912, transparent 74%);
  box-shadow: 0 0 35px #efd1a518, inset 0 0 24px #efd2b00d;
}
.book-object[data-book-id="01"]:not(.has-cover) .art-sun::before {
  content: ''; position: absolute;
  inset: -15%;
  border: 1px solid #e7cba44a;
  border-radius: 50%;
}
.book-object[data-book-id="01"]:not(.has-cover) .art-sun::after {
  content: ''; position: absolute;
  inset: 16%;
  border: 1px solid #f1d5a566;
  border-radius: 50%;
  background: radial-gradient(circle at 50% 70%, #eaca9212, transparent 70%);
}
.book-object[data-book-id="01"]:not(.has-cover) .art-ground {
  left: -24%; bottom: -13%; width: 143%; height: 45%;
  transform: rotate(-12deg);
  border-radius: 50% 62% 0 0;
  background: linear-gradient(180deg, #81705d, #383139 54%, #252632);
  box-shadow: 0 -1px 0 #e4ca9757;
}
.book-object[data-book-id="01"]:not(.has-cover) .art-ground::after {
  inset: 14% -18% -18% 12%;
  background: linear-gradient(180deg, #62534a, #30303a 60%);
  border-radius: 50% 70% 0 0;
  transform: rotate(18deg);
  box-shadow: 0 -1px 0 #cab58d42;
}
.book-object[data-book-id="01"]:not(.has-cover) .art-ground::before {
  content: ''; position: absolute;
  left: 2%; top: -13%; width: 115%; height: 100%;
  border: 1px solid #e9c69130;
  border-radius: 50% 70% 0 0;
  transform: rotate(5deg);
}
.book-object[data-book-id="01"]:not(.has-cover) .art-path {
  left: 38%; bottom: -10%; width: 33%; height: 55%;
  border: none; border-left: 1px solid #f2d4a09e;
  border-radius: 50%;
  transform: rotate(17deg);
  background: none;
}
.book-object[data-book-id="01"]:not(.has-cover) .art-path::before {
  content: ''; position: absolute;
  inset: 5% 0 -9% 13%;
  border-left: 1px solid #e3c59832;
  border-radius: 50%;
}
.book-object[data-book-id="01"]:not(.has-cover) .art-path::after {
  content: ''; position: absolute;
  left: 10%; top: 10.4%;
  width: calc(var(--cover-w) * .013); height: calc(var(--cover-w) * .013);
  border-radius: 50%; background: #f1d5a5;
  box-shadow: 0 0 8px #efd1a54d;
}

/* II — Un meme ensemble, des courbes et des mesures. Anthracite et terre rouge. */
.book-object[data-book-id="02"]:not(.has-cover) .art-sky {
  background:
    radial-gradient(ellipse at 58% 61%, #a34e3a44, transparent 52%),
    linear-gradient(156deg, #222329, #303031 46%, #6f3d32 79%, #8c513c);
}
.book-object[data-book-id="02"]:not(.has-cover) .art-stars {
  background-image:
    radial-gradient(circle at 21% 43%, #e9c7ad87 0 .7px, transparent 1.2px),
    radial-gradient(circle at 77% 36%, #f1d6c266 0 .6px, transparent 1.1px),
    radial-gradient(circle at 85% 69%, #d9af938a 0 .7px, transparent 1.2px);
}
.book-object[data-book-id="02"]:not(.has-cover) .art-sun {
  top: 42%; left: 24%; width: 53%; aspect-ratio: 1;
  border: 1px solid #ecb39a8f;
  border-radius: 50%;
  background:
    radial-gradient(circle at 73% 75%, #c7775430, transparent 70%),
    linear-gradient(130deg, #302d30d9, #873f30a3 62%, #b36a4947);
  box-shadow: inset -1px -1px 0 #f0b79319, 0 0 40px #d07b4610;
}
.book-object[data-book-id="02"]:not(.has-cover) .art-sun::before {
  content: ''; position: absolute;
  inset: -13%;
  border: 1px solid #c7866740;
  border-radius: 50%;
  transform: none;
}
.book-object[data-book-id="02"]:not(.has-cover) .art-sun::after {
  content: ''; position: absolute;
  inset: 11% 16%;
  border: 1px solid #d99a788c;
  border-radius: 48% 52% 47% 53%;
  transform: rotate(-28deg);
}
.book-object[data-book-id="02"]:not(.has-cover) .art-ground {
  top: 42%; left: 24%; bottom: auto;
  width: 53%; height: auto; aspect-ratio: 1;
  border: none;
  border-radius: 50%;
  background: linear-gradient(0deg,
    transparent 0 22%, #e7b18c55 22% calc(22% + 1px),
    transparent calc(22% + 1px) 42%, #e7b18c77 42% calc(42% + 1px),
    transparent calc(42% + 1px) 63%, #e7b18c55 63% calc(63% + 1px),
    transparent calc(63% + 1px) 80%, #e7b18c33 80% calc(80% + 1px),
    transparent calc(80% + 1px));
  box-shadow: none;
  transform: none;
}
.book-object[data-book-id="02"]:not(.has-cover) .art-ground::before {
  content: ''; position: absolute;
  inset: 0; border-radius: 50%;
  background: linear-gradient(90deg, transparent 38%, #e7b18c25 38% calc(38% + 1px), transparent calc(38% + 1px) 66%, #e7b18c25 66% calc(66% + 1px), transparent calc(66% + 1px));
}
.book-object[data-book-id="02"]:not(.has-cover) .art-ground::after {
  content: ''; position: absolute;
  inset: 37% -18% auto -18%; height: 1px;
  border: none; border-radius: 0;
  background: linear-gradient(90deg, transparent, #f1b18d99 18% 82%, transparent);
  box-shadow: none;
  transform: none;
}
.book-object[data-book-id="02"]:not(.has-cover) .art-path {
  left: 31%; top: 43%; bottom: auto; width: 31%; height: 39%;
  border: 1px solid #e6a9849e;
  border-right-color: #d89d7a22;
  border-bottom-color: transparent;
  border-radius: 72% 32% 70% 28%;
  transform: rotate(28deg);
  background: none;
}
.book-object[data-book-id="02"]:not(.has-cover) .art-path::before {
  content: ''; position: absolute;
  inset: 8% -14% -6% 22%;
  border-left: 1px solid #c491713b;
  border-radius: 72% 32% 70% 28%;
}
.book-object[data-book-id="02"]:not(.has-cover) .art-path::after {
  content: ''; position: absolute;
  left: 9%; top: 6%;
  width: calc(var(--cover-w) * .014); height: calc(var(--cover-w) * .014);
  background: #f2c19f;
  border-radius: 50%;
  box-shadow: 0 0 8px #e5935555;
}

/* III — Des contours differents, une continuite commune. Accent exact #B2FFFF. */
.book-object[data-book-id="03"]:not(.has-cover) .art-sky {
  background:
    radial-gradient(ellipse at 55% 59%, #b2ffff2d, transparent 54%),
    linear-gradient(154deg, #192739, #2b465e 49%, #477891 81%, #293f56);
}
.book-object[data-book-id="03"]:not(.has-cover) .book-title {
  top: 23%; left: 9%; right: 9%;
  font-size: calc(var(--cover-w) * .139);
  letter-spacing: .10em;
}
.book-object[data-book-id="03"]:not(.has-cover) .art-stars {
  background-image:
    radial-gradient(circle at 21% 39%, #dcffffa3 0 .8px, transparent 1.4px),
    radial-gradient(circle at 82% 47%, #b2ffffa3 0 .7px, transparent 1.2px),
    radial-gradient(circle at 27% 75%, #dcffff66 0 .6px, transparent 1.2px),
    radial-gradient(circle at 77% 73%, #dcffff66 0 .6px, transparent 1.2px);
}
.book-object[data-book-id="03"]:not(.has-cover) .art-sun {
  top: 43%; left: 19%; width: 48%; aspect-ratio: .87;
  border: 1px solid #b2ffffa3;
  border-radius: 50%;
  background: radial-gradient(ellipse at 78% 49%, #b2ffff0f, transparent 75%);
  box-shadow: inset -1px 0 0 #e0ffff0c, 0 0 30px #b2ffff08;
  transform: rotate(-29deg);
}
.book-object[data-book-id="03"]:not(.has-cover) .art-sun::before {
  content: ''; position: absolute;
  inset: 2% -40% 3% 36%;
  border: 1px solid #b2ffff94;
  border-radius: 50%;
  background: radial-gradient(ellipse at 18% 50%, #b2ffff12, transparent 67%);
  transform: rotate(36deg);
}
.book-object[data-book-id="03"]:not(.has-cover) .art-sun::after {
  content: ''; position: absolute;
  inset: 22% -23% -5% 8%;
  border: 1px solid #b2ffff6b;
  border-radius: 50%;
  transform: rotate(67deg);
}
.book-object[data-book-id="03"]:not(.has-cover) .art-ground {
  top: 52%; left: 1%; bottom: auto; width: 90%; height: 18%;
  border: 1px solid #b2ffff49;
  border-top-color: transparent;
  border-left-color: #b2ffff12;
  border-radius: 50%;
  background: none;
  box-shadow: none;
  transform: rotate(-27deg);
}
.book-object[data-book-id="03"]:not(.has-cover) .art-ground::after {
  content: ''; position: absolute;
  inset: 11% -3% -29% -17%;
  border: 1px solid #b2ffff1f;
  border-top-color: transparent;
  border-radius: 50%;
  background: none;
  box-shadow: none;
  transform: rotate(-7deg);
}
.book-object[data-book-id="03"]:not(.has-cover) .art-path {
  left: -3%; top: 48%; bottom: auto; width: 109%; height: 26%;
  border: 1px solid #b2ffff52;
  border-top-color: transparent;
  border-right-color: #b2ffff17;
  border-radius: 50%;
  transform: rotate(-39deg);
  background: none;
}
.book-object[data-book-id="03"]:not(.has-cover) .art-path::after {
  content: ''; position: absolute;
  left: 12%; top: 12%;
  width: calc(var(--cover-w) * .014); height: calc(var(--cover-w) * .014);
  border-radius: 50%;
  background: #B2FFFF;
  box-shadow: 0 0 9px #b2ffff66;
}
/* Le livre selectionne s'agrandit sur mobile : sa composition suit sa largeur. */
@media (max-width: 600px) {
  .is-selected .book-object.is-current[data-book-id]:not(.has-cover) {
    --cover-w: var(--selected-mobile-size);
  }
}
/* END DILETTANTES COVERS 0.3.1 */
