
html{scroll-behavior:auto!important}body.spell-busy{overflow:hidden}
main>[hidden]{display:none!important}body.page-view main{min-height:65vh}body.page-view main>section:first-of-type{scroll-margin-top:110px}
nav a[aria-current="page"]{text-decoration:underline;text-underline-offset:6px}
.spell-screen{position:fixed;inset:0;z-index:9999;pointer-events:none;visibility:hidden;overflow:hidden;isolation:isolate}
.spell-screen.active{visibility:visible;pointer-events:auto}
.spell-wash{position:absolute;left:50%;top:45%;width:40px;height:40px;border-radius:50%;background:#244681;box-shadow:0 0 0 18px #d9b46055,0 0 100px 60px #7dabe9;transform:translate(-50%,-50%) scale(0)}
.spell-wizard{position:absolute;width:min(340px,65vw);aspect-ratio:780/926;left:50%;top:50%;transform:translate(-50%,-44%);opacity:0}
.spell-wizard img{position:absolute;width:100%;height:100%;object-fit:contain}
.spell-body{clip-path:polygon(0 0,74% 0,74% 100%,0 100%)}
.spell-staff{clip-path:polygon(74% 0,100% 0,100% 100%,74% 100%);transform-origin:78% 70%}
.spell-star{position:absolute;left:82%;top:27%;width:12px;height:12px;background:#ffdb80;box-shadow:0 0 24px 15px #ffe4a0;border-radius:50%;opacity:0}
.spell-screen.active .spell-wizard{animation:wizard-appear 1.15s both}
.spell-screen.active .spell-staff{animation:staff-cast .62s .1s both}
.spell-screen.active .spell-star{animation:star-light .7s .2s both}
.spell-screen.active .spell-wash{animation:spell-cover 1.25s .28s both}
.spell-screen.leaving{opacity:0;transition:opacity .25s ease}
@keyframes wizard-appear{0%{opacity:0;transform:translate(-50%,-38%) scale(.85)}15%,75%{opacity:1;transform:translate(-50%,-44%) scale(1)}100%{opacity:0;transform:translate(-50%,-44%) scale(1.15)}}
@keyframes staff-cast{0%,100%{transform:rotate(0)}20%{transform:rotate(-10deg)}40%{transform:rotate(9deg)}60%{transform:rotate(-8deg)}80%{transform:rotate(5deg)}}
@keyframes star-light{0%{opacity:0;transform:scale(0)}50%{opacity:1;transform:scale(2)}100%{opacity:0;transform:scale(6)}}
@keyframes spell-cover{0%,28%{transform:translate(-50%,-50%) scale(0)}72%,100%{transform:translate(-50%,-50%) scale(100)}}
@media(prefers-reduced-motion:reduce){.spell-screen{display:none!important}}
