#pnf-festive-canvas{position:fixed!important;inset:0!important;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;pointer-events:none!important;z-index:2147483647!important;contain:strict;opacity:1;transition:opacity 2s ease-in-out!important}
#pnf-festive-canvas.pnf-scroll-hidden{opacity:0!important}
@media(prefers-reduced-motion:reduce){#pnf-festive-canvas{display:none!important}}
/* Inauguration: fade up, scissors close at 4.5s, ribbon separates, fade out. */
#pnf-inauguration{position:fixed!important;inset:0!important;z-index:2147483647!important;pointer-events:none!important;overflow:hidden;--pnf-ribbon-height:clamp(44px,8vw,88px)}
#pnf-inauguration *{box-sizing:border-box;pointer-events:none!important}
#pnf-inauguration .pnf-ceremony-scene{position:absolute;inset:0;animation:pnf-ceremony-reveal 10s both}
#pnf-inauguration .pnf-ceremony-ribbon{position:absolute;top:calc(48% - var(--pnf-ribbon-height)/2);height:var(--pnf-ribbon-height);width:50%;background:linear-gradient(180deg,#8f061d 0%,#ef3450 12%,#c80d2e 30%,#e52142 48%,#b90828 78%,#87041d 100%);box-shadow:0 12px 30px #3b071c40,inset 0 2px 1px #ff94a6;animation-duration:10s;animation-fill-mode:both}
#pnf-inauguration .pnf-ceremony-ribbon:before,#pnf-inauguration .pnf-ceremony-ribbon:after{content:"";position:absolute;left:0;right:0;height:2px;background:linear-gradient(90deg,#dbb346,#fff0b1,#c69a36);box-shadow:0 1px 2px #73011955}
#pnf-inauguration .pnf-ceremony-ribbon:before{top:12%}#pnf-inauguration .pnf-ceremony-ribbon:after{bottom:12%}
#pnf-inauguration .pnf-ceremony-ribbon span{position:absolute;inset:0;background:linear-gradient(110deg,transparent 20%,#ffffff20 42%,transparent 65%);background-size:200% 100%;animation:pnf-ribbon-shine 4.5s ease both}
#pnf-inauguration .pnf-ribbon-left{left:0;transform-origin:left center;animation-name:pnf-ribbon-cut-left}
#pnf-inauguration .pnf-ribbon-right{right:0;transform-origin:right center;animation-name:pnf-ribbon-cut-right}
#pnf-inauguration .pnf-ceremony-scissors{position:absolute;left:50%;top:48%;width:clamp(140px,22vw,210px);filter:drop-shadow(0 7px 6px #21172655);animation:pnf-scissors-arrive 10s both}
#pnf-inauguration .pnf-ceremony-scissors svg{display:block;width:100%;height:auto;overflow:visible}
#pnf-inauguration .pnf-scissor-arm{transform-origin:100px 130px;animation-duration:10s;animation-fill-mode:both}
#pnf-inauguration .pnf-scissor-a{animation-name:pnf-scissor-close-a}#pnf-inauguration .pnf-scissor-b{animation-name:pnf-scissor-close-b}
#pnf-inauguration .pnf-cut-flash{position:absolute;left:50%;top:48%;width:9px;height:110px;background:#fff4c5;filter:blur(5px);border-radius:100%;animation:pnf-cut-glint 10s both}
@keyframes pnf-ceremony-reveal{0%{opacity:0;transform:translateY(65px)}10%,90%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(-20px)}}
/* Explicit holds prevent browsers interpolating opacity or movement before the cut. */
@keyframes pnf-ribbon-cut-left{0%,46%{opacity:1;transform:translate(0,0) rotate(0);clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}47%{opacity:1;transform:translate(0,0) rotate(0);clip-path:polygon(0 0,100% 0,98.4% 22%,100% 48%,98.8% 74%,100% 100%,0 100%)}62%{opacity:1}76%,100%{transform:translate(-20vw,180px) rotate(20deg);clip-path:polygon(0 0,100% 0,98.4% 22%,100% 48%,98.8% 74%,100% 100%,0 100%);opacity:0}}
@keyframes pnf-ribbon-cut-right{0%,46%{opacity:1;transform:translate(0,0) rotate(0);clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}47%{opacity:1;transform:translate(0,0) rotate(0);clip-path:polygon(0 0,100% 0,100% 100%,0 100%,1.2% 74%,0 48%,1.6% 22%)}62%{opacity:1}76%,100%{transform:translate(20vw,180px) rotate(-20deg);clip-path:polygon(0 0,100% 0,100% 100%,0 100%,1.2% 74%,0 48%,1.6% 22%);opacity:0}}
@keyframes pnf-scissors-arrive{0%,15%{opacity:0;transform:translate(-50%,50px)}30%,54%{opacity:1;transform:translate(-50%,-46%)}66%,100%{opacity:0;transform:translate(-50%,20px)}}
@keyframes pnf-scissor-close-a{0%,38%{transform:rotate(-25deg)}45%,52%{transform:rotate(0deg)}64%,100%{transform:rotate(-12deg)}}
@keyframes pnf-scissor-close-b{0%,38%{transform:rotate(25deg)}45%,52%{transform:rotate(0deg)}64%,100%{transform:rotate(12deg)}}
@keyframes pnf-cut-glint{0%,44%{opacity:0;transform:translate(-50%,-50%) scale(.1)}45%{opacity:1;transform:translate(-50%,-50%) scale(1)}49%,100%{opacity:0;transform:translate(-50%,-50%) scale(1.6)}}
#pnf-inauguration .pnf-ceremony-confetti{position:absolute;inset:0;overflow:hidden}
#pnf-inauguration .pnf-ceremony-confetti i{position:absolute;top:-25px;display:block;opacity:0;animation:pnf-after-cut-confetti var(--pnf-fall-duration) var(--pnf-fall-delay) linear both}
@keyframes pnf-after-cut-confetti{0%{opacity:0;transform:translate3d(0,-5vh,0) rotate(0deg)}5%{opacity:1}80%{opacity:1}100%{opacity:0;transform:translate3d(var(--pnf-drift),115vh,0) rotate(var(--pnf-spin))}}
@keyframes pnf-ribbon-shine{from{background-position:140% 0}to{background-position:-60% 0}}
@media(prefers-reduced-motion:reduce){#pnf-inauguration{display:none!important}}
