/* CherryTour styles. Prefix .ct- */
.ct-root{--ct-bg:#0a070c;--ct-panel:#15101a;--ct-cherry:#e8455f;--ct-rose:#ff9ab0;--ct-gold:#f0cf9a;--ct-line:rgba(255,255,255,.09);
  position:fixed;inset:0;z-index:2147483000;pointer-events:none;font-family:Onest,system-ui,-apple-system,sans-serif;-webkit-tap-highlight-color:transparent;transition:opacity .25s}
.ct-root.ct-out{opacity:0}
.ct-root.ct-out *{pointer-events:none!important}
.ct-sh{position:fixed;background:rgba(10,7,12,.76);pointer-events:auto;z-index:1}
.ct-anim .ct-sh,.ct-anim .ct-ring{transition:left .35s ease,top .35s ease,width .35s ease,height .35s ease}
.ct-ring{position:fixed;z-index:1;border-radius:12px;box-shadow:0 0 0 1.5px var(--ct-rose),0 0 22px 2px rgba(232,69,95,.45);transition:opacity .25s;pointer-events:none}
.ct-ring::after{content:"";position:absolute;inset:0;border-radius:inherit;outline:2px solid var(--ct-cherry);animation:ct-ping 1.8s cubic-bezier(.2,.6,.3,1) infinite}
@keyframes ct-ping{0%{outline-offset:-2px;opacity:.95}100%{outline-offset:16px;opacity:0}}

.ct-card{position:fixed;z-index:3;box-sizing:border-box;padding:18px 18px 14px;color:#fff;pointer-events:auto;
  background:linear-gradient(180deg,#1d1522 0%,var(--ct-panel) 60%);border:1px solid var(--ct-line);border-radius:14px;
  box-shadow:0 20px 50px -10px rgba(0,0,0,.7),0 0 0 1px rgba(232,69,95,.06);
  opacity:0;transform:translateY(10px) scale(.98);transition:opacity .25s,transform .35s cubic-bezier(.2,1.3,.4,1),top .35s cubic-bezier(.3,1,.4,1),left .3s}
.ct-card.on{opacity:1;transform:none}
.ct-card::before{content:"";position:absolute;top:-1px;left:22px;right:22px;height:2px;border-radius:2px;background:linear-gradient(90deg,transparent,var(--ct-cherry) 30%,var(--ct-gold) 70%,transparent)}
.ct-card.ct-nudge{animation:ct-nudge .4s}
@keyframes ct-nudge{20%,60%{translate:-5px 0}40%,80%{translate:5px 0}}
.ct-tail{position:absolute;width:14px;height:14px;background:var(--ct-panel);border:1px solid var(--ct-line);transform:rotate(45deg);display:none}
.ct-card[data-side=bottom] .ct-tail{display:block;top:-8px;border-right:0;border-bottom:0;background:#1d1522}
.ct-card[data-side=top] .ct-tail{display:block;bottom:-8px;border-left:0;border-top:0}
.ct-x{position:absolute;top:8px;right:8px;width:32px;height:32px;border:0;border-radius:8px;background:none;color:rgba(255,255,255,.4);font-size:22px;line-height:1;cursor:pointer}
.ct-x:active{background:rgba(255,255,255,.06)}
.ct-t{font:600 16px/1.3 Unbounded,system-ui,sans-serif;letter-spacing:-.01em;margin:0 28px 8px 0}
.ct-tx{font-size:14.5px;line-height:1.5;color:rgba(255,255,255,.72)}
.ct-tx b{color:#fff;font-weight:600}
.ct-pr{display:flex;align-items:center;gap:10px;margin-top:14px}
.ct-n{font:600 11px/1 Unbounded,system-ui,sans-serif;color:var(--ct-gold);min-width:24px}
.ct-seg{flex:1;display:flex;gap:4px}
.ct-seg i{flex:1;height:3px;border-radius:3px;background:rgba(255,255,255,.1)}
.ct-seg i.ok{background:var(--ct-cherry)}
.ct-seg i.on{background:linear-gradient(90deg,var(--ct-cherry),var(--ct-rose))}
.ct-f{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px;min-height:40px;flex-wrap:wrap}
.ct-f button{font:inherit;cursor:pointer;border:0}
.ct-skip{background:none;color:rgba(255,255,255,.5);font-size:13.5px!important;padding:10px 4px}
.ct-next{background:var(--ct-cherry);color:#fff;font-weight:600!important;font-size:14px!important;padding:11px 20px;border-radius:10px;box-shadow:0 8px 20px -6px rgba(232,69,95,.6)}
.ct-next:active{transform:scale(.97)}
.ct-wait{display:inline-flex;align-items:center;gap:8px;color:var(--ct-rose);font-size:13.5px;font-weight:500;padding:10px 0}
.ct-wait i{width:7px;height:7px;border-radius:50%;background:var(--ct-cherry);box-shadow:0 0 8px var(--ct-cherry);animation:ct-dot 1.1s ease-in-out infinite}
@keyframes ct-dot{50%{opacity:.2;transform:scale(.7)}}
.ct-ss{display:none;flex-basis:100%;text-align:right;background:none;color:rgba(255,255,255,.45);font-size:12.5px!important;text-decoration:underline;text-underline-offset:3px;padding:0 0 2px}
.ct-ss.on{display:block;animation:ct-in .3s}
@keyframes ct-in{from{opacity:0}}

/* mascot */
.ct-mw{position:fixed;z-index:2;width:92px;height:101px;pointer-events:none;transition:left .45s cubic-bezier(.3,1.25,.5,1),top .35s cubic-bezier(.3,1,.4,1),opacity .2s}
.ct-pop,.ct-hop,.ct-bob,.ct-lean{width:100%;height:100%;transform-origin:50% 100%}
.ct-pop{animation:ct-pop .32s cubic-bezier(.34,1.7,.5,1) .12s both}
@keyframes ct-pop{from{transform:scale(.3) translateY(24px);opacity:0}}
.ct-hop.go{animation:ct-hop .5s ease-out}
@keyframes ct-hop{30%{transform:translateY(-12px) scale(.95,1.06)}62%{transform:scale(1.06,.94)}}
.ct-bob{animation:ct-bob 3.6s ease-in-out infinite}
@keyframes ct-bob{0%,100%{transform:translateY(4px)}50%{transform:translateY(-5px)}}
.ct-lean{transition:transform .5s cubic-bezier(.3,1.4,.5,1)}
.ct-m{display:block;width:100%;height:100%;overflow:visible;transition:transform .3s}
.ct-m.flip{transform:scaleX(-1)}
.ct-m [data-m],.ct-m [data-p]{display:none}
.ct-m[data-mood=neutral] [data-m=neutral],.ct-m[data-mood=smile] [data-m=smile],.ct-m[data-mood=grin] [data-m=grin],
.ct-m[data-mood=smug] [data-m=smug],.ct-m[data-mood=shocked] [data-m=shocked],
.ct-m[data-pose=idle] [data-p=idle],.ct-m[data-pose=point] [data-p=point]{display:inline}
.ct-eo{transform-box:fill-box;transform-origin:center;animation:ct-blink 4.6s infinite}
@keyframes ct-blink{0%,92%,100%{transform:scaleY(1)}95%{transform:scaleY(.08)}}
@media (prefers-reduced-motion:reduce){.ct-root *,.ct-root *::after{animation:none!important;transition:none!important}}
