@import url("https://fonts.googleapis.com/css2?family=Cinzel:wght@500;600;700&family=Courier+Prime:ital,wght@0,400;0,700;1,400&family=Fraunces:opsz,wght,SOFT,WONK@9..144,300..900,0..100,0..1&family=Outfit:wght@300;400;600;800&family=Special+Elite&family=Spectral:ital,wght@0,400;0,500;0,600;0,700;1,400&family=Yellowtail&display=swap");:root{--bg-base:#0f1115;--bg-surface:rgba(25,28,35,.6);--bg-surface-hover:rgba(35,38,48,.8);--text-main:#e2e8f0;--text-muted:#94a3b8;--accent-primary:#8f1d2f;--accent-secondary:#b45a2b;--accent-gradient:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));--book-parchment:#f4ecd8;--book-text:#2c1810;--book-highlight:rgba(212,175,55,.35);--book-trail:rgba(44,24,16,.08);--font-ui:"Outfit",sans-serif;--font-reader:"Spectral",serif;--border-radius:16px;--glass-border:1px solid hsla(0,0%,100%,.05);--glass-shadow:0 8px 32px 0 rgba(0,0,0,.37)}*{box-sizing:border-box;margin:0;padding:0}:focus-visible{outline:2px solid #8f1d2f;outline-offset:2px;border-radius:4px}:focus:not(:focus-visible){outline:none}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}body{font-family:var(--font-ui);background-color:var(--bg-base);color:var(--text-main);min-height:100vh}.old-book-bg{background-color:var(--book-parchment);background-image:url(https://www.transparenttextures.com/patterns/papyros.png),radial-gradient(circle at center,transparent 0,rgba(0,0,0,.03) 100%);box-shadow:inset 0 0 100px rgba(0,0,0,.06);color:var(--book-text)!important}.glass-panel{background:var(--bg-surface);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:var(--glass-border);box-shadow:var(--glass-shadow);border-radius:var(--border-radius)}.tts-word{padding:1px 2px;margin:0;border-radius:4px;transition:all .3s ease}.word-highlight{background-color:var(--book-highlight);color:#000;box-shadow:0 0 8px var(--book-highlight);transform:scale(1.05)}.word-trail-1{background-color:var(--book-trail);opacity:.8}.word-trail-2{background-color:rgba(44,24,16,.04);opacity:.6}.page-flip-container{perspective:2000px;height:100%}.page-flip-content{transition:transform .6s cubic-bezier(.645,.045,.355,1),opacity .3s}.flipping{transform:rotateY(-15deg) translateX(-30px);opacity:.4;filter:blur(1px)}.btn-primary{background:var(--accent-gradient);color:#fff;padding:12px 24px;border-radius:30px;font-weight:600;font-size:1rem;box-shadow:0 4px 15px rgba(143,29,47,.28);text-decoration:none;display:inline-block;cursor:pointer;border:none}.btn-primary:hover{transform:translateY(-2px)}.landing-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;position:relative;overflow:hidden}.landing-content{text-align:center;z-index:2;max-width:600px;width:90%}.play-btn{width:56px;height:56px;border-radius:50%;background:var(--accent-gradient);border:none;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 20px rgba(143,29,47,.35);transition:transform .2s,box-shadow .2s}.play-btn:hover{transform:scale(1.08);box-shadow:0 6px 28px rgba(143,29,47,.45)}.play-btn:disabled{opacity:.7;cursor:wait}.play-btn.huge{width:80px;height:80px}.rb-anim-meter .rb-glyph{opacity:.32}.rb-anim-meter .rb-meter-fill{animation:rb-meter-fill 10s infinite}@keyframes rb-meter-fill{0%{-webkit-clip-path:inset(100% 0 0 0);clip-path:inset(100% 0 0 0);opacity:1}28%{-webkit-clip-path:inset(0 0 0 0);clip-path:inset(0 0 0 0)}90%{-webkit-clip-path:inset(0 0 0 0);clip-path:inset(0 0 0 0);opacity:1}95%{opacity:0}96%{-webkit-clip-path:inset(100% 0 0 0);clip-path:inset(100% 0 0 0);opacity:0}to{-webkit-clip-path:inset(100% 0 0 0);clip-path:inset(100% 0 0 0);opacity:1}}.rb-anim-tip .rb-tip{transform-box:fill-box;transform-origin:50% 18%;animation:rb-scales-tip 10s infinite}@keyframes rb-scales-tip{0%,4%{transform:rotate(0deg)}10%{transform:rotate(-10deg)}18%{transform:rotate(7deg)}26%{transform:rotate(-4deg)}33%{transform:rotate(2deg)}40%,to{transform:rotate(0deg)}}.tsel,.tsel-trigger{display:inline-flex;min-width:0}.tsel-trigger{align-items:center;justify-content:space-between;gap:6px;cursor:pointer;font-family:inherit;text-align:left}.tsel-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tsel-caret{flex:0 0 auto;width:1em;height:1em;opacity:.7;transition:transform .15s ease}.tsel[data-open=true] .tsel-caret{transform:rotate(180deg)}.tsel-list{--tsel-bg:#fff;--tsel-fg:#333;--tsel-border:#d8d6ca;--tsel-hover:rgba(44,24,16,.08);--tsel-selected-fg:#2c1810;--tsel-marker:#6d1624;--tsel-shadow:0 14px 34px rgba(0,0,0,.18);position:fixed;top:0;left:0;z-index:4000;margin:0;padding:4px;list-style:none;background:var(--tsel-bg);color:var(--tsel-fg);border:1px solid var(--tsel-border);border-radius:8px;box-shadow:var(--tsel-shadow);overflow-y:auto;overscroll-behavior:contain;font-family:inherit;font-size:inherit}.tsel-list:focus{outline:none}.tsel-opt{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:5px;cursor:pointer;white-space:nowrap}.tsel-opt.active{background:var(--tsel-hover)}.tsel-opt.selected{color:var(--tsel-selected-fg);font-weight:700}.tsel-opt:before{content:"";flex:0 0 auto;width:5px;height:5px;border-radius:50%;background:var(--tsel-marker);opacity:0}.tsel-opt.selected:before{opacity:1}@media (prefers-reduced-motion:reduce){.tsel-caret{transition:none}}html[data-dash-dark]:not([data-ui-theme]){color-scheme:dark;--dd-bg:#000;--dd-surface:#0e0e0e;--dd-surface-2:#191919;--dd-border:#2e2e2e;--dd-text:#ededed;--dd-text-2:#b3b3b3;--dd-text-3:#8a8a8a;--dd-gold:#8f1d2f;--dd-ink:#fff;--dash-side-border:#2e2e2e}html[data-dash-dark]:not([data-ui-theme]) .library-root{background-color:var(--dd-bg);color:var(--dd-text)}html[data-dash-dark]:not([data-ui-theme]) .dash-side{background:hsla(0,0%,100%,.025);border-right-color:var(--dd-border)}html[data-dash-dark]:not([data-ui-theme]) .dash-side-brand{color:var(--dd-text)}html[data-dash-dark]:not([data-ui-theme]) .dash-side-toggle{color:var(--dd-text-3)}html[data-dash-dark]:not([data-ui-theme]) .dash-side-toggle:hover{background:hsla(0,0%,100%,.07);color:var(--dd-text)}html[data-dash-dark]:not([data-ui-theme]) .dash-side-link{color:var(--dd-text-3)}html[data-dash-dark]:not([data-ui-theme]) .dash-side-link:hover{background:hsla(0,0%,100%,.06);color:var(--dd-text)}html[data-dash-dark]:not([data-ui-theme]) .dash-side-link.active{background:rgba(143,29,47,.15);color:var(--dd-gold)}html[data-dash-dark]:not([data-ui-theme]) .dash-dark-fab{background:var(--dd-surface-2);border-color:var(--dd-border);color:var(--dd-text-2);box-shadow:0 3px 10px rgba(0,0,0,.4)}html[data-dash-dark]:not([data-ui-theme]) .dash-dark-fab:hover{color:var(--dd-gold);box-shadow:0 6px 16px rgba(0,0,0,.55)}html[data-dash-dark]:not([data-ui-theme]) .dash-rank-badge{background:var(--dd-surface-2);color:var(--dd-text);box-shadow:0 3px 10px rgba(0,0,0,.4)}html[data-dash-dark]:not([data-ui-theme]) .dash-rank-badge:hover{box-shadow:0 6px 16px rgba(0,0,0,.55)}html[data-dash-dark]:not([data-ui-theme]) .dash-rank-bar{background:hsla(0,0%,100%,.1)}html[data-dash-dark]:not([data-ui-theme]) .dash-road-backdrop{background:rgba(0,0,0,.55)}html[data-dash-dark]:not([data-ui-theme]) .dash-road-pop{background:var(--dd-surface);border-color:var(--dd-border);box-shadow:0 18px 44px rgba(0,0,0,.6)}@media (max-width:860px){html[data-dash-dark]:not([data-ui-theme]) .dash-side{border-bottom-color:var(--dd-border)}}@media (max-width:720px){html[data-dash-dark]:not([data-ui-theme]) .dash-side{background:var(--dd-bg);border-top-color:var(--dd-border);box-shadow:0 -2px 14px rgba(0,0,0,.5)}html[data-dash-dark]:not([data-ui-theme]) .dash-appbar{background:var(--dd-bg);border-bottom-color:var(--dd-border)}html[data-dash-dark]:not([data-ui-theme]) .dash-appbar-brand{color:var(--dd-text)}html[data-dash-dark]:not([data-ui-theme]) .lib-fab{background:var(--dd-gold);color:var(--dd-ink);box-shadow:0 6px 18px rgba(0,0,0,.55)}}html[data-dash-dark]:not([data-ui-theme]) .library-header{border-bottom-color:var(--dd-border)}html[data-dash-dark]:not([data-ui-theme]) .lib-btn{background-color:var(--dd-surface-2);border-color:var(--dd-border);color:var(--dd-text)}html[data-dash-dark]:not([data-ui-theme]) .lib-btn:hover{background-color:#242424}html[data-dash-dark]:not([data-ui-theme]) .lib-btn-primary{background:var(--dd-gold);border-color:var(--dd-gold);color:var(--dd-ink)}html[data-dash-dark]:not([data-ui-theme]) .lib-btn-primary:hover{background:#e6e6e6}html[data-dash-dark]:not([data-ui-theme]) .lib-search{background:var(--dd-surface);border-color:var(--dd-border);color:var(--dd-text-3)}html[data-dash-dark]:not([data-ui-theme]) .lib-search input{color:var(--dd-text)}html[data-dash-dark]:not([data-ui-theme]) .lib-search input::placeholder{color:var(--dd-text-3)}html[data-dash-dark]:not([data-ui-theme]) .lib-sort{background:var(--dd-surface);border-color:var(--dd-border);color:var(--dd-text)}html[data-dash-dark]:not([data-ui-theme]) .library-root .tsel-list{--tsel-bg:var(--dd-surface);--tsel-fg:var(--dd-text);--tsel-border:var(--dd-border);--tsel-hover:var(--dd-surface-2);--tsel-selected-fg:var(--dd-gold);--tsel-marker:var(--dd-gold);--tsel-shadow:0 14px 34px rgba(0,0,0,.5)}html[data-dash-dark]:not([data-ui-theme]) .lib-view-toggle{border-color:var(--dd-border)}html[data-dash-dark]:not([data-ui-theme]) .lib-view-toggle button{background:var(--dd-surface);color:var(--dd-text-3)}html[data-dash-dark]:not([data-ui-theme]) .lib-view-toggle button.active{background:var(--dd-gold);color:var(--dd-ink)}html[data-dash-dark]:not([data-ui-theme]) .lib-uploading{color:var(--dd-text-2)}html[data-dash-dark]:not([data-ui-theme]) .lib-section-title{color:var(--dd-text-3)}html[data-dash-dark]:not([data-ui-theme]) .continue-hero{background:linear-gradient(120deg,#1a1a1a,#111);border-color:rgba(143,29,47,.3)}html[data-dash-dark]:not([data-ui-theme]) .continue-hero:hover{box-shadow:0 10px 26px rgba(0,0,0,.5)}html[data-dash-dark]:not([data-ui-theme]) .continue-hero-kicker{color:var(--dd-gold)}html[data-dash-dark]:not([data-ui-theme]) .continue-hero-title{color:var(--dd-text)}html[data-dash-dark]:not([data-ui-theme]) .continue-left{color:#c4c4c4}html[data-dash-dark]:not([data-ui-theme]) .continue-hero-resume,html[data-dash-dark]:not([data-ui-theme]) .continue-play{background:var(--dd-gold);color:var(--dd-ink)}html[data-dash-dark]:not([data-ui-theme]) .continue-card{background:var(--dd-surface);border-color:var(--dd-border)}html[data-dash-dark]:not([data-ui-theme]) .continue-card:hover{box-shadow:0 8px 20px rgba(0,0,0,.45)}html[data-dash-dark]:not([data-ui-theme]) .continue-title{color:var(--dd-text)}html[data-dash-dark]:not([data-ui-theme]) .continue-author{color:var(--dd-text-3)}html[data-dash-dark]:not([data-ui-theme]) .continue-progress{background:hsla(0,0%,100%,.08)}html[data-dash-dark]:not([data-ui-theme]) .continue-progress-fill{background:var(--dd-gold)}html[data-dash-dark]:not([data-ui-theme]) .continue-pct{color:var(--dd-text-3)}html[data-dash-dark]:not([data-ui-theme]) .book-cover-box{background-color:var(--dd-surface-2);box-shadow:0 8px 24px rgba(0,0,0,.45)}html[data-dash-dark]:not([data-ui-theme]) .book-meta h4{color:var(--dd-text)}html[data-dash-dark]:not([data-ui-theme]) .book-meta p{color:var(--dd-text-3)}html[data-dash-dark]:not([data-ui-theme]) .book-row{background:var(--dd-surface);border-color:var(--dd-border)}html[data-dash-dark]:not([data-ui-theme]) .book-row:hover{box-shadow:0 4px 14px rgba(0,0,0,.45)}html[data-dash-dark]:not([data-ui-theme]) .book-row-main h4{color:var(--dd-text)}html[data-dash-dark]:not([data-ui-theme]) .book-row-detail,html[data-dash-dark]:not([data-ui-theme]) .book-row-main p,html[data-dash-dark]:not([data-ui-theme]) .book-row-progress span{color:var(--dd-text-3)}html[data-dash-dark]:not([data-ui-theme]) .skeleton-shimmer{background:linear-gradient(100deg,#151515 30%,#212121 50%,#151515 70%);background-size:200% 100%}html[data-dash-dark]:not([data-ui-theme]) .lib-empty{color:var(--dd-text-3)}html[data-dash-dark]:not([data-ui-theme]) .lib-empty-onboarding h2{color:var(--dd-text)}html[data-dash-dark]:not([data-ui-theme]) .lib-empty-onboarding p{color:var(--dd-text-2)}html[data-dash-dark]:not([data-ui-theme]) .lib-empty-features span{background:var(--dd-surface-2);border-color:var(--dd-border);color:var(--dd-text-2)}html[data-dash-dark]:not([data-ui-theme]) .hud-card{background:var(--dd-surface);border-color:var(--dd-border);color:var(--dd-text-2)}html[data-dash-dark]:not([data-ui-theme]) .hud-btn:hover{box-shadow:0 6px 16px rgba(0,0,0,.45)}html[data-dash-dark]:not([data-ui-theme]) .hud-lit{background:rgba(143,29,47,.1);border-color:rgba(143,29,47,.5);color:var(--dd-gold)}html[data-dash-dark]:not([data-ui-theme]) .hud-flame{color:#8f1d2f}html[data-dash-dark]:not([data-ui-theme]) .hud-value{color:var(--dd-text)}html[data-dash-dark]:not([data-ui-theme]) .hud-label{color:var(--dd-text-3)}html[data-dash-dark]:not([data-ui-theme]) .hud-goal-select{color:var(--dd-text-2)}html[data-dash-dark]:not([data-ui-theme]) .hud-rank .hud-rank-bar{background:hsla(0,0%,100%,.08)}html[data-dash-dark]:not([data-ui-theme]) .hud-rank{border-color:color-mix(in srgb,var(--rank-c,#8f8f8f) 40%,var(--dd-border))}html[data-dash-dark]:not([data-ui-theme]) .badge{background:var(--dd-surface-2);border-color:var(--dd-border)}html[data-dash-dark]:not([data-ui-theme]) .badge-unlocked{background:color-mix(in srgb,var(--badge-c,#8f8f8f) 16%,var(--dd-surface));border-color:color-mix(in srgb,var(--badge-c,#8f8f8f) 48%,var(--dd-border))}html[data-dash-dark]:not([data-ui-theme]) .badge-glyph{color:var(--badge-c,var(--dd-text))}html[data-dash-dark]:not([data-ui-theme]) .badge-title{color:var(--dd-text)}html[data-dash-dark]:not([data-ui-theme]) .badge-desc{color:var(--dd-text-3)}html[data-dash-dark]:not([data-ui-theme]) .road-name{color:var(--dd-text)}html[data-dash-dark]:not([data-ui-theme]) .road-locked .road-name,html[data-dash-dark]:not([data-ui-theme]) .road-xp{color:var(--dd-text-3)}html[data-dash-dark]:not([data-ui-theme]) .road-current .road-rail{background:linear-gradient(90deg,var(--rank-c),var(--dd-border))}html[data-dash-dark]:not([data-ui-theme]) .road-locked .road-rail{background:var(--dd-border)}html[data-dash-dark]:not([data-ui-theme]) .road-chip{background:var(--dd-surface-2);border-color:var(--dd-border);color:var(--dd-text-3)}html[data-dash-dark]:not([data-ui-theme]) .road-chip-reached{background:color-mix(in srgb,var(--rank-c) 18%,var(--dd-surface));border-color:color-mix(in srgb,var(--rank-c) 45%,var(--dd-border));color:color-mix(in srgb,var(--rank-c) 70%,var(--dd-text))}html[data-dash-dark]:not([data-ui-theme]) .road-req{color:var(--dd-text-3)}html[data-dash-dark]:not([data-ui-theme]) .road-current .road-req{color:var(--dd-text-2)}html[data-dash-dark]:not([data-ui-theme]) .road-rules{color:var(--dd-text-3)}html[data-dash-dark]:not([data-ui-theme]) .road-rules strong{color:var(--dd-text-2)}html[data-dash-dark]:not([data-ui-theme]) .activity-panel{background:var(--dd-surface);border-color:var(--dd-border);--ch-bar:#8f8f8f;--ch-heat-1:#2e2e2e;--ch-heat-2:#525252;--ch-heat-3:#8f8f8f;--ch-heat-4:#e0e0e0;--ch-empty:hsla(0,0%,100%,.05);--ch-grid:hsla(0,0%,100%,.07);--ch-axis:#2e2e2e;--ch-ink:var(--dd-text);--ch-ink2:var(--dd-text-2);--ch-muted:var(--dd-text-3);--ch-tip-bg:#ededed;--ch-tip-fg:#0d0d0d}html[data-dash-dark]:not([data-ui-theme]) .board-ladder-btn{background:var(--dd-surface);border-color:var(--dd-border);color:var(--dd-text-2)}html[data-dash-dark]:not([data-ui-theme]) .board-ladder-btn:hover{background:var(--dd-surface-2)}html[data-dash-dark]:not([data-ui-theme]) .board-season{color:var(--dd-text-3)}html[data-dash-dark]:not([data-ui-theme]) .rank-rung{background:var(--dd-surface-2);border-color:var(--dd-border)}html[data-dash-dark]:not([data-ui-theme]) .rank-reached{background:color-mix(in srgb,var(--rank-c,#8f8f8f) 14%,var(--dd-surface));border-color:color-mix(in srgb,var(--rank-c,#8f8f8f) 40%,var(--dd-border))}html[data-dash-dark]:not([data-ui-theme]) .rank-name{color:var(--dd-text)}html[data-dash-dark]:not([data-ui-theme]) .rank-xp{color:var(--dd-text-3)}html[data-dash-dark]:not([data-ui-theme]) .board-join{background:var(--dd-surface);border-color:var(--dd-border)}html[data-dash-dark]:not([data-ui-theme]) .board-join p{color:var(--dd-text-2)}html[data-dash-dark]:not([data-ui-theme]) .board-join-row input{background:var(--dd-surface-2);border-color:var(--dd-border);color:var(--dd-text)}html[data-dash-dark]:not([data-ui-theme]) .board-join-row button,html[data-dash-dark]:not([data-ui-theme]) .board-signin-link{background:var(--dd-gold);color:var(--dd-ink)}html[data-dash-dark]:not([data-ui-theme]) .board-join-row button:hover,html[data-dash-dark]:not([data-ui-theme]) .board-signin-link:hover{background:#e6e6e6}html[data-dash-dark]:not([data-ui-theme]) .board-privacy{color:var(--dd-text-3)}html[data-dash-dark]:not([data-ui-theme]) .board-note{color:var(--dd-text-2)}html[data-dash-dark]:not([data-ui-theme]) .board-row{background:var(--dd-surface);border-color:var(--dd-border);color:var(--dd-text-2)}html[data-dash-dark]:not([data-ui-theme]) .board-me{background:rgba(143,29,47,.1);border-color:var(--dd-gold)}html[data-dash-dark]:not([data-ui-theme]) .board-name{color:var(--dd-text)}html[data-dash-dark]:not([data-ui-theme]) .board-medal-2{color:#bdbdbd}html[data-dash-dark]:not([data-ui-theme]) .board-medal-3{color:#9c9c9c}html[data-dash-dark]:not([data-ui-theme]) .board-title{color:var(--rank-c,var(--dd-text-2))}html[data-dash-dark]:not([data-ui-theme]) .board-books,html[data-dash-dark]:not([data-ui-theme]) .board-standing,html[data-dash-dark]:not([data-ui-theme]) .board-streak{color:var(--dd-text-3)}html[data-dash-dark]:not([data-ui-theme]) .board-score{color:var(--dd-gold)}html[data-dash-dark]:not([data-ui-theme]) .acct-actions button:hover,html[data-dash-dark]:not([data-ui-theme]) .acct-row:hover,html[data-dash-dark]:not([data-ui-theme]) .acct-signin:hover{background:hsla(0,0%,100%,.06)}html[data-dash-dark]:not([data-ui-theme]) .acct-oauth-btn{background:var(--dd-surface-2);border-color:var(--dd-border);color:var(--dd-text)}html[data-dash-dark]:not([data-ui-theme]) .acct-oauth-btn:hover{background:#242424}html[data-dash-dark]:not([data-ui-theme]) .acct-or:after,html[data-dash-dark]:not([data-ui-theme]) .acct-or:before{background:var(--dd-border)}html[data-dash-dark]:not([data-ui-theme]) .acct-form-row{background:var(--dd-surface-2);border-color:var(--dd-border)}html[data-dash-dark]:not([data-ui-theme]) .acct-form-row input{color:var(--dd-text)}html[data-dash-dark]:not([data-ui-theme]) .acct-actions .acct-pw-actions button[type=submit],html[data-dash-dark]:not([data-ui-theme]) .acct-form>button[type=submit]{background:var(--dd-gold);color:var(--dd-ink)}html[data-dash-dark]:not([data-ui-theme]) .acct-sent svg{color:var(--dd-gold)}@media (max-width:860px){html[data-dash-dark]:not([data-ui-theme]) .acct-actions,html[data-dash-dark]:not([data-ui-theme]) .acct-form,html[data-dash-dark]:not([data-ui-theme]) .acct-sent{background:var(--dd-surface);border-color:var(--dd-border);box-shadow:0 10px 30px rgba(0,0,0,.5)}}:root{--fj-styles-ok:1}