#retentiolist-loader[hidden]{display:none!important}
#retentiolist-loader{position:fixed;inset:0;z-index:99999;display:grid;place-items:center;overflow:hidden;background:var(--color-bg);pointer-events:auto}
body.retentiolist-loading{overflow:hidden;animation:retentiolist-loader-unlock 0s 3.45s forwards}
#retentiolist-loader.is-active{animation:retentiolist-loader-exit .7s 2.65s ease-in-out forwards}
.retentiolist-loader-glow{position:absolute;inset:0;background:radial-gradient(circle at 50% 45%,color-mix(in srgb,var(--color-accent) 18%,transparent),transparent 65%)}
.retentiolist-loader-content{position:relative;z-index:3;text-align:center}
.retentiolist-loader-word{font-family:var(--font-fraunces),Georgia,serif;font-size:clamp(2.25rem,6vw,3.75rem);line-height:1;letter-spacing:-.025em;color:var(--color-accent);opacity:0;transform:translateY(-12px)}
.retentiolist-loader-status{margin-top:12px;font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;color:var(--color-soft);opacity:0;transform:translateY(-12px)}
.retentiolist-loader-bar{height:1px;width:120px;margin:16px auto 0;background:var(--color-line);overflow:hidden;opacity:0}
.retentiolist-loader-bar span{display:block;width:100%;height:100%;background:var(--color-accent);transform:scaleX(0);transform-origin:left}
.retentiolist-loader-circle{position:absolute;z-index:2;left:50%;top:50%;width:160vmax;height:160vmax;border-radius:50%;background:var(--color-dark);transform:translate(-50%,-50%) scale(0)}
.is-active .retentiolist-loader-word{animation:retentiolist-loader-enter .8s .1s cubic-bezier(.16,1,.3,1) forwards,retentiolist-loader-word-light .7s 1.25s ease-in-out forwards}
.is-active .retentiolist-loader-status{animation:retentiolist-loader-enter .8s .35s cubic-bezier(.16,1,.3,1) forwards,retentiolist-loader-detail-exit .3s 1.25s forwards}
.is-active .retentiolist-loader-bar{animation:retentiolist-loader-detail-enter .5s .5s forwards,retentiolist-loader-detail-exit .3s 1.25s forwards}
.is-active .retentiolist-loader-bar span{animation:retentiolist-loader-progress 1.3s .5s cubic-bezier(.87,0,.13,1) forwards}
.is-active .retentiolist-loader-circle{animation:retentiolist-loader-expand .9s 1.1s cubic-bezier(.87,0,.13,1) forwards}
@keyframes retentiolist-loader-enter{to{opacity:1;transform:translateY(0)}}
@keyframes retentiolist-loader-word-light{to{color:var(--color-bg)}}
@keyframes retentiolist-loader-detail-enter{to{opacity:1}}
@keyframes retentiolist-loader-detail-exit{to{opacity:0}}
@keyframes retentiolist-loader-progress{to{transform:scaleX(1)}}
@keyframes retentiolist-loader-expand{to{transform:translate(-50%,-50%) scale(1)}}
@keyframes retentiolist-loader-exit{to{opacity:0;visibility:hidden;pointer-events:none}}
@keyframes retentiolist-loader-unlock{to{overflow:visible}}
@media(prefers-reduced-motion:reduce){#retentiolist-loader{display:none!important}body.retentiolist-loading{overflow:visible}}
