@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}@keyframes gradient-shift{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes springIn{0%{opacity:0;transform:scale(.9)translateY(16px)}70%{transform:scale(1.02)translateY(-2px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes gentlePulse{0%,to{opacity:1}50%{opacity:.7}}@keyframes pageIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes revealDown{0%{opacity:0;transform:translateY(32px)}to{opacity:1;transform:translateY(0)}}.reading-progress{z-index:1001;background:0 0;height:3px;position:fixed;top:72px;left:0;right:0}.reading-progress__bar{background:linear-gradient(135deg,#7c3aed 0%,#2563eb 100%);width:0%;height:100%;transition:width .15s linear}
@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}@keyframes gradient-shift{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes springIn{0%{opacity:0;transform:scale(.9)translateY(16px)}70%{transform:scale(1.02)translateY(-2px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes gentlePulse{0%,to{opacity:1}50%{opacity:.7}}@keyframes pageIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes revealDown{0%{opacity:0;transform:translateY(32px)}to{opacity:1;transform:translateY(0)}}.back-to-top{z-index:999;color:#52525b;cursor:pointer;will-change:transform,opacity;opacity:0;pointer-events:none;background:#fff;border:none;border-radius:9999px;justify-content:center;align-items:center;width:48px;height:48px;transition:opacity .25s cubic-bezier(.16,1,.3,1),transform .5s cubic-bezier(.16,1,.3,1),background .25s cubic-bezier(.16,1,.3,1),color .25s cubic-bezier(.16,1,.3,1),box-shadow .4s cubic-bezier(.16,1,.3,1);display:flex;position:fixed;bottom:24px;right:24px;transform:translateY(12px)scale(.9);box-shadow:0 4px 16px -2px #0000000f}.back-to-top--visible{opacity:1;pointer-events:auto;transform:translateY(0)scale(1)}.back-to-top:hover{color:#fff;background:#7c3aed;transform:translateY(-2px)scale(1.05);box-shadow:0 8px 32px -8px #7c3aed40}.back-to-top:active{transform:scale(.95)}.back-to-top:focus-visible{outline-offset:2px;outline:2px solid #7c3aed}
