.reading-progress-container{top:var(--header-height);z-index:999;background:#0000000d;height:3px;position:fixed;left:0;right:0;overflow:hidden}.reading-progress-bar{background:linear-gradient(90deg, var(--saffron) 0%, var(--green) 100%);height:100%;transition:width .1s ease-out;position:relative;box-shadow:0 0 10px #ff993380}.reading-progress-bar:after{content:"";background:linear-gradient(90deg,#0000 0%,#ffffff4d 50%,#0000 100%);animation:2s infinite shimmer;position:absolute;inset:0}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.reading-progress-container{animation:.3s ease-in fadeIn}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@media print{.reading-progress-container{display:none!important}}@media (prefers-contrast:high){.reading-progress-bar{box-shadow:none;background:linear-gradient(90deg,#f60 0%,#0a0 100%)}}@media (prefers-reduced-motion:reduce){.reading-progress-bar{transition:none}.reading-progress-bar:after{animation:none}}
.floating-toc-btn{background:var(--accent-color);color:#fff;cursor:pointer;z-index:999;opacity:0;pointer-events:none;border:none;border-radius:50%;justify-content:center;align-items:center;width:50px;height:50px;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;bottom:90px;right:1rem;transform:scale(.8);box-shadow:0 4px 16px #0003}@media (min-width:480px){.floating-toc-btn{bottom:105px;right:1.5rem}}@media (min-width:768px){.floating-toc-btn{bottom:120px;right:2rem}}.floating-toc-btn.visible{opacity:1;pointer-events:auto;transform:scale(1)}.floating-toc-btn:hover{background:var(--accent-hover);transform:scale(1.05);box-shadow:0 6px 20px #3b82f666}.floating-toc-btn:active{transform:scale(.95)}@media (min-width:1024px){.floating-toc-btn{display:none}}.floating-toc-overlay{z-index:1000;background:#00000080;animation:.2s ease-out fadeIn;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.floating-toc-panel{background:var(--bg-color);z-index:1001;border-radius:20px 20px 0 0;flex-direction:column;max-height:65vh;animation:.3s cubic-bezier(.4,0,.2,1) slideUp;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 24px #0003}@media (min-width:320px){.floating-toc-panel{border-radius:22px 22px 0 0;max-height:70vh}}@media (min-width:480px){.floating-toc-panel{border-radius:24px 24px 0 0;max-height:75vh}}@media (min-width:640px){.floating-toc-panel{border-radius:28px 28px 0 0;width:90%;max-height:80vh;left:5%;right:5%}}@media (min-width:768px){.floating-toc-panel{border-radius:32px 32px 0 0;width:80%;max-height:85vh;left:10%;right:10%}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media (min-width:1024px){.floating-toc-overlay,.floating-toc-panel{display:none}}.floating-toc-header{border-bottom:1px solid var(--border-color);flex-shrink:0;justify-content:space-between;align-items:center;padding:1rem;display:flex}@media (min-width:320px){.floating-toc-header{padding:1.25rem 1.125rem}}@media (min-width:480px){.floating-toc-header{padding:1.5rem 1.25rem}}@media (min-width:640px){.floating-toc-header{padding:1.75rem 1.5rem}}@media (min-width:768px){.floating-toc-header{padding:2rem}}.floating-toc-header h3{font-size:1rem;font-weight:700;font-family:var(--font-sans);color:var(--text-color);margin:0}@media (min-width:480px){.floating-toc-header h3{font-size:1.0625rem}}@media (min-width:640px){.floating-toc-header h3{font-size:1.125rem}}@media (min-width:768px){.floating-toc-header h3{font-size:1.25rem}}.floating-toc-close{background:var(--secondary-bg);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;transition:all .2s;display:flex}@media (min-width:480px){.floating-toc-close{width:40px;height:40px}}@media (min-width:640px){.floating-toc-close{width:44px;height:44px}}@media (min-width:768px){.floating-toc-close{width:48px;height:48px}}.floating-toc-close:hover{background:var(--accent-color);color:#fff}.floating-toc-close:active{transform:scale(.95)}.floating-toc-nav{-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;gap:.375rem;padding:1rem;display:flex;overflow-y:auto}@media (min-width:320px){.floating-toc-nav{gap:.5rem;padding:1.125rem}}@media (min-width:480px){.floating-toc-nav{gap:.625rem;padding:1.25rem}}@media (min-width:640px){.floating-toc-nav{gap:.75rem;padding:1.5rem}}@media (min-width:768px){.floating-toc-nav{gap:.875rem;padding:2rem}}.floating-toc-link{color:var(--text-secondary);font-size:.8125rem;font-family:var(--font-sans);background:var(--secondary-bg);border:1px solid #0000;border-radius:10px;padding:.75rem .875rem;line-height:1.5;transition:all .2s;display:block;position:relative}@media (min-width:320px){.floating-toc-link{border-radius:11px;padding:.8125rem .9375rem;font-size:.875rem}}@media (min-width:480px){.floating-toc-link{border-radius:12px;padding:.875rem 1rem;font-size:.9375rem}}@media (min-width:640px){.floating-toc-link{border-radius:14px;padding:1rem 1.125rem;font-size:1rem}}@media (min-width:768px){.floating-toc-link{border-radius:16px;padding:1.125rem 1.25rem;font-size:1.0625rem}}.floating-toc-link:active{transform:scale(.98)}.floating-toc-link:hover{background:var(--bg-color);color:var(--accent-color);border-color:var(--accent-color)}.floating-toc-link.active{background:var(--accent-color);color:#fff;border-color:var(--accent-color);font-weight:600}.floating-toc-link.active:before{content:"";background:#fff;border-radius:0 2px 2px 0;width:4px;height:70%;position:absolute;top:50%;left:0;transform:translateY(-50%)}.floating-toc-link.toc-level-2{padding-left:.875rem}.floating-toc-link.toc-level-3{opacity:.9;padding-left:2rem;font-size:.9em}@media (min-width:320px){.floating-toc-link.toc-level-2{padding-left:.9375rem}.floating-toc-link.toc-level-3{padding-left:2.125rem}}@media (min-width:480px){.floating-toc-link.toc-level-2{padding-left:1rem}.floating-toc-link.toc-level-3{padding-left:2.25rem}}@media (min-width:640px){.floating-toc-link.toc-level-2{padding-left:1.125rem}.floating-toc-link.toc-level-3{padding-left:2.5rem}}@media (min-width:768px){.floating-toc-link.toc-level-2{padding-left:1.25rem}.floating-toc-link.toc-level-3{padding-left:2.75rem}}
.bookmark-btn{background:var(--bg-color);color:var(--text-color);font-size:.8125rem;font-weight:600;font-family:var(--font-sans);border:2px solid var(--border-color);cursor:pointer;border-radius:50px;justify-content:center;align-items:center;gap:.5rem;width:100%;padding:.625rem 1rem;transition:all .3s cubic-bezier(.4,0,.2,1);display:inline-flex;position:relative}@media (min-width:480px){.bookmark-btn{padding:.75rem 1.25rem;font-size:.875rem}}@media (min-width:640px){.bookmark-btn{padding:.75rem 1.5rem;font-size:.9375rem}}@media (min-width:1024px){.bookmark-btn{width:auto}}.bookmark-btn:hover{background:var(--secondary-bg);border-color:var(--accent-color);color:var(--accent-color);transform:translateY(-2px);box-shadow:0 4px 12px #3b82f633}.bookmark-btn:active{transform:translateY(0)}.bookmark-btn.bookmarked{background:var(--accent-color);color:#fff;border-color:var(--accent-color)}.bookmark-btn.bookmarked:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff;box-shadow:0 4px 12px #3b82f666}.bookmark-btn svg{transition:transform .3s}.bookmark-btn:hover svg{transform:scale(1.1)}.bookmark-btn.bookmarked svg{animation:.4s cubic-bezier(.4,0,.2,1) bookmarkPop}@keyframes bookmarkPop{0%{transform:scale(1)}50%{transform:scale(1.3)}to{transform:scale(1)}}.bookmark-text{display:inline}@media (min-width:320px){.bookmark-text{display:inline}}.bookmark-toast{background:var(--text-color);color:var(--bg-color);font-size:.875rem;font-weight:600;font-family:var(--font-sans);z-index:1000;border-radius:50px;align-items:center;gap:.5rem;padding:.875rem 1.5rem;animation:.3s cubic-bezier(.4,0,.2,1) toastSlideUp;display:flex;position:fixed;bottom:100px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #0000004d}@media (min-width:640px){.bookmark-toast{padding:1rem 1.75rem;font-size:.9375rem;bottom:120px}}@keyframes toastSlideUp{0%{opacity:0;transform:translate(-50%)translateY(20px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.bookmark-btn:focus-visible{outline:3px solid var(--accent-color);outline-offset:3px}@media (prefers-reduced-motion:reduce){.bookmark-btn,.bookmark-btn svg,.bookmark-toast{transition:none;animation:none}}
