.royal-mascot{position:fixed;left:0;top:0;width:var(--prince-width,104px);height:var(--prince-height,150px);z-index:40;pointer-events:none;direction:rtl;contain:layout style;will-change:transform;--face:1;--look:0deg}
.royal-mascot[hidden],.prince-speech[hidden],.prince-return[hidden]{display:none!important}
.prince-touch{display:block;width:100%;height:100%;padding:0;border:0;background:none;pointer-events:auto;cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:35%;clip-path:polygon(22% 0,78% 0,100% 45%,80% 100%,14% 100%,0 40%)}
.prince-touch:focus-visible{outline:2px dashed #ad7d32;outline-offset:-4px}
.prince-stage{display:block;width:100%;height:100%;transform-origin:50% 94%;position:relative}
.prince-art,.prince-head{width:100%;height:100%;object-fit:contain;display:block;filter:drop-shadow(0 3px 3px #68451624);user-select:none;-webkit-user-drag:none;pointer-events:none;transform:scaleX(var(--face));transform-origin:50% 94%}
.prince-head{position:absolute;inset:0;display:none;clip-path:inset(0 0 66% 0);transform-origin:50% 33%;transform:scaleX(var(--face)) rotate(var(--look))}
.royal-mascot[data-sprite="sit"] .prince-head{display:block}
.royal-mascot[data-sprite="sit"] .prince-art{clip-path:inset(34% 0 0 0)}
.prince-glints{position:absolute;left:25%;top:48%;width:65%;height:45%;color:#bc8b37;font-size:13px;opacity:0;pointer-events:none;letter-spacing:8px}
.prince-glints i{position:relative;top:22px;font-style:normal;font-size:9px}
.royal-mascot[data-state="hop"] .prince-glints{opacity:.7;animation:prince-glitter .6s ease-in-out infinite alternate}
.prince-land .prince-stage{animation:prince-land .38s ease-out}
.royal-mascot[data-state="celebrate"] .prince-art{animation:prince-cheer .65s ease-in-out 2}
.royal-mascot[data-state="wave"] .prince-art{animation:prince-greet .9s ease-in-out 1}
.prince-speech{position:fixed;z-index:41;max-width:205px;padding:9px 13px;border:1px solid #d8bd87;border-radius:17px;background:#fffcf5f5;color:#755332;box-shadow:0 5px 18px #70502915;font:600 12px/1.8 Cairo,sans-serif;direction:rtl;text-align:center;pointer-events:none}
.prince-return{position:static;display:flex;align-items:center;justify-content:center;gap:7px;width:max-content;max-width:calc(100% - 24px);margin:6px auto 10px;padding:6px 12px;border:1px solid #d8bd87;border-radius:16px;background:#fffcf5f2;cursor:pointer;color:#755332}
.prince-return img{display:block;width:28px;height:28px;object-fit:contain}
.prince-return span{display:block;font:600 12px/1.6 Cairo,sans-serif;white-space:nowrap}
.prince-dialog{box-sizing:border-box;width:calc(100% - 36px);max-width:360px;max-height:90dvh;overflow:auto;padding:26px 24px 22px;border:1px solid #d7b777;border-radius:25px;background:linear-gradient(145deg,#fffdf8,#f5ead7);box-shadow:0 20px 80px #38281b44;color:#755332;text-align:center;direction:rtl;font-family:Cairo,sans-serif}
.prince-dialog::backdrop{background:#33261465;backdrop-filter:blur(4px)}
.prince-dialog-portrait{display:block;width:92px;height:134px;object-fit:contain;margin:-5px auto 0}
.prince-dialog-kicker{margin:5px 0 8px;color:#a27a38;font-size:11px}
.prince-dialog h2{font-size:19px;line-height:1.7;margin:0 0 10px}
.prince-dialog p#princeDialogDescription{font-size:13px;line-height:2;margin:0 0 21px}
.prince-dialog-actions{display:grid;gap:9px}
.prince-dialog-actions button{padding:11px 14px;border-radius:14px;font:700 13px Cairo,sans-serif;cursor:pointer}
.prince-hide{border:1px solid #b18645;background:#ad7d32;color:#fffdf8}
.prince-stay{border:1px solid #dbc79e;background:#fffaf1;color:#755332}
@keyframes prince-land{0%{transform:scale(1.12,.83)}55%{transform:scale(.96,1.04)}100%{transform:scale(1)}}
@keyframes prince-cheer{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-16px) rotate(3deg)}}
@keyframes prince-greet{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}
@keyframes prince-glitter{from{transform:translate(-6px,8px) scale(.75);opacity:.25}to{transform:translate(5px,-5px) scale(1.05);opacity:.8}}
@keyframes prince-return-in{from{transform:translateY(12px);opacity:0}to{transform:translateY(0);opacity:1}}
@media(max-width:600px){.prince-speech{max-width:174px;font-size:11px;padding:7px 10px}.prince-dialog h2{font-size:18px}}
@media(prefers-reduced-motion:reduce){.prince-art,.prince-stage,.prince-glints,.prince-return{animation:none!important}.prince-glints{display:none}}

.prince-popup[hidden]{display:none!important}
.prince-popup{display:flex;align-items:center;justify-content:center;gap:12px;margin:10px 0 0;padding:8px 12px;border:1px solid #d8bd87;border-radius:18px;background:linear-gradient(135deg,#fffcf5,#f5ead7);color:#755332;direction:rtl}
.prince-popup img{width:44px;height:62px;object-fit:contain;flex:none}
.prince-popup p{flex:1;margin:0;font:600 12px/1.8 Cairo,sans-serif;text-align:center}
.prince-popup[data-reaction="wave"] img{animation:prince-greet 1.4s ease-in-out 2}
.prince-popup[data-reaction="celebrate"] img{animation:prince-cheer .6s ease-in-out 4}
@media(prefers-reduced-motion:reduce){.prince-popup img{animation:none!important}}

.prince-popup[data-reaction="bow"] img{animation:prince-nod .65s ease-in-out 1;transform-origin:50% 90%}
@keyframes prince-nod{0%,100%{transform:rotate(0)}50%{transform:rotate(-5deg)}}
@media(prefers-reduced-motion:reduce){.prince-popup[data-reaction] img{animation:none!important}}


.royal-mascot[data-state="bow"] .prince-stage{animation:prince-nod .65s ease-in-out 1}
.royal-mascot[data-state="think"] .prince-stage{animation:prince-thought 1.5s ease-in-out 1}
.prince-popup[data-tip] img{animation:prince-guide-in .65s ease-out 1}
@keyframes prince-thought{0%,100%{transform:rotate(0)}40%{transform:rotate(-2deg)}70%{transform:rotate(1deg)}}
@keyframes prince-guide-in{from{transform:translateX(12px) rotate(-3deg)}to{transform:translateX(0) rotate(0)}}
@media(prefers-reduced-motion:reduce){.prince-popup[data-tip] img{animation:none!important}}

.royal-mascot[data-state="sit"] .prince-stage{animation:prince-breathe 4s ease-in-out infinite}
@keyframes prince-breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.008,1.018)}}
.prince-help{border:1px solid #b18645;background:#fffaf1;color:#755332}

.prince-context-help{display:block;margin:4px auto 7px;padding:4px 10px;border:1px solid #d8bd87;border-radius:14px;background:#fffaf1;color:#755332;font:600 11px Cairo,sans-serif;cursor:pointer}
.prince-notice{margin:10px 0 14px;max-width:620px;box-sizing:border-box}
.prince-notice[hidden]{display:none!important}
.prince-sleep{display:none;position:absolute;top:0;right:18%;font:600 12px Georgia,serif;color:#9c7c4d;letter-spacing:3px}
.royal-mascot[data-sleeping] .prince-sleep{display:block}
.royal-mascot[data-sleeping] .prince-stage{animation-duration:8s}
.royal-mascot.prince-lite .prince-stage{animation:none}
.royal-mascot.prince-lite[data-reaction="wave"] .prince-stage,.royal-mascot.prince-lite[data-reaction="bow"] .prince-stage,.royal-mascot.prince-lite[data-reaction="celebrate"] .prince-stage{animation:prince-nod .65s ease-in-out 1}
.royal-mascot:not([data-sleeping]) .prince-head{animation:prince-blink 7s ease-in-out infinite}
@keyframes prince-blink{0%,46%,50%,100%{scale:1 1}48%{scale:1 .94}}
.royal-mascot.prince-lite .prince-head{animation:none}
@media(prefers-reduced-motion:reduce){.prince-head{animation:none!important}}
.prince-tour[hidden],.prince-tour-stop[hidden]{display:none!important}
.prince-tour{position:fixed;z-index:10004;box-sizing:border-box;display:flex;align-items:center;gap:10px;width:260px;max-width:calc(100vw - 20px);padding:9px 12px;border:1px solid #d8bd87;border-radius:17px;background:#fffcf5;color:#755332;box-shadow:0 5px 18px #70502922;direction:rtl;pointer-events:none}
.prince-tour img{flex:none;width:36px;height:52px;object-fit:contain}
.prince-tour p{margin:0;min-width:0;font:600 12px/1.8 Cairo,sans-serif;text-align:center}
.prince-tour-stop{position:fixed;z-index:100002;top:8px;left:50%;transform:translateX(-50%);padding:5px 13px;border:1px solid #d8bd87;border-radius:16px;background:#fffaf1;color:#755332;cursor:pointer;font:600 12px Cairo,sans-serif}
.prince-tour-stop:focus-visible{outline:2px solid #ad7d32;outline-offset:2px}

/* A full-size prince speaking beside the actual shopping control. */
.prince-character[hidden]{display:none!important}
.prince-character{position:fixed;z-index:100001;display:block;width:var(--actor-width,104px);height:var(--actor-height,150px);max-width:none;margin:0;padding:0;border:0;border-radius:0;background:none;box-shadow:none;pointer-events:none;direction:rtl;box-sizing:border-box}
.prince-character img{display:block;width:100%;height:100%;object-fit:contain;transform:scaleX(var(--actor-face,1));filter:drop-shadow(0 3px 3px #68451624);animation:none!important}
.prince-character p{position:absolute;box-sizing:border-box;max-width:none;margin:0;padding:9px 13px;border:1px solid #d8bd87;border-radius:22px;background:#fffcf5;color:#755332;box-shadow:0 4px 12px #70502912;font:600 12px/1.8 Cairo,sans-serif;text-align:center}
.prince-character p::after{content:"";position:absolute;width:11px;height:11px;background:#fffcf5;transform:rotate(45deg)}
.prince-character[data-speech-side="right"] p::after{left:-6px;top:var(--speech-neck,22px);border-left:1px solid #d8bd87;border-bottom:1px solid #d8bd87}
.prince-character[data-speech-side="left"] p::after{right:-6px;top:var(--speech-neck,22px);border-right:1px solid #d8bd87;border-top:1px solid #d8bd87}
.prince-character[data-speech-side="above"] p::after{left:var(--speech-tail,50%);bottom:-6px;border-right:1px solid #d8bd87;border-bottom:1px solid #d8bd87}
@media(max-width:600px){.prince-character p{padding:7px 10px;font-size:11px}}

.prince-whatsapp{display:block;padding:11px 14px;border:1px solid #c9d8bd;border-radius:14px;background:#f2f8ec;color:#426738;text-decoration:none;font:700 13px Cairo,sans-serif}
.prince-whatsapp:hover{background:#e8f2df}
.prince-whatsapp:focus-visible{outline:2px solid #426738;outline-offset:2px}

.prince-speech::after{content:"";position:absolute;left:50%;bottom:-6px;width:10px;height:10px;background:#fffcf5;border-right:1px solid #d8bd87;border-bottom:1px solid #d8bd87;transform:rotate(45deg)}
.prince-speech[data-below="true"]::after{top:-6px;bottom:auto;border:0;border-left:1px solid #d8bd87;border-top:1px solid #d8bd87}
