@import "https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600&family=Caveat:wght@400;500&display=swap";:root{--paper:#f8f1e3;--paper-soft:#f0e6d2;--paper-deep:#e6dcc0;--ink:#322619;--ink-soft:#5c4d3a;--ink-faint:#8e7e68;--rule:#ddc9a8;--rule-soft:#ebe2cd;--accent:#c97d7d;--accent-soft:#e5b0b0;--rose:var(--accent);--sage:#8fa386;--butter:#e5c97a;--slate:#5c6e78;--measure:34rem;--measure-wide:42rem;--family-gouache:#c4a268;--family-watercolor:#8aa5b3;--family-pen-and-ink:#b89880;--family-woodblock:#4a5a4f;--family-pastel:#b8a8b9;--family-engraving:#7a6a52;--font-display:"Lora", "Baskerville", "Iowan Old Style", Georgia, serif;--font-body:"Lora", "Charter", "Iowan Old Style", Georgia, serif;--font-aside:"Caveat", "Brush Script MT", cursive;--paper-grain:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.20 0 0 0 0 0.15 0 0 0 0 0.10 0 0 0 0.045 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#211a12;--paper-soft:#2a2218;--paper-deep:#171209;--ink:#f0e7d6;--ink-soft:#cfc0a8;--ink-faint:#9a8b72;--rule:#4d3f2b;--rule-soft:#3a3021;--accent:#d69292;--accent-soft:#7e4f4f;--sage:#9db292;--slate:#8ba0ac;--paper-grain:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.95 0 0 0 0 0.90 0 0 0 0 0.78 0 0 0 0.030 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}}:root[data-theme=dark]{--paper:#211a12;--paper-soft:#2a2218;--paper-deep:#171209;--ink:#f0e7d6;--ink-soft:#cfc0a8;--ink-faint:#9a8b72;--rule:#4d3f2b;--rule-soft:#3a3021;--accent:#d69292;--accent-soft:#7e4f4f;--sage:#9db292;--slate:#8ba0ac;--paper-grain:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.95 0 0 0 0 0.90 0 0 0 0 0.78 0 0 0 0.030 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}*{box-sizing:border-box}html,body{background-color:var(--paper);background-image:var(--paper-grain);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;background-size:240px 240px;margin:0;padding:0;font-size:17px;line-height:1.65}a{color:var(--ink);text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:var(--rule);text-decoration-color:var(--rule);transition:text-decoration-color .15s}a:hover{-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.005em;color:var(--ink);font-weight:400}h1{margin:0 0 1rem;font-size:3rem;font-style:italic;line-height:1.22}h2{margin:2.5rem 0 .75rem;font-size:1.6rem;font-style:italic;line-height:1.3}h3{color:var(--accent);margin:1.75rem 0 .5rem;font-size:1.18rem;font-style:italic;font-weight:700;line-height:1.35}p,ul,ol{max-width:var(--measure);text-wrap:pretty}p{color:var(--ink-soft);margin:0 0 1rem}ul,ol{color:var(--ink-soft);padding-left:1.25rem}li{margin-bottom:.4rem}em{color:var(--ink-soft)}strong{color:var(--ink)}.dropcap:first-letter{font-family:var(--font-display);float:left;color:var(--accent);margin-top:.05em;margin-right:.08em;font-size:4em;font-style:italic;font-weight:400;line-height:.86}:root[data-app-theme=dark]{--paper:#191713;--paper-soft:#24211c;--paper-deep:#302b24;--ink:#e2d5bd;--ink-soft:#c1b49e;--ink-faint:#a89a84;--rule:#514737;--rule-soft:#393229;--accent:#c7967e;--accent-soft:#553e33;--sage:#a0ac8d;--butter:#c2a467;background-color:var(--paper);background-image:none}.app-header-actions{align-items:center;gap:.5rem;display:flex}.app-theme-toggle{border:1px solid var(--rule);background:var(--paper-soft);width:44px;height:44px;color:var(--ink-soft);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;padding:0;display:inline-flex}.app-theme-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.app-theme-toggle[aria-pressed=true]{color:var(--butter);border-color:var(--butter)}.app-header .app-header-actions .settings{justify-content:center;min-width:44px;min-height:44px}@media (width<=640px){body.lorylo-app .app-header{grid-template-columns:minmax(0,1fr) auto;gap:.6rem;display:grid}.app-header .back{grid-column:1/-1}body.lorylo-app .app-header .brand{white-space:nowrap;font-size:1.35rem}}[data-app-theme=dark] :is(.speech-bubble,.shelf-card,.preview-card,.offline-note){background:var(--paper-soft);color:var(--ink);border-color:var(--rule-soft)}[data-app-theme=dark] :is(.catalogue-hero h1,.shelf-title,.continue-title,.continue-name,.continue-card,.preview-title,.preview-blurb){color:var(--ink)}[data-app-theme=dark] :is(.hero-sub,.shelf-tags,.shelf-tags .lang,.preview-tags,.preview-back,.preview-close,.narration-label,.preview-warnings,.preview-credit){color:var(--ink-faint)}[data-app-theme=dark] :is(.fav-btn,.fav-filter,.shelf-view-btn,.bedtime-mark,.preview-fav,.preview-colour,.preview-play--restart,.narration-reading,.narration-flag){background:var(--paper-deep);color:var(--ink-soft);border-color:var(--rule);box-shadow:none}[data-app-theme=dark] :is(.fav-btn,.fav-filter,.preview-fav,.preview-colour) svg{stroke:var(--ink-soft)}[data-app-theme=dark] :is(.fav-btn,.preview-fav)[aria-pressed=true] svg{stroke:var(--accent)}[data-app-theme=dark] .series-chip{background:color-mix(in srgb, var(--card-color,var(--rule)) 20%, var(--paper-soft));color:var(--ink)}[data-app-theme=dark] .shelf-card--pop{background:color-mix(in srgb, var(--card-color,var(--rule)) 12%, var(--paper-soft))}[data-app-theme=dark] .catalogue--pop .catalogue-hero{background:linear-gradient(120deg,#3c3223,#352a24,#352729)}[data-app-theme=dark] .catalogue--pop .hero-sub{color:var(--ink-soft)}[data-app-theme=dark] :is(.preview-play:not(.preview-play--restart),.fav-filter[aria-pressed=true],.shelf-view-btn[aria-pressed=true],.narration-reading[aria-checked=true]){color:#efdfc5;background:#735044;border-color:#98725d}[data-app-theme=dark] .preview-overlay{background:#090806c7}[data-app-theme=dark] .preview-warnings{border-color:var(--rule)}[data-app-theme=dark] .flag--text{color:var(--ink)}[data-app-theme=dark] :is(.shelf-cover img,.continue-card img,.preview-cover img,.player-image,.player-video-layer){filter:brightness(.74)saturate(.85)}[data-app-theme=dark] .lore-owl svg{filter:brightness(.8)}[data-app-theme=dark] .lore-owl{animation:none}[data-app-theme=dark] :is(.player-narration,.player-subtitle-card,.player-drawer,.player-drawer-head h2){color:#dfd0b8}[data-app-theme=dark] .player-subtitle-card .player-narration-line.is-dim{color:#ad9f8b}[data-app-theme=dark] .player{--karaoke-active-color:#d6b174}body.lorylo-app{background:var(--paper);min-height:100dvh}.app-shell{max-width:64rem;margin:0 auto;padding:1rem 1.25rem 4rem}.app-shell:has(.catalogue){max-width:92rem}@media (width<=640px){.app-shell{padding:1rem max(1.15rem, env(safe-area-inset-right)) 3rem max(1.15rem, env(safe-area-inset-left))}}.app-header{border-bottom:1px solid var(--rule);justify-content:space-between;align-items:center;gap:1rem;margin-bottom:2rem;padding-bottom:1.25rem;display:flex}.app-header .brand{font-family:var(--font-display);letter-spacing:.005em;color:var(--ink);font-size:1.45rem;font-style:italic;font-weight:400;text-decoration:none}.app-header .brand .brand-dot{color:var(--accent)}.app-header .back,.app-header .settings{color:var(--ink-soft);align-items:center;gap:.4rem;font-size:.9rem;text-decoration:none;display:inline-flex}.app-header .back:hover,.app-header .settings:hover{color:var(--accent)}.billing-gate{z-index:200;background:var(--paper);text-align:center;padding:max(1.5rem, env(safe-area-inset-top)) max(1.5rem, env(safe-area-inset-right)) max(1.5rem, env(safe-area-inset-bottom)) max(1.5rem, env(safe-area-inset-left));color:var(--ink);flex-direction:column;justify-content:center;align-items:center;gap:1rem;display:flex;position:fixed;inset:0}.billing-gate h1{font-family:var(--font-display);color:var(--ink);margin:0;font-size:clamp(1.8rem,5vw,2.6rem);font-style:italic;font-weight:400}.billing-gate p{max-width:32rem;color:var(--ink-soft);margin:0}.billing-gate a{color:var(--accent)}.billing-gate button{color:var(--paper);background:var(--accent);border:1px solid var(--accent);cursor:pointer;border-radius:999px;margin-top:.5rem;padding:.7rem 1.5rem;font-family:inherit;font-size:1rem;transition:opacity .15s}.billing-gate button:hover{opacity:.9}.billing-gate .billing-gate-exit{align-items:baseline;gap:1.25rem;margin-top:1rem;font-size:.9rem;display:flex}.billing-gate button.billing-gate-signout{color:var(--accent);background:0 0;border:none;border-radius:0;margin:0;padding:0;font-size:.9rem;text-decoration:underline}.breadcrumb{color:var(--ink-soft);margin-bottom:1.5rem;font-size:.9rem;text-decoration:none;display:inline-block}.breadcrumb:hover{color:var(--accent)}.play-page{max-width:var(--measure-wide)}.play-stage{border:1px dashed var(--rule);text-align:left;background:var(--paper-soft);border-radius:.5rem;margin-top:2rem;padding:3rem 2rem}.play-stage--loading{aspect-ratio:4/5;border-style:solid;max-width:20rem;padding:0;overflow:hidden}.play-skeleton{background:var(--paper-deep);filter:blur();width:100%;height:100%;animation:1.6s ease-in-out infinite skeleton-pulse}@keyframes skeleton-pulse{0%,to{opacity:.5;filter:blur()}50%{opacity:1;filter:blur(2px)}}.play-stage .kicker{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin:0 0 .75rem;font-size:.85rem}.play-stage h1{margin:0 0 1.5rem;font-size:1.75rem}.play-explainer{color:var(--ink-soft);max-width:var(--measure)}.settings-page{max-width:var(--measure-wide)}.setting-list{margin-top:2rem}.setting-list dt{letter-spacing:.04em;text-transform:uppercase;color:var(--ink-faint);margin-top:1.25rem;font-size:.85rem}.setting-list dd{color:var(--ink);margin:.3rem 0 0;font-size:1rem}.setting-list select{color:var(--ink);background:var(--paper);border:1px solid var(--rule);border-radius:10px;padding:.45rem .7rem;font-family:inherit;font-size:.95rem}.account-row{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem 1rem;display:flex}.account-email{overflow-wrap:anywhere}.account-links{flex-shrink:0;align-items:baseline;gap:1rem;display:flex}.account-links a,.account-signout{color:var(--ink-soft);border:0;border-bottom:1px solid var(--rule);cursor:pointer;background:0 0;padding:0 0 1px;font-family:inherit;font-size:.9rem;text-decoration:none}.account-links a:hover,.account-signout:hover{color:var(--ink);border-bottom-color:var(--accent)}.download-list{max-width:26rem;margin:0 0 .5rem;padding:0;list-style:none}.download-list li{border-bottom:1px dashed var(--rule);align-items:center;gap:.6rem;padding:.35rem 0;display:flex}.download-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.download-size{color:var(--ink-faint);flex-shrink:0;font-size:.85rem}.download-remove{border:1px solid var(--rule);width:1.6rem;height:1.6rem;color:var(--ink-soft);cursor:pointer;background:0 0;border-radius:50%;flex-shrink:0;font-size:1rem;line-height:1}.download-remove:hover{color:var(--accent);border-color:var(--accent)}.read-font-sample{color:var(--ink);font-family:var(--font-body,Georgia, serif);margin:.7rem 0 0;line-height:1.6}.read-font-sample.is-dyslexic{font-family:OpenDyslexic,Verdana,sans-serif;line-height:1.75}.small-hands-toggle{cursor:pointer;color:var(--ink-soft);align-items:center;gap:.7rem;display:flex}.small-hands-toggle input{appearance:none;background:var(--paper-deep);border:1px solid var(--rule);cursor:pointer;border-radius:999px;flex-shrink:0;width:2.9rem;height:1.65rem;margin:0;transition:background .2s;position:relative}.small-hands-toggle input:before{content:"";background:#fff;border-radius:50%;width:1.25rem;height:1.25rem;transition:transform .2s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #3226194d}.small-hands-toggle input:checked{background:var(--accent);border-color:var(--accent)}.small-hands-toggle input:checked:before{transform:translate(1.25rem)}@media (prefers-reduced-motion:reduce){.small-hands-toggle input,.small-hands-toggle input:before{transition:none}}.settings-hint{color:var(--ink-soft);margin:0 0 .6rem;font-size:.92rem}.lang-checks{grid-template-columns:repeat(auto-fill,minmax(9.5rem,1fr));gap:.45rem 1rem;margin:0;padding:0;list-style:none;display:grid}.lang-check{cursor:pointer;color:var(--ink-soft);align-items:center;gap:.55rem;display:flex}.lang-check input{accent-color:var(--accent);margin:0}.lang-check input:disabled+.lang-check__flag{opacity:.8}.lang-check__flag{border:1px solid var(--rule);border-radius:2px;flex:none;width:1.7rem;height:1.15rem;display:inline-block;overflow:hidden}.lang-check__flag .flag{width:100%;height:100%;display:block}.not-found{color:var(--ink-soft);padding:3rem 0}.player{z-index:50;--frame-aspect:.8;--stage-top-inset:max(env(safe-area-inset-top,0px), 2rem);background:#0a0907;width:100dvw;height:100dvh;position:fixed;inset:0;overflow:hidden}.player-stage{width:calc(100dvh * var(--frame-aspect));transform-origin:50%;background:#0a0907;height:100dvh;position:absolute;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%)}.player-chrome{transform-origin:50%;pointer-events:none;z-index:1;width:100dvw;height:100dvh;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.player-chrome>*{pointer-events:auto}@media (orientation:portrait){.player:not(.is-read-mode) .player-stage.is-portrait{top:var(--stage-top-inset);width:min(100dvw, calc((100dvh - var(--stage-top-inset)) * var(--frame-aspect)));height:min(calc(100dvh - var(--stage-top-inset)), calc(100dvw / var(--frame-aspect)));left:50%;transform:translate(-50%)}.player-stage.is-landscape{width:100dvh;height:calc(100dvh / var(--frame-aspect));transform:translate(-50%,-50%)rotate(90deg)}.player-chrome.is-landscape{width:100dvh;height:100dvw;transform:translate(-50%,-50%)rotate(90deg)}}.player-frame-skeleton{z-index:0;opacity:1;background:linear-gradient(135deg,#f7f2e814,#f7f2e800),#14110d;transition:opacity .28s;position:absolute;inset:0}.player-stage.is-image-ready .player-frame-skeleton{opacity:0}.player-image{object-fit:cover;opacity:0;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:100%;height:100%;transition:opacity .28s;display:block;position:absolute;inset:0}.player-stage.is-image-ready .player-image{opacity:1}.hotspot-layer{pointer-events:none;z-index:2;position:absolute;inset:0}.hotspot-tap{box-sizing:border-box;cursor:pointer;pointer-events:none;-webkit-tap-highlight-color:transparent;border:3px dashed #f7f2e800;transition:border-color .3s;position:absolute}.hotspot-tap-circle{border-radius:50%}.hotspot-tap-rect{border-radius:6px}.hotspot-tap.is-active{pointer-events:auto;border-color:#f7f2e8f2;animation:2.2s ease-in-out infinite hotspot-pulse}.hotspot-tap:after{content:"";border-radius:inherit;opacity:0;pointer-events:none;border:3px solid #f7f2e8e6;position:absolute;inset:-3px}.hotspot-tap.is-playing{border-style:solid;border-color:#f7f2e8;animation:none}.hotspot-tap.is-playing:after{animation:1.3s ease-out infinite hotspot-sonar}@media (hover:hover){.hotspot-tap.is-active:hover{border-style:solid;border-color:#fff;animation:none}}.hotspot-tap.is-hidden,.hotspot-tap.is-hidden.is-playing,.hotspot-tap.is-hidden.is-active:hover{border-color:#0000;animation:none}.hotspot-tap.is-hidden:after{display:none}@keyframes hotspot-pulse{0%,to{opacity:.55}50%{opacity:1}}@keyframes hotspot-sonar{0%{opacity:.9;transform:scale(1)}to{opacity:0;transform:scale(1.45)}}.player-topbar{padding:max(.85rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) 1rem max(1rem, env(safe-area-inset-left));color:#f7f2e8eb;z-index:3;pointer-events:none;align-items:center;gap:1rem;font-size:.9rem;display:flex;position:absolute;top:0;left:0;right:0}.player-topbar>*{pointer-events:auto}.player-topbar-left,.player-topbar-right{flex:1;align-items:center;gap:.6rem;display:flex}.player-topbar-left{justify-content:flex-start}.player-topbar-right{justify-content:flex-end}.player-topbar-center{flex-shrink:0}.player-indicators{top:.85rem;right:calc(max(1rem, env(safe-area-inset-right)) + 5.3rem);z-index:5;pointer-events:auto;align-items:center;gap:.5rem;display:flex;position:absolute}.narration-retry{z-index:6;max-width:min(85%,24rem);color:var(--paper,#fff);cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#14100cd1;border:1px solid #ffffff59;border-radius:999px;padding:.75rem 1.4rem;font-family:inherit;font-size:1rem;line-height:1.35;position:absolute;bottom:18%;left:50%;transform:translate(-50%)}.player-wake-warning{color:#f7f2e8eb;text-align:left;z-index:6;cursor:pointer;background:#0a0907b8;border:1px solid #ffd75c73;border-radius:.6rem;max-width:min(26rem,100vw - 2rem);padding:.55rem .9rem;font-size:.8rem;line-height:1.4;position:absolute;top:3.4rem;left:50%;transform:translate(-50%)}.player-exit{color:inherit;font-family:inherit;font-size:inherit;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0a090773;border:1px solid #f7f2e833;border-radius:999px;padding:.35rem .75rem;transition:border-color .15s}.player-exit:hover{border-color:#f7f2e873}.player-progress{font-variant:small-caps;letter-spacing:.08em;color:#f7f2e8eb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0a090773;border:1px solid #f7f2e82e;border-radius:999px;padding:.25rem .7rem;font-size:.78rem}.player-text-toggle{color:#f7f2e8d9;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0a090773;border:1px solid #f7f2e833;border-radius:50%;justify-content:center;align-items:center;width:2.1rem;height:2.1rem;padding:0;transition:color .15s,border-color .15s;display:inline-flex}.player-text-toggle:hover{color:#f7f2e8;border-color:#f7f2e880}.player-text-toggle.text-mode-hidden{color:#f7f2e88c}.player-nav{cursor:pointer;color:#0000;z-index:1;-webkit-tap-highlight-color:transparent;background:0 0;border:none;align-items:center;width:22%;min-width:4rem;max-width:9rem;padding:0 1rem;transition:color .25s,background .25s;display:flex;position:absolute;top:0;bottom:0}.player-nav-prev{justify-content:flex-start;left:0}.player-nav-next{justify-content:flex-end;right:0}.player-nav:hover{color:#f7f2e8fa}.player-nav-prev:hover{background:linear-gradient(90deg,#0a090780,#0000 80%)}.player-nav-next:hover{background:linear-gradient(270deg,#0a090780,#0000 80%)}.player-nav:active{transform:scale(.96)}.player-nav svg{filter:drop-shadow(0 1px 3px #00000080)}.player-narration-overlay{padding:4rem max(1.25rem, env(safe-area-inset-right)) max(1.25rem, env(safe-area-inset-bottom)) max(1.25rem, env(safe-area-inset-left));color:#f7f2e8f7;pointer-events:none;z-index:3;background:linear-gradient(#0000 0%,#0a090780 45%,#0a0907d1 100%);position:absolute;bottom:0;left:0;right:0}.player-narration{text-align:left;max-width:44rem;color:inherit;text-shadow:0 1px 4px #0000008c;margin:0;font-size:.94rem;line-height:1.45}.player-narration-line{color:inherit;margin:0}.player-narration-line+.player-narration-line{margin-top:.45rem}.player-narration-word--active{color:var(--karaoke-active-color,#ffd75c);-webkit-text-stroke:.03em currentColor;transition:color .12s ease-out}@media (width>=720px){.player-narration{font-size:1.25rem}}@media (hover:none) and (pointer:coarse){.player-chrome.is-landscape .player-narration{font-size:.8rem}}@media (width<=640px){.player-narration-overlay{padding:3rem max(1rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left))}.player-narration-line+.player-narration-line{margin-top:.32rem}}.player-narration-overlay.text-mode-compact{padding:1.25rem max(1.25rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(1.25rem, env(safe-area-inset-left));background:0 0;justify-content:center;display:flex}.player-subtitle-card{text-align:center;text-wrap:balance;color:#fffffffa;text-shadow:0 1px 2px #000000bf;background:#080808d1;border-radius:6px;width:fit-content;max-width:min(46rem,100vw - 6rem);padding:.55rem .85rem .62rem;font-size:1rem;line-height:1.36;box-shadow:0 2px 12px #00000057}.player-subtitle-card .player-narration-line{white-space:nowrap;max-width:none;margin:0}.player-subtitle-card .player-narration-line+.player-narration-line{margin-top:.22rem}.player-subtitle-card .player-narration-line.is-dim{color:#ffffffb8}.player-subtitle-card:empty{display:none}.player-subtitle-card .player-narration-word--active{position:relative}.player-karaoke-bounce-dot{background:var(--karaoke-active-color,#ffd75c);border-radius:50%;width:.38em;height:.38em;animation:.42s ease-in-out infinite alternate player-karaoke-dot-bounce;position:absolute;top:-.62em;left:50%;transform:translate(-50%);box-shadow:0 1px 4px #0000008c}@keyframes player-karaoke-dot-bounce{to{transform:translate(-50%,-.34em)}}@media (width>=720px){.player-subtitle-card{padding:.62rem 1rem .7rem;font-size:1.22rem}}@media (width<=640px){.player-narration-overlay.text-mode-compact{padding:1rem max(1rem, env(safe-area-inset-right)) max(.85rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left))}.player-subtitle-card{max-width:calc(100vw - 2rem);font-size:.92rem}}@media (prefers-reduced-motion:reduce){.player-karaoke-bounce-dot{transition:none;animation:none}}.player-drawer-backdrop{pointer-events:none;z-index:60;background:#0a090700;transition:background .25s;position:fixed;inset:0}.player-drawer-backdrop.is-open{pointer-events:auto;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0a09078c}.player-drawer{color:#f7f2e8f2;z-index:61;width:min(360px,92vw);padding-top:env(safe-area-inset-top);padding-right:env(safe-area-inset-right);background:#14110df5;border-left:1px solid #f7f2e814;flex-direction:column;transition:transform .28s cubic-bezier(.2,.7,.3,1);display:flex;position:fixed;top:0;bottom:0;right:0;overflow:hidden;transform:translate(100%)}.player-drawer.is-open{transform:translate(0)}.player-drawer-head{border-bottom:1px solid #f7f2e814;justify-content:space-between;align-items:center;padding:1.4rem 1.5rem 1rem;display:flex}.player-drawer-head h2{font-family:var(--font-display);color:#f7f2e8f2;margin:0;font-size:1.6rem;font-style:italic;font-weight:400;line-height:1}.player-drawer-close{color:#f7f2e8d9;cursor:pointer;background:0 0;border:1px solid #f7f2e82e;border-radius:50%;justify-content:center;align-items:center;width:2.1rem;height:2.1rem;transition:border-color .15s,color .15s;display:inline-flex}.player-drawer-close:hover{color:#f7f2e8;border-color:#f7f2e873}.player-drawer-body{flex-direction:column;gap:1.5rem;padding:1.5rem;display:flex;overflow-y:auto}.player-drawer-vol{flex-direction:column;gap:.5rem;display:flex}.player-drawer-vol-label{color:#f7f2e8eb;font-size:.95rem;font-family:var(--font-body);justify-content:space-between;align-items:baseline;display:flex}.player-drawer-vol-value{font-variant:small-caps;letter-spacing:.06em;color:#f7f2e88c;font-size:.78rem;font-family:var(--font-body)}.player-drawer-vol input[type=range]{appearance:none;cursor:pointer;background:#f7f2e829;border-radius:999px;outline:none;width:100%;height:4px}.player-drawer-vol input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--accent);cursor:grab;border:2px solid #f7f2e8f2;border-radius:50%;width:18px;height:18px;transition:transform .12s;box-shadow:0 1px 6px #00000059}.player-drawer-vol input[type=range]::-webkit-slider-thumb:active{cursor:grabbing;transform:scale(1.1)}.player-drawer-vol input[type=range]::-moz-range-thumb{background:var(--accent);cursor:grab;border:2px solid #f7f2e8f2;border-radius:50%;width:18px;height:18px;box-shadow:0 1px 6px #00000059}.player-drawer-section{flex-direction:column;gap:.5rem;display:flex}.player-drawer-section-label{color:#f7f2e8eb;font-size:.95rem;font-family:var(--font-body)}.player-drawer-segmented{background:#f7f2e814;border-radius:999px;gap:0;padding:3px;display:flex}.player-drawer-seg{color:#f7f2e8a6;font-family:var(--font-body);cursor:pointer;background:0 0;border:0;border-radius:999px;flex:1;padding:.55rem .6rem;font-size:.85rem;transition:background .15s,color .15s}.player-drawer-seg:hover{color:#f7f2e8f2}.player-drawer-seg.is-active{color:var(--ink);background:#f7f2e8f2;font-weight:500}.player-drawer-pills{flex-wrap:wrap;gap:.45rem;display:flex}.player-drawer-pill{color:#f7f2e8c7;font-family:var(--font-body);cursor:pointer;background:0 0;border:1px solid #f7f2e838;border-radius:999px;padding:.4rem .85rem;font-size:.85rem;transition:border-color .15s,background .15s,color .15s}.player-drawer-pill:hover{color:#f7f2e8;border-color:#f7f2e873}.player-drawer-pill.is-active{background:var(--accent);color:var(--paper);border-color:var(--accent)}.player-drawer-pill:disabled{cursor:default}.player-drawer-pill:disabled:not(.is-active){opacity:.4}.player-drawer-pill:disabled:hover{color:#f7f2e8c7;border-color:#f7f2e838}.player-drawer-exit{color:#f7f2e8d9;cursor:pointer;font-family:var(--font-body);background:0 0;border:1px solid #f7f2e838;border-radius:999px;margin-top:.75rem;padding:.7rem 1rem;font-size:.95rem;font-style:italic;transition:border-color .15s,color .15s,background .15s}.player-drawer-exit:hover{color:#f7f2e8;border-color:var(--accent);background:#c97d7d1a}.player-drawer-hint{color:#f7f2e88c;margin:.5rem 0 0;font-size:.8rem;font-style:italic;line-height:1.55}.player-drawer-diag{color:#f7f2e861;word-break:break-word;font-size:.68rem;font-style:normal}.player.is-dark-screen{background:#000}.player.is-dark-screen .player-image,.player.is-dark-screen .player-narration-overlay,.player.is-dark-screen .char-strip{visibility:hidden}.player.is-dark-screen .hotspot-layer{visibility:hidden;pointer-events:none}.player .player-topbar,.player .player-nav-prev,.player .player-nav-next{transition:opacity .4s}.player:not(.is-chrome-revealed) .player-topbar,.player:not(.is-chrome-revealed) .player-nav-prev,.player:not(.is-chrome-revealed) .player-nav-next{opacity:0;pointer-events:none}.player.is-chrome-revealed .player-topbar,.player.is-chrome-revealed .player-nav-prev,.player.is-chrome-revealed .player-nav-next{opacity:1;pointer-events:auto}.player-start-overlay{-webkit-backdrop-filter:blur(6px)saturate(.95);cursor:pointer;z-index:50;-webkit-tap-highlight-color:transparent;color:inherit;font:inherit;background:#0a090752;border:none;justify-content:center;align-items:center;margin:0;padding:0;animation:.28s ease-out player-start-fade-in;display:flex;position:fixed;inset:0}.player-start-button{font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;color:#1a1612;background:#f7f2e8f0;border:none;border-radius:50%;justify-content:center;align-items:center;width:128px;height:128px;margin:0;padding:0;transition:transform .16s ease-out,background .16s ease-out;animation:2.4s ease-in-out infinite player-start-pulse;display:flex;box-shadow:0 10px 30px #00000073,0 0 #f7f2e873}.player-start-button>svg{transform:translate(3px)}.player-start-button:hover{background:#f7f2e8;transform:scale(1.04)}.player-start-button:active{transform:scale(.96)}.player-start-controls{pointer-events:none;justify-content:center;align-items:center;gap:clamp(1.5rem,7vw,3.5rem);display:flex}.player-start-controls>*{pointer-events:auto}.player-start-side{font:inherit;cursor:pointer;color:#f7f2e8f0;-webkit-tap-highlight-color:transparent;background:0 0;border:none;justify-content:center;align-items:center;margin:0;padding:0;display:flex;position:relative}.player-start-side-disc{-webkit-backdrop-filter:blur(3px);background:#100e0b6b;border:1px solid #f7f2e857;border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;transition:transform .16s ease-out,background .16s ease-out;display:flex}.player-start-side:hover .player-start-side-disc{background:#100e0b99;transform:scale(1.04)}.player-start-side:active .player-start-side-disc{transform:scale(.96)}.player-start-side-label{text-align:center;letter-spacing:.01em;opacity:.88;text-shadow:0 1px 6px #0009;width:7.5rem;margin-top:.6rem;font-size:.78rem;line-height:1.25;position:absolute;top:100%;left:50%;transform:translate(-50%)}.player-start-overlay.is-locked{z-index:160;pointer-events:none}.player-start-overlay.is-locked .player-start-button{pointer-events:auto;cursor:pointer}.player-start-overlay.is-locked .player-start-button:hover{background:#f7f2e8;transform:scale(1.04)}.player-start-overlay.is-locked .player-start-button:active{transform:scale(.96)}@keyframes player-start-pulse{0%,to{box-shadow:0 10px 30px #00000073,0 0 #f7f2e873}50%{box-shadow:0 10px 30px #00000073,0 0 0 18px #f7f2e800}}@keyframes player-start-fade-in{0%{opacity:0}to{opacity:1}}@media (width<=480px){.player-start-side-disc{width:58px;height:58px}.player-start-side-disc>svg{width:24px;height:24px}.player-start-side-label{width:6rem;font-size:.72rem}.player-start-button{width:104px;height:104px}.player-start-button>svg{width:44px;height:44px}}.player-fadeout{opacity:0;pointer-events:none;z-index:110;cursor:default;background:#000;transition:opacity 10s cubic-bezier(.4,0,.6,1);position:fixed;inset:0}.player-fadeout.is-active{opacity:1;pointer-events:auto;cursor:pointer}.player-lock-overlay{z-index:150;cursor:default;-webkit-tap-highlight-color:transparent;background:0 0;position:fixed;inset:0}.player-lock-affordance{z-index:170;top:max(.85rem, env(safe-area-inset-top));right:max(1rem, env(safe-area-inset-right));opacity:0;pointer-events:none;flex-direction:column;align-items:flex-end;gap:.45rem;transition:opacity .2s ease-out,transform .2s ease-out;display:flex;position:fixed;transform:scale(.96)}.player-lock-affordance.is-revealed{opacity:1;pointer-events:auto;transform:scale(1)}.player-lock-buttons{align-items:center;gap:.4rem;display:flex}.player-lock-pause{color:#f7f2e8eb;cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0a09078c;border:none;border-radius:50%;place-items:center;width:44px;height:44px;display:grid}.player-lock-hold{color:#f7f2e8eb;cursor:pointer;touch-action:none;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0a09078c;border:none;border-radius:50%;place-items:center;width:44px;height:44px;display:grid;position:relative}.player-lock-ring{width:100%;height:100%;margin:auto;position:absolute;inset:0;transform:rotate(-90deg)}.player-lock-ring-track{fill:none;stroke:#ffffff40;stroke-width:3px}.player-lock-ring-progress{fill:none;stroke:#fff;stroke-width:3px;stroke-linecap:round}.player-lock-glyph{place-items:center;display:grid}.player-lock-hint{color:#f7f2e8eb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);white-space:nowrap;background:#0a09078c;border-radius:999px;padding:.28rem .7rem;font-size:.78rem}.sleep-good-night{pointer-events:none;z-index:120;color:#f7f2e8e0;font-family:var(--font-display);letter-spacing:.01em;text-shadow:0 1px 12px #0009;opacity:0;justify-content:center;align-items:center;font-size:clamp(1.8rem,5vw,2.8rem);font-style:italic;transition:opacity 5s 5s;display:flex;position:fixed;inset:0}.sleep-good-night.is-visible{opacity:1}.sleep-exit-confirm{z-index:130;cursor:default;background:0 0;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.sleep-exit-confirm-card{text-align:center;color:#f7f2e8d1;background:#1c1814eb;border:1px solid #f7f2e81f;border-radius:12px;max-width:min(86vw,22rem);padding:1.25rem 1.4rem 1.1rem;box-shadow:0 10px 32px -16px #000c}.sleep-exit-confirm-title{font-family:var(--font-display);color:#f7f2e8eb;margin:0 0 1rem;font-size:1.15rem;font-style:italic}.sleep-exit-confirm-actions{justify-content:center;gap:.75rem;display:flex}.sleep-exit-confirm-btn{color:#f7f2e8e0;font:inherit;cursor:pointer;background:#f7f2e814;border:1px solid #f7f2e82e;border-radius:999px;flex:1;padding:.55rem 1rem;font-size:.92rem;transition:background .18s,border-color .18s}.sleep-exit-confirm-btn--stay{background:#f7f2e824}.sleep-exit-confirm-btn--exit{color:#f7f2e8ad}.sleep-exit-confirm-btn:hover{background:#f7f2e82e;border-color:#f7f2e852}.autoplay-grace-icon{color:#f7f2e8d9;justify-content:center;align-items:center;width:1.6rem;height:1.6rem;display:inline-flex}.autoplay-grace-icon-fill{stroke-dasharray:62.83;stroke-dashoffset:62.83px;animation:3s linear forwards autoplay-grace-fill}@keyframes autoplay-grace-fill{to{stroke-dashoffset:0}}.player-sleep-countdown{color:#f7f2e8e0;font-family:var(--font-body);font-variant:small-caps;letter-spacing:.06em;font-variant-numeric:tabular-nums;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);white-space:nowrap;background:#0a090773;border:1px solid #f7f2e833;border-radius:999px;align-items:center;gap:.4rem;padding:.32rem .75rem .32rem .65rem;font-size:.78rem;display:inline-flex}.player-sleep-countdown svg{opacity:.85}.ambient-stop{color:#f7f2e8eb;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0a09078c;border:1px solid #f7f2e840;border-radius:999px;justify-self:end;align-items:center;gap:.5rem;max-width:14rem;padding:.4rem .8rem;font-family:inherit;font-size:.8rem;display:inline-flex}.ambient-stop:hover{color:var(--accent-soft);border-color:var(--accent-soft)}.player-continue{color:#2b2218;font:inherit;cursor:pointer;background:#f7f2e8eb;border:1px solid #f7f2e899;border-radius:999px;justify-self:end;align-items:center;gap:.4rem;padding:.45rem .9rem;font-size:.85rem;font-weight:600;animation:.25s continue-in;display:inline-flex;box-shadow:0 4px 14px -4px #00000080}.player-continue svg{width:1rem;height:1rem}@keyframes continue-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.player-ending{left:50%;bottom:max(1.25rem, env(safe-area-inset-bottom));z-index:95;color:#f7f2e8eb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0a0907b8;border:1px solid #f7f2e833;border-radius:18px;justify-items:center;gap:.7rem;width:min(92vw,26rem);padding:1rem 1.2rem 1.1rem;animation:.35s ending-rise;display:grid;position:fixed;transform:translate(-50%)}.player-ending-title{font-family:var(--font-display);letter-spacing:.01em;margin:0;font-size:1.6rem;font-style:italic}.player-ending-actions{flex-wrap:wrap;justify-content:center;gap:.6rem;display:flex}.player-ending-btn{color:#f7f2e8eb;min-height:44px;font:inherit;cursor:pointer;background:#f7f2e81a;border:1px solid #f7f2e838;border-radius:999px;padding:.6rem 1.1rem;font-size:.95rem}.player-ending-restart{background:#f7f2e833}@keyframes ending-rise{0%{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%)}}.ambient-dot{background:var(--accent-soft);border-radius:50%;flex-shrink:0;width:.5rem;height:.5rem;animation:1.4s ease-in-out infinite ambient-blink}@keyframes ambient-blink{0%,to{opacity:.4}50%{opacity:1}}.card-overlay-root{--ink:#3a2c1c;--ink-soft:#6e5a3c;--parchment:#f1e6c4;--foxglove:#c98598;--card-w:min(420px, 88vw, calc((100dvh - 5rem) * 2 / 3));-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:100;padding:max(1.25rem, env(safe-area-inset-top)) 1rem max(1.25rem, env(safe-area-inset-bottom));background:#2a21188c;justify-content:center;align-items:center;animation:.22s ease-out overlay-fade;display:flex;position:fixed;inset:0}@keyframes overlay-fade{0%{opacity:0}to{opacity:1}}.card-stack{width:var(--card-w);aspect-ratio:400/600;perspective:1800px;position:relative}.card{-webkit-user-select:none;user-select:none;will-change:transform, opacity;filter:drop-shadow(0 2px 1px #0000002e)drop-shadow(0 18px 28px #281c0c59);transition:transform .52s cubic-bezier(.32,.72,.18,1.02),opacity .4s;animation:.3s cubic-bezier(.2,.7,.3,1) card-rise;position:absolute;inset:0;container-type:inline-size}@keyframes card-rise{0%{opacity:0;transform:translateY(70vh)scale(.86)rotate(-2deg)}to{opacity:1;transform:translateY(0)}}.card.is-dismissed{pointer-events:none;animation:.78s cubic-bezier(.36,0,.42,1) forwards card-fly-off;animation-delay:var(--fly-delay,0s)}@keyframes card-fly-off{to{transform:var(--fly-transform,translate(80vw, 100vh) rotate(30deg));opacity:0}}.card--top{cursor:default}.card--lower{cursor:pointer}.card--lower *{pointer-events:none}.card__inner{transform-style:preserve-3d;transition:transform .78s cubic-bezier(.55,-.05,.4,1.02);position:absolute;inset:0}.card.is-flipped .card__inner{transform:rotateY(180deg)}.card__face{backface-visibility:hidden;background:var(--parchment);border-radius:16px;position:absolute;inset:0;overflow:hidden}.card__face--back{transform:rotateY(180deg)}.card__face--front{pointer-events:auto}.card__face--back,.card.is-flipped .card__face--front{pointer-events:none}.card.is-flipped .card__face--back{pointer-events:auto}.card__frame{z-index:2;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.card__portrait{z-index:1;background:#e9dcb6;height:49%;position:absolute;top:16.5%;left:13%;right:13%;overflow:hidden;-webkit-mask-image:linear-gradient(#0000 0,#000 8% 100%);mask-image:linear-gradient(#0000 0,#000 8% 100%)}.card__portrait img{object-fit:cover;object-position:center 35%;width:100%;height:100%;display:block}.card__portrait--initial{color:#6e5a3c;text-shadow:0 1px #fff8e1,0 2px 4px #00000026;background:radial-gradient(circle at 35% 30%,#fff8e1 0%,#d8c890 70%,#a98b4a 100%);place-items:center;font-family:Cormorant Garamond,serif;font-size:38cqw;font-style:italic;font-weight:700;line-height:1;display:grid}.card__close{z-index:8;width:2.25rem;height:2.25rem;color:var(--ink-soft);cursor:pointer;background:#f7f2e8eb;border:1px solid #2a21182e;border-radius:999px;padding:0;font-size:1.35rem;line-height:1;position:absolute;top:-.65rem;right:-.65rem;box-shadow:0 8px 20px #0a090740}.card__close:hover{color:var(--foxglove)}.card__nameplate{z-index:3;text-align:center;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;height:12%;padding:0 2cqw;display:flex;position:absolute;top:6.7%;left:17%;right:17%}.card__name{color:var(--ink);letter-spacing:.005em;white-space:nowrap;text-overflow:ellipsis;max-width:100%;margin:0;font-family:Cormorant Garamond,serif;font-size:clamp(16px,6.4cqw,28px);font-style:italic;font-weight:600;line-height:1;overflow:hidden}.card__epithet{color:var(--ink-soft);letter-spacing:.04em;margin:0;font-family:EB Garamond,serif;font-size:clamp(8.5px,2.6cqw,11.5px);font-style:italic;font-weight:400}.card__panel{z-index:3;flex-direction:column;gap:1.6cqw;padding:3%;display:flex;position:absolute;inset:65% 15% 13%;overflow:hidden}.card__description{color:var(--ink);text-wrap:pretty;hyphens:auto;text-indent:0;flex:none;max-height:3.96em;margin:0;font-family:EB Garamond,serif;font-size:clamp(10px,3.4cqw,13.5px);line-height:1.32;overflow:hidden}.card__description:first-letter{margin-right:.05em;font-family:Cormorant Garamond,serif;font-size:1.35em;font-weight:700;line-height:.95}.card__relations{color:var(--ink);flex:auto;min-height:0;font-family:EB Garamond,serif;font-size:clamp(10.5px,3.2cqw,13px);line-height:1.4;overflow:visible}.card__relations-label{letter-spacing:.18em;color:var(--ink-soft);margin-bottom:.3cqw;font-family:Cormorant Garamond,serif;font-size:.82em;font-variant-caps:all-small-caps;display:block}.card__relation{font:inherit;appearance:none;font-family:EB Garamond,serif;font-size:inherit;color:var(--ink);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:1px dotted #3a2c1c8c;padding:0;text-decoration:none;transition:color .14s,border-color .14s}.card__relation:hover{color:var(--foxglove);border-bottom-color:var(--foxglove)}.card__relation-role{letter-spacing:.08em;color:var(--ink-soft);margin-left:.18em;font-family:Cormorant Garamond,serif;font-size:.86em;font-style:italic;font-variant-caps:all-small-caps}.card__relation-role:before{content:"("}.card__relation-role:after{content:")"}.card__relations-list{display:inline}.card__relations-sep{color:var(--ink-soft);white-space:normal;margin:0 .12em}.card__flip{color:var(--ink-soft);letter-spacing:.04em;cursor:pointer;background:0 0;border:none;border-bottom:1px dotted #6e5a3c8c;align-self:flex-end;margin-top:auto;padding:0 0 1px;font-family:Cormorant Garamond,serif;font-size:clamp(9.5px,2.8cqw,12px);font-style:italic;transition:color .14s,border-color .14s}.card__flip:hover{color:var(--foxglove);border-bottom-color:var(--foxglove)}.card__nameplate--back{height:8%;top:5.5%;left:24%;right:24%}.card__name--back{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-family:Cormorant Garamond,serif;font-size:clamp(13px,4.7cqw,19px);font-style:italic;font-weight:600;overflow:hidden}.card__back-body{z-index:3;flex-direction:column;justify-content:space-between;padding:2% 1%;display:flex;position:absolute;inset:19% 17% 22%}.card__back-text{color:var(--ink);letter-spacing:.005em;text-shadow:0 0 .4px #3a2c1c4d;margin:0;font-family:Caveat,cursive;font-size:clamp(16px,5.4cqw,23px);font-weight:500;line-height:1.2}.card__flip--back{letter-spacing:.02em;font-family:Caveat,cursive;font-size:clamp(13px,3.8cqw,17px);font-style:normal}.card--loading{background:var(--parchment);opacity:.65;border-radius:16px}.card__skeleton{background:linear-gradient(110deg,#0000 30%,#ffffff73 50%,#0000 70%) 0 0/200% 100%;border-radius:16px;animation:1.6s ease-in-out infinite card-skeleton-pulse;position:absolute;inset:0}@keyframes card-skeleton-pulse{0%{background-position:200% 0}to{background-position:-200% 0}}@media (width<=520px){.card-overlay-root{--card-w:min(90vw, calc((100dvh - 4.5rem) * 2 / 3));padding-inline:.75rem}}
