/* Monsha Kiosk v2.1 — lightweight vector ritual effects */
.transition-ritual{position:absolute;left:50%;top:47%;width:170px;height:110px;opacity:0;transform:translate(-50%,-42%) scale(.82);transition:opacity 140ms ease,transform 480ms cubic-bezier(.22,1,.36,1)}
.screen-transition.is-active .transition-ritual{opacity:1;transform:translate(-50%,-50%) scale(1)}
.transition-ritual__stone{position:absolute;bottom:12px;border-radius:46% 54% 40% 60%;background:radial-gradient(circle at 48% 65%,rgba(255,142,55,.9),transparent 13%),radial-gradient(circle at 55% 70%,rgba(255,94,34,.42),transparent 42%),linear-gradient(145deg,#4a4540,#171614);box-shadow:inset 0 -8px 15px rgba(0,0,0,.45),0 8px 28px rgba(255,118,45,.16);animation:stone-ignite 520ms ease-out both}
.transition-ritual__stone--one{left:22px;width:62px;height:48px;transform:rotate(-8deg)}.transition-ritual__stone--two{left:67px;bottom:8px;width:72px;height:54px;animation-delay:45ms}.transition-ritual__stone--three{right:11px;width:50px;height:42px;transform:rotate(12deg);animation-delay:90ms}
.transition-ritual__ember{position:absolute;left:31px;right:22px;bottom:6px;height:24px;border-radius:50%;background:radial-gradient(ellipse,rgba(255,150,48,.72),transparent 68%);filter:blur(8px);animation:ember-bloom 520ms ease-out both}
.transition-ritual__steam{position:absolute;bottom:54px;width:18px;height:52px;border-left:2px solid rgba(246,243,238,.34);border-radius:60% 0 0 60%;filter:blur(.4px);opacity:0;animation:transition-steam 620ms cubic-bezier(.22,1,.36,1) both}.transition-ritual__steam--one{left:48px;transform:rotate(7deg)}.transition-ritual__steam--two{left:82px;height:66px;animation-delay:55ms}.transition-ritual__steam--three{right:37px;height:46px;transform:rotate(-8deg);animation-delay:110ms}
@keyframes stone-ignite{from{filter:brightness(.62);transform:translateY(12px) scale(.88)}to{filter:brightness(1.25)}}@keyframes ember-bloom{from{opacity:0;transform:scaleX(.4)}to{opacity:1;transform:scaleX(1)}}@keyframes transition-steam{0%{opacity:0;transform:translateY(14px) scaleY(.45)}35%{opacity:.62}100%{opacity:0;transform:translateY(-20px) translateX(8px) scaleY(1.2)}}

.category-icon{position:absolute;z-index:1;top:16px;right:18px;width:58px;height:58px;display:grid;place-items:center;border:1px solid rgba(255,216,110,.18);border-radius:50%;background:rgba(18,17,16,.28);color:rgba(255,216,110,.76);backdrop-filter:blur(10px);transition:color 220ms,border-color 220ms,transform 300ms cubic-bezier(.22,1,.36,1)}.category-icon svg{width:42px;height:42px;overflow:visible}.category-icon path,.category-icon circle{transform-box:fill-box;transform-origin:center}.category-card:active .category-icon,.category-card:hover .category-icon{color:#fff0b2;border-color:rgba(255,216,110,.58);transform:scale(1.06)}
.category-card:active .category-icon--visit path:nth-child(n+2),.category-card:hover .category-icon--visit path:nth-child(n+2){animation:icon-water 700ms ease-in-out}.category-card:active .category-icon--steam svg,.category-card:hover .category-icon--steam svg{animation:icon-whisk 720ms cubic-bezier(.22,1,.36,1)}.category-card:active .category-icon--massage path,.category-card:hover .category-icon--massage path{animation:icon-hands 680ms ease-in-out}.category-card:active .category-icon--rituals path:first-child,.category-card:hover .category-icon--rituals path:first-child{animation:icon-drop 680ms cubic-bezier(.22,1,.36,1)}.category-card:active .category-icon--packages circle,.category-card:hover .category-icon--packages circle{animation:icon-ring 680ms cubic-bezier(.22,1,.36,1)}
@keyframes icon-water{50%{transform:translateX(4px)}}@keyframes icon-whisk{40%{transform:rotate(-8deg)}72%{transform:rotate(5deg)}}@keyframes icon-hands{45%{transform:translateY(-3px) scale(.97)}}@keyframes icon-drop{50%{transform:translateY(3px) scale(.94)}}@keyframes icon-ring{55%{transform:scale(1.12);opacity:.62}}

.section-ornament{width:min(280px,78vw);height:28px;display:block;margin-top:20px;color:rgba(255,216,110,.38)}.section-ornament path{fill:none;stroke:currentColor;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:420;stroke-dashoffset:420}.service-section.is-revealed .section-ornament path{animation:ornament-draw 1.15s .18s cubic-bezier(.22,1,.36,1) forwards}@keyframes ornament-draw{to{stroke-dashoffset:0}}
.section-tabs{overflow:hidden}.section-tabs__light{position:absolute;z-index:2;left:-22%;top:0;width:22%;height:1px;background:linear-gradient(90deg,transparent,var(--gold-b),transparent);opacity:0;filter:drop-shadow(0 0 8px rgba(255,216,110,.8))}.section-tabs.is-travelling .section-tabs__light{animation:nav-light-travel 650ms cubic-bezier(.22,1,.36,1)}@keyframes nav-light-travel{0%{left:-22%;opacity:0}18%{opacity:1}100%{left:100%;opacity:0}}

.service-card__steam{position:absolute;z-index:0;top:54px;right:84px;width:70px;height:80px;pointer-events:none;opacity:0}.service-card__steam i{position:absolute;bottom:0;width:13px;height:46px;border-left:1.5px solid rgba(246,243,238,.38);border-radius:60% 0 0 60%;opacity:0}.service-card__steam i:nth-child(1){left:8px}.service-card__steam i:nth-child(2){left:29px;height:58px}.service-card__steam i:nth-child(3){left:50px;height:40px}.service-card.is-flipped .service-card__steam{opacity:1}.service-card.is-flipped .service-card__steam i,.service-card:active .service-card__steam i{animation:service-steam 1.25s cubic-bezier(.22,1,.36,1) both}.service-card.is-flipped .service-card__steam i:nth-child(2),.service-card:active .service-card__steam i:nth-child(2){animation-delay:80ms}.service-card.is-flipped .service-card__steam i:nth-child(3),.service-card:active .service-card__steam i:nth-child(3){animation-delay:150ms}@keyframes service-steam{0%{opacity:0;transform:translateY(8px) scaleY(.55)}28%{opacity:.62}100%{opacity:0;transform:translate(9px,-28px) scaleY(1.12)}}
.contrast-flash{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:0;background:radial-gradient(circle at 28% 72%,rgba(255,112,28,.38),transparent 38%),radial-gradient(circle at 76% 28%,rgba(99,229,230,.4),transparent 38%);mix-blend-mode:screen}.service-card--contrast.is-flipped .contrast-flash{animation:heat-cold-flash 560ms ease-out both}@keyframes heat-cold-flash{0%{opacity:0;filter:hue-rotate(-15deg);transform:translateX(-14%)}38%{opacity:.82;filter:hue-rotate(-15deg)}100%{opacity:0;filter:hue-rotate(48deg);transform:translateX(14%)}}

.selection-particle{position:fixed;z-index:110;left:var(--particle-x);top:var(--particle-y);width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;pointer-events:none;background:#fff4c4;box-shadow:0 0 9px #fff,0 0 20px var(--gold-b),-16px 0 24px rgba(255,216,110,.55);animation:particle-to-builder 780ms cubic-bezier(.22,.9,.28,1) forwards}.selection-particle:after{content:"";position:absolute;right:7px;top:5px;width:54px;height:4px;border-radius:50%;background:linear-gradient(90deg,transparent,rgba(255,216,110,.72));transform-origin:right center}@keyframes particle-to-builder{0%{opacity:0;transform:translate(0,0) scale(.55)}12%{opacity:1;transform:translate(0,-12px) scale(1)}100%{opacity:0;transform:translate(var(--particle-dx),var(--particle-dy)) scale(.35)}}
.recovery-builder__summary>span{position:relative;overflow:hidden}.recovery-builder__total i{position:absolute;right:-25px;bottom:-29px;width:78px;height:78px;border:2px solid rgba(255,216,110,.8);border-radius:50%;opacity:0}.recovery-builder__total i.is-pulsing{animation:total-ring 760ms cubic-bezier(.22,1,.36,1)}.recovery-builder__seal{display:flex;align-items:center;gap:10px;margin:12px 0 2px;color:var(--gold-b);font-size:11px;text-transform:uppercase;letter-spacing:.07em}.recovery-builder__seal.is-refreshing{animation:recovery-seal 620ms cubic-bezier(.22,1,.36,1) both}.recovery-builder__seal>span{width:27px;height:27px;display:grid;place-items:center;flex:0 0 auto;border:1px solid rgba(255,216,110,.62);border-radius:50%;box-shadow:0 0 20px rgba(255,216,110,.14)}@keyframes total-ring{0%{opacity:0;transform:scale(.45)}45%{opacity:.82}100%{opacity:0;transform:scale(1.35)}}@keyframes recovery-seal{from{opacity:0;transform:translateY(10px) rotate(-2deg)}to{opacity:1;transform:none}}
.admin-list-modal .admin-service-list__row{opacity:0;transform:translateY(13px);animation:receipt-row-in 430ms var(--row-delay,0ms) cubic-bezier(.22,1,.36,1) forwards}.admin-list-panel__ready{width:52px;height:52px;display:grid;place-items:center;margin:24px auto 0;border:1px solid rgba(255,216,110,.62);border-radius:50%;color:var(--gold-b);box-shadow:0 0 0 0 rgba(255,216,110,.3);animation:receipt-ready 720ms 520ms cubic-bezier(.22,1,.36,1) both}.admin-list-panel__ready span{font-size:22px}@keyframes receipt-row-in{to{opacity:1;transform:none}}@keyframes receipt-ready{0%{opacity:0;transform:scale(.5);box-shadow:0 0 0 0 rgba(255,216,110,.3)}62%{opacity:1;transform:scale(1.08);box-shadow:0 0 0 15px rgba(255,216,110,0)}100%{opacity:1;transform:scale(1)}}

.hero-ripple{position:fixed;z-index:1;inset:0;overflow:hidden;pointer-events:none}.app--catalog .hero-ripple{display:none}.hero-ripple i{position:absolute;left:50%;top:56%;width:min(68vw,820px);aspect-ratio:2.3;border:1px solid rgba(77,143,140,.16);border-radius:50%;opacity:0;transform:translate(-50%,-50%) scale(.32);animation:idle-water-ripple 11s ease-out infinite;filter:blur(.2px)}.hero-ripple i:nth-child(2){animation-delay:5.5s}@keyframes idle-water-ripple{0%,14%{opacity:0;transform:translate(-50%,-50%) scale(.32)}28%{opacity:.42}72%,100%{opacity:0;transform:translate(-50%,-50%) scale(1.55)}}
.touch-wave{position:fixed;z-index:105;left:var(--touch-x);top:var(--touch-y);width:26px;height:26px;margin:-13px 0 0 -13px;border:1px solid rgba(255,216,110,.72);border-radius:50%;pointer-events:none;background:radial-gradient(circle,rgba(255,184,68,.32),transparent 67%);box-shadow:0 0 24px rgba(255,164,62,.32);animation:touch-heat-wave 720ms ease-out forwards}@keyframes touch-heat-wave{from{opacity:.9;transform:scale(.45)}to{opacity:0;transform:scale(5.8)}}

.qbon-token{position:relative;width:42px;height:42px;display:block;flex:0 0 auto;transform-style:preserve-3d;perspective:400px}.qbon-token__face,.qbon-token__edge{position:absolute;inset:2px;border-radius:50%}.qbon-token__edge{transform:translate(3px,1px);background:linear-gradient(90deg,#8b6410,#f7cb54);box-shadow:0 5px 14px rgba(0,0,0,.28)}.qbon-token__face{z-index:2;display:grid;place-items:center;border:2px solid #ffe498;background:radial-gradient(circle at 32% 24%,#fff3bd,transparent 14%),linear-gradient(145deg,#f6cd62,#b67b0a 72%);color:#25211a;box-shadow:inset 0 0 0 3px rgba(91,57,0,.2),inset 0 0 18px rgba(255,255,255,.36)}.qbon-token__face>span{font-family:"Oswald",sans-serif;font-size:20px;font-weight:700;line-height:1}.qbon-token__face i{position:absolute;bottom:6px;font-size:4px;font-style:normal;font-weight:900;letter-spacing:.13em}.gift-button .qbon-token{animation:token-nudge 6s cubic-bezier(.22,1,.36,1) infinite}.qbon-gift-scene .qbon-token{position:absolute;left:18px;top:5px;width:96px;height:96px;animation:token-reveal 1.35s cubic-bezier(.22,1,.36,1) both}.qbon-gift-scene .qbon-token__face>span{font-size:42px}.qbon-gift-scene .qbon-token__face i{bottom:13px;font-size:8px}@keyframes token-nudge{0%,76%,100%{transform:rotateY(0) translateY(0)}84%{transform:rotateY(180deg) translateY(-3px)}92%{transform:rotateY(360deg) translateY(0)}}@keyframes token-reveal{0%{opacity:0;transform:translateY(28px) rotateY(-160deg) scale(.58)}68%{opacity:1;transform:translateY(-5px) rotateY(18deg) scale(1.06)}100%{opacity:1;transform:none}}
@media(max-width:640px){.category-icon{width:52px;height:52px}.category-icon svg{width:37px;height:37px}.service-card__steam{right:70px}.recovery-builder__seal{font-size:9px}.admin-list-panel__ready{margin-top:16px}}
@media(prefers-reduced-motion:reduce){.transition-ritual *,.category-icon *,.section-ornament path,.section-tabs__light,.service-card__steam i,.contrast-flash,.selection-particle,.recovery-builder__total i,.recovery-builder__seal,.admin-service-list__row,.admin-list-panel__ready,.hero-ripple i,.touch-wave,.qbon-token{animation-duration:.01ms!important;animation-iteration-count:1!important}}

/* Removed in v2.2: touch heat wave, category pictograms, hot stones and Qbon token. */
.transition-ritual,.category-icon,.touch-wave,.qbon-token{display:none!important}
