/* The Guardian's Welcome Seal: checkout page preloader. Loaded on the checkout page only. A loading animation only: it never shows a confirmation, a payment status or any guest or booking detail. */
.blupurse-welcome-seal-preloader{position:fixed;left:0;right:0;bottom:0;top:var(--wp-admin--admin-bar--height,0px);z-index:99990;overflow:hidden;display:grid;place-items:center;color:#F8F6F1;font-family:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;background:radial-gradient(ellipse at 50% 36%,#003D2E 0%,#003D2E 55%,#003D2E 100%);--s:min(86vw,500px,58svh);transition:opacity .55s ease,visibility 0s .55s;animation:bp-ws-failsafe .5s ease 10.5s forwards}
.blupurse-welcome-seal-preloader.is-out{opacity:0;visibility:hidden;pointer-events:none}
@keyframes bp-ws-failsafe{to{opacity:0;visibility:hidden}}
.bp-ws__glow{position:absolute;left:50%;top:40%;width:min(120vw,900px);aspect-ratio:1;translate:-50% -50%;border-radius:50%;background:radial-gradient(circle,rgba(201,169,106,.22),transparent 60%);animation:bp-ws-breathe 4.5s ease-in-out infinite;pointer-events:none}
@keyframes bp-ws-breathe{0%,100%{opacity:.7;transform:scale(.96)}50%{opacity:1;transform:scale(1.04)}}
.bp-ws__in{position:relative;display:grid;justify-items:center;gap:clamp(10px,2.4svh,24px);padding:0 20px;width:100%}
.bp-ws__stage{position:relative;width:var(--s);height:calc(var(--s) * .93)}
.bp-ws__stars{position:absolute;inset:0;pointer-events:none}
.bp-ws__stars i{position:absolute;left:var(--x);top:var(--y);width:calc(14px * var(--z));height:calc(14px * var(--z));background:linear-gradient(135deg,#C9A96A,#C9A96A);-webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-50 -50 100 100'><path d='M0,-50C3,-16 16,-3 50,0C16,3 3,16 0,50C-3,16 -16,3 -50,0C-16,-3 -3,-16 0,-50Z'/></svg>") center/contain no-repeat;mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-50 -50 100 100'><path d='M0,-50C3,-16 16,-3 50,0C16,3 3,16 0,50C-3,16 -16,3 -50,0C-16,-3 -3,-16 0,-50Z'/></svg>") center/contain no-repeat;opacity:0;animation:bp-ws-twinkle 3.2s ease-in-out var(--d) infinite}
@keyframes bp-ws-twinkle{0%,100%{opacity:0;transform:scale(.4) rotate(0)}50%{opacity:.95;transform:scale(1) rotate(25deg)}}

/* the Guardian: the real emblem layers; entrance uses a backwards fill so later moves can transition */
.bp-ws__guardian{position:absolute;left:50%;top:0;z-index:3;width:calc(var(--s) * .42);aspect-ratio:1;transform:translateX(-50%) translateY(calc(var(--s) * .26)) scale(1.28);animation:bp-ws-enter 1s cubic-bezier(.2,.7,.2,1) .1s backwards;transition:transform 1s cubic-bezier(.5,0,.2,1)}
@keyframes bp-ws-enter{from{opacity:0;transform:translateX(-50%) translateY(calc(var(--s) * .26 + 28px)) scale(1)}}
.is-card .bp-ws__guardian{transform:translateX(-50%) translateY(0) scale(1)}
.is-go .bp-ws__guardian{transform:translateX(calc(-50% - var(--s) * .3)) translateY(calc(var(--s) * .3)) scale(.8)}
.bp-ws__sway{position:absolute;inset:0;transform:translateX(var(--gx,0)) rotate(var(--gr,0deg));transition:transform .8s cubic-bezier(.4,0,.2,1);filter:drop-shadow(0 0 22px rgba(201,169,106,.4))}
.is-star .bp-ws__sway{--gx:7%;--gr:5deg}
.bp-ws__hop{position:absolute;inset:0}
.is-cheer .bp-ws__hop{animation:bp-ws-hop .8s cubic-bezier(.3,.7,.3,1)}
@keyframes bp-ws-hop{0%{transform:translateY(0) rotate(0)}30%{transform:translateY(-9%) rotate(-5deg)}60%{transform:translateY(0) rotate(4deg)}80%{transform:translateY(-3%) rotate(-2deg)}100%{transform:translateY(0) rotate(0)}}
.bp-ws__emb{position:absolute;inset:0;animation:bp-ws-bob 3.4s ease-in-out infinite}
@keyframes bp-ws-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-3%)}}
.bp-ws__emb .abl{position:absolute;inset:0;display:block;background:linear-gradient(115deg,#C9A96A 0%,#C9A96A 30%,#C9A96A 46%,#C9A96A 54%,#C9A96A 100%);background-size:260% 100%;-webkit-mask:var(--m) center/100% 100% no-repeat;mask:var(--m) center/100% 100% no-repeat;animation:bp-ws-sweep 6s linear infinite}
.bp-ws__emb .ring{--m:var(--m-ring)}.bp-ws__emb .body{--m:var(--m-body)}
.bp-ws__emb .wing{--m:var(--m-wing);transform-origin:45% 40.2%;animation:bp-ws-sweep 6s linear infinite,bp-ws-flap 2.2s ease-in-out infinite}
@keyframes bp-ws-sweep{0%{background-position:120% 0}100%{background-position:-120% 0}}
@keyframes bp-ws-flap{0%,100%{transform:rotate(0)}45%{transform:rotate(-7deg)}70%{transform:rotate(3deg)}}
.bp-ws__gstar{position:absolute;left:52.34%;top:22.36%;width:5.58%;aspect-ratio:1;translate:-50% -50%;overflow:visible;filter:drop-shadow(0 0 6px rgba(201,169,106,.85));animation:bp-ws-gstar 2.4s ease-in-out infinite}
@keyframes bp-ws-gstar{0%,100%{transform:scale(1) rotate(0)}50%{transform:scale(1.35) rotate(18deg)}}

/* the reservation card: cream surface, deep green detailing. No names, ids, rooms or amounts. */
.bp-ws__card{position:absolute;left:50%;top:calc(var(--s) * .4);width:calc(var(--s) * .74);height:calc(var(--s) * .52);margin-left:calc(var(--s) * -.37);opacity:0;transform:translateY(42px) scale(.96);transition:opacity .8s ease,transform .9s cubic-bezier(.2,.7,.2,1)}
.is-card .bp-ws__card{opacity:1;transform:none}
.bp-ws__face{position:absolute;inset:0;box-sizing:border-box;padding:calc(var(--s) * .05) calc(var(--s) * .055);border-radius:calc(var(--s) * .04);background:linear-gradient(160deg,#F8F6F1,#F8F6F1);color:#003D2E;box-shadow:0 34px 60px -30px rgba(0,61,46,.75),inset 0 0 0 1px rgba(0,61,46,.2);transition:box-shadow .8s;overflow:hidden}
.bp-ws__face::before{content:"";position:absolute;inset:calc(var(--s) * .022);border:1px solid rgba(0,61,46,.3);border-radius:calc(var(--s) * .03);pointer-events:none}
.is-glow .bp-ws__face{box-shadow:0 34px 60px -30px rgba(0,61,46,.75),0 0 0 2px rgba(201,169,106,.7),0 0 46px rgba(201,169,106,.55)}
.bp-ws__orn{display:block;width:calc(var(--s) * .13);height:auto;margin:0 0 calc(var(--s) * .03)}
.bp-ws__ch{margin:0 0 calc(var(--s) * .015);font:400 clamp(.95rem,calc(var(--s) * .056),1.6rem)/1.15 "Playfair Display",Georgia,serif;letter-spacing:.08em;text-transform:uppercase;color:#003D2E}
.bp-ws__cs{margin:0;max-width:62%;font:500 clamp(.62rem,calc(var(--s) * .03),.85rem)/1.5 "Inter",system-ui,sans-serif;letter-spacing:.03em;color:rgba(0,61,46,.72)}
.bp-ws__seal{position:absolute;right:calc(var(--s) * .05);bottom:calc(var(--s) * .05);width:calc(var(--s) * .25);aspect-ratio:1;overflow:visible;transition:filter .8s}
.bp-ws__seal .r1,.bp-ws__seal .r2{fill:none;stroke:#C9A96A;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;transform:rotate(-90deg);transform-origin:50% 50%;transition:stroke-dashoffset 1s cubic-bezier(.4,0,.2,1)}
.bp-ws__seal .r1{stroke-width:3}.bp-ws__seal .r2{stroke-width:1.5;transition-delay:.25s}
.bp-ws__seal .disc{fill:#003D2E;opacity:0;transform-origin:50% 50%;transform:scale(.6);transition:opacity .6s,transform .7s cubic-bezier(.2,.8,.2,1)}
.bp-ws__seal .rays line{stroke:#C9A96A;stroke-width:2;stroke-linecap:round;opacity:0;transition:opacity .5s}
.bp-ws__seal .st{fill:#C9A96A;opacity:0;transform-origin:50% 50%;transform:scale(.2) rotate(-40deg);transition:opacity .5s,transform .8s cubic-bezier(.2,.9,.2,1)}
.is-seal .bp-ws__seal .r1,.is-seal .bp-ws__seal .r2{stroke-dashoffset:0}
.is-seal .bp-ws__seal .disc{opacity:1;transform:none;transition-delay:.5s}
.is-seal .bp-ws__seal .st{opacity:1;transform:scale(1) rotate(0);transition-delay:.8s}
.is-seal .bp-ws__seal .rays line{opacity:.9;transition-delay:1.05s}
.is-glow .bp-ws__seal{filter:drop-shadow(0 0 12px rgba(201,169,106,.95))}

/* the glowing star above the card flies down to become the seal */
.bp-ws__spark{position:absolute;left:66%;top:calc(var(--s) * .2);width:calc(var(--s) * .1);aspect-ratio:1;z-index:4;opacity:0;transform:scale(0) rotate(-30deg);filter:drop-shadow(0 0 12px rgba(201,169,106,.95));transition:opacity .6s,transform .7s cubic-bezier(.2,.9,.2,1)}
.is-star .bp-ws__spark{opacity:1;transform:scale(1) rotate(0);animation:bp-ws-spark 1.4s ease-in-out infinite}
@keyframes bp-ws-spark{0%,100%{filter:drop-shadow(0 0 8px rgba(201,169,106,.8))}50%{filter:drop-shadow(0 0 18px rgba(201,169,106,1))}}
.is-seal .bp-ws__spark{animation:none;opacity:0;transform:translate(var(--sx,0),var(--sy,0)) scale(.3);transition:transform .9s cubic-bezier(.5,0,.2,1),opacity .5s .55s}

/* text */
.bp-ws__title{margin:0;text-align:center;font:400 clamp(1.2rem,4.4vw,1.9rem)/1.25 "Playfair Display",Georgia,serif;letter-spacing:.04em;color:#F8F6F1;opacity:0;animation:bp-ws-fade .9s ease .45s forwards}
.bp-ws__sub{margin:0;text-align:center;font:500 clamp(.85rem,2.4vw,1rem)/1.5 "Inter",system-ui,sans-serif;letter-spacing:.04em;color:rgba(248,246,241,.72);opacity:0;animation:bp-ws-fade .9s ease .8s forwards}
@keyframes bp-ws-fade{to{opacity:1}}

/* the reveal: the seal expands into a soft warm light */
.bp-ws__burst{position:fixed;left:var(--dx,50%);top:var(--dy,60%);width:48px;aspect-ratio:1;border-radius:50%;translate:-50% -50%;background:radial-gradient(circle,#C9A96A 0%,#C9A96A 48%,#C9A96A 100%);transform:scale(0);opacity:0;pointer-events:none}
.is-expand .bp-ws__burst{opacity:1;transform:scale(70);transition:transform .95s cubic-bezier(.55,0,.8,.35),opacity .2s}

/* fast path: the page was ready before the story finished, so the same beats play briefly */
.is-fast .bp-ws__card,.is-fast .bp-ws__spark,.is-fast .bp-ws__guardian,.is-fast .bp-ws__seal .r1,.is-fast .bp-ws__seal .r2,.is-fast .bp-ws__seal .disc,.is-fast .bp-ws__seal .st,.is-fast .bp-ws__seal .rays line{transition-duration:.4s!important;transition-delay:0s!important}

html.bp-ws-on,html.bp-ws-on body{overflow:hidden}
@media (max-width:600px){.bp-ws__stars i:nth-child(n+6){display:none}}
@media (max-height:560px){.bp-ws__sub{display:none}}
@media (prefers-reduced-motion:reduce){
 .blupurse-welcome-seal-preloader,.blupurse-welcome-seal-preloader *{animation:none!important;transition-duration:.01s!important}
 .bp-ws__title,.bp-ws__sub{opacity:1}
 .bp-ws__stars,.bp-ws__spark{display:none}
 .blupurse-welcome-seal-preloader{animation:bp-ws-failsafe .5s ease 10.5s forwards!important}
}