.angel-portal-overlay{position:fixed!important;inset:0!important;z-index:2147483000!important;pointer-events:none!important;overflow:hidden!important;visibility:visible!important;isolation:isolate;background:#08090e}
.portal-departing > :not(.angel-portal-overlay){visibility:hidden!important}
.portal-fragment{position:absolute!important;inset:0!important;overflow:visible!important;animation:angel-world-shatter calc(1.5s - var(--shard-delay)) cubic-bezier(.14,.55,.29,1) var(--shard-delay) both;transform-origin:50% 50%;background:#111017;will-change:transform,filter}
.portal-fragment:nth-child(even){animation-name:angel-world-shatter-negative}
.portal-crown{position:absolute;left:var(--portal-x);top:var(--portal-y);width:140px;height:140px;margin:-70px;border:2px solid #f4eaff;clip-path:polygon(50% 0,59% 38%,100% 18%,72% 50%,100% 82%,59% 62%,50% 100%,41% 62%,0 82%,28% 50%,0 18%,41% 38%);filter:drop-shadow(0 0 22px #e0c6ff);animation:angel-crown-rip 1.5s cubic-bezier(.13,.58,.2,1) both}
.portal-feather{position:absolute;left:var(--portal-x);top:var(--portal-y);width:5px;height:var(--feather-length);background:linear-gradient(#fff,#dfcaff 40%,transparent);clip-path:polygon(0 0,100% 0,33% 100%);transform-origin:0 0;filter:drop-shadow(0 0 11px #ead2ff);animation:angel-feather-launch calc(1.5s - var(--feather-delay)) cubic-bezier(.12,.7,.4,1) var(--feather-delay) both}
.portal-whiteout{position:absolute;inset:0;background:radial-gradient(ellipse at var(--portal-x) var(--portal-y),#fff,#e6d8f5 45%,#c7bed5);mix-blend-mode:screen;animation:angel-whiteout 1.5s ease-out both}
@keyframes angel-world-shatter{0%{transform:none;filter:none;opacity:1}16%{transform:translate(-5px,4px) skew(-4deg);filter:brightness(2.7)}30%{transform:translate(6px,-7px) skew(3deg);filter:contrast(2)}55%{opacity:1;filter:drop-shadow(0 0 15px #f0dbff);transform:translate(calc(var(--flight-x)*.3),calc(var(--flight-y)*.3)) rotate(calc(var(--flight-r)*.4)) scale(.82)}100%{opacity:0;filter:blur(8px) brightness(3);transform:translate(var(--flight-x),var(--flight-y)) rotate(var(--flight-r)) scale(.18)}}
@keyframes angel-world-shatter-negative{0%{transform:none;filter:none;opacity:1}16%{transform:translate(7px,-5px) skew(5deg);filter:invert(1)}30%{transform:translate(-5px,8px) skew(-3deg);filter:brightness(3)}55%{opacity:1;filter:invert(1) drop-shadow(0 0 18px #e6d3ff);transform:translate(calc(var(--flight-x)*.3),calc(var(--flight-y)*.3)) rotate(calc(var(--flight-r)*.4)) scale(.82)}100%{opacity:0;filter:blur(10px) brightness(3);transform:translate(var(--flight-x),var(--flight-y)) rotate(var(--flight-r)) scale(.18)}}
@keyframes angel-crown-rip{0%{opacity:0;transform:scale(.1) rotate(-25deg)}20%{opacity:1;transform:scale(1.6) rotate(6deg)}58%{opacity:1;transform:scale(7) rotate(40deg)}100%{opacity:0;transform:scale(20) rotate(80deg)}}
@keyframes angel-feather-launch{0%{opacity:0;transform:rotate(var(--feather-a)) scaleY(.1)}20%{opacity:1;transform:rotate(var(--feather-a)) translateY(-10vh) scaleY(.7)}68%{opacity:1;transform:rotate(var(--feather-a)) translateY(-35vh) scaleY(1.7)}100%{opacity:0;transform:rotate(var(--feather-a)) translateY(-90vh) scaleY(2.5)}}
@keyframes angel-whiteout{0%{opacity:0}13%{opacity:.5}25%{opacity:0}50%{opacity:.07}76%{opacity:.28}100%{opacity:1}}
@media(prefers-reduced-motion:reduce){.portal-whiteout{animation-duration:.08s}.portal-fragment,.portal-crown,.portal-feather{display:none}}
