/* Approved art/copy stays intact. Only loading, compositing and page turns. */
.loader{animation:loader-failsafe 0s 10s forwards}
.loader.off{transition:opacity .65s ease,visibility .65s}
.loader progress{transition:none}
.loader-ring{will-change:transform}
#page-peel{position:fixed;inset:0;width:100%;height:100%;z-index:25;pointer-events:none}
#page-peel[hidden]{display:none}
.peel-companion{position:fixed;top:0;left:0;z-index:26;pointer-events:none;transform-origin:50% 0;will-change:transform;filter:drop-shadow(2px 5px 3px #102d5025)}
.peel-companion[hidden],.reading .peel-companion,.paused .peel-companion{display:none}
@media(max-width:700px){.notes .section-title,.library .section-title{padding-top:56px}.reading .notes .section-title,.reading .library .section-title{padding-top:0}}
.peel-held{height:var(--peel-section-h)!important;min-height:var(--peel-section-h)!important}
#ai-world.enhanced .peel-held>.stage{position:fixed;top:var(--peel-top);left:0;width:100%;height:var(--peel-height);min-height:var(--peel-height);margin:0;visibility:visible;opacity:1;transform:none;will-change:clip-path}
.peel-source>.stage{z-index:12}
.peel-reveal>.stage{z-index:11;pointer-events:none!important}
.peel-reveal .motion-letter{animation:none!important;transform:none!important}
.peel-reveal .note-card{transform:none!important}
.notes.peel-prepared.active .motion-letter,.library.peel-prepared.active .motion-letter{animation:letter-calm 8s ease-in-out infinite;animation-delay:calc(var(--letter) * .16s)}
.reading #page-peel,.paused #page-peel{display:none}
/* Pause off-screen CSS work as well as the canvas / WebGL render loops. */
.enhanced .scene:not(.active):not(.peel-reveal) *,.enhanced .scene:not(.active):not(.peel-reveal) *::before{animation-play-state:paused!important}
.page-hidden *,.page-hidden *::before,.page-hidden *::after{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){#page-peel,.peel-companion{display:none}}
