/* A pulse between pages. Scrolling remains native throughout the site. */
@property --page-opening { syntax: '<length>'; inherits: false; initial-value: 0px; }
html.pp-page-leaving::after,html.pp-page-arriving::after{content:"";position:fixed;inset:0;z-index:9998;background:#F4F5FA;pointer-events:none}
html.pp-page-leaving::before,html.pp-page-arriving::before{content:"";position:fixed;left:50%;top:50%;width:min(56vw,420px);height:120px;z-index:9999;pointer-events:none;background:center/contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 440 110'%3E%3Cpath d='M8 55H165L195 15L225 95L255 55H418' fill='none' stroke='%23E0407B' stroke-width='5' stroke-linecap='round' stroke-linejoin='round'/%3E%3Ccircle cx='426' cy='55' r='7' fill='%23E0407B'/%3E%3C/svg%3E");transform:translate(-50%,-50%)}
html.pp-page-leaving::after{animation:page-cover 280ms ease-out both}
html.pp-page-leaving::before{animation:page-heartbeat 320ms ease-in-out both}
html.pp-page-arriving::after{mask-image:radial-gradient(circle at 50% 50%,transparent var(--page-opening),#000 calc(var(--page-opening) + 2px));animation:page-open 460ms cubic-bezier(.22,.7,.2,1) both}
html.pp-page-arriving::before{animation:page-point 180ms ease-out both}
@keyframes page-cover{from{opacity:0}to{opacity:1}}
@keyframes page-heartbeat{0%{opacity:0;transform:translate(-50%,-50%) scale(.96)}40%{opacity:1;transform:translate(-50%,-50%) scale(1.06)}65%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:1;transform:translate(-50%,-50%) scale(.035)}}
@keyframes page-open{from{--page-opening:0px;opacity:1}to{--page-opening:150vmax;opacity:0}}
@keyframes page-point{from{opacity:1;transform:translate(-50%,-50%) scale(.035)}to{opacity:0;transform:translate(-50%,-50%) scale(.06)}}
@media(prefers-reduced-motion:reduce){html.pp-page-leaving::before,html.pp-page-leaving::after,html.pp-page-arriving::before,html.pp-page-arriving::after{display:none}}
