/* Door threshold and counter share the same image plane as the walking guest. */
.entry-room-layer{position:absolute;inset:0;background-size:100% 100%;background-repeat:no-repeat}
.entry-beat-1 .entry-open{animation:door-open-frame calc(.65s * var(--entry-rate,1)) ease both}
.entrance-room .arrival-walker{position:absolute;left:44%;bottom:8%;width:31%;height:auto;aspect-ratio:1;animation:none;z-index:3;filter:drop-shadow(4px 7px 3px #423c2935)}
.entrance-room .arrival-walker:before{content:'';position:absolute;left:19%;right:19%;bottom:1%;height:6%;border-radius:50%;background:#30352630;filter:blur(4px);z-index:-1}
.entrance-room .arrival-sprite{animation:none}
.entry-beat-1 .arrival-walker{left:16%;bottom:33%;width:22%;animation:through-the-door calc(.9s * var(--entry-rate,1)) calc(.2s * var(--entry-rate,1)) ease both}
.entry-beat-2 .arrival-walker{transform-origin:0 100%;animation:walk-to-counter calc(2.6s * var(--entry-rate,1)) cubic-bezier(.24,.1,.25,1) both}
.entry-beat-2 .arrival-sprite{animation:cafe-footsteps calc(.325s * var(--entry-rate,1)) ease-in-out 8 alternate}
.entry-bell{position:absolute;left:24%;top:17%;transform:translateX(-50%) rotate(-3deg);padding:7px 15px;border-radius:30px;background:#ffedc9dc;color:#8a5f36;box-shadow:0 4px 9px #283a3033;font-size:14px;animation:chime-appear calc(.7s * var(--entry-rate,1)) both;z-index:5}
.entry-order .service-order-slip{left:9%;top:34%;width:29%;z-index:5}
.entry-order .service-order-slip h2{font-size:clamp(18px,2.1vw,29px)}
.entrance-room .scene-art{overflow:hidden}
@keyframes door-open-frame{from{opacity:0}to{opacity:1}}
@keyframes through-the-door{from{opacity:0;translate:0 -2%;scale:.94}to{opacity:1;translate:0 0;scale:1}}
@keyframes walk-to-counter{from{transform:translate(-90.32%,-45.36%) scale(.70968)}to{transform:translate(0,0) scale(1)}}
@keyframes cafe-footsteps{from{transform:translateY(0) rotate(-.4deg)}to{transform:translateY(-.65%) rotate(.4deg)}}
@media(max-width:650px) and (orientation:portrait){.entry-bell{font-size:9px;padding:4px 8px}.entry-order .service-order-slip{left:7%;top:27%;width:33%;padding:11px 13px}.entry-order .service-order-slip h2{font-size:16px}.entry-order .service-order-slip>span,.entry-order .service-order-slip small{font-size:9px}.entry-order .service-order-slip p{font-size:10px}}
@media(prefers-reduced-motion:reduce){.entry-beat-1 .entry-open,.entry-beat-1 .arrival-walker,.entry-beat-2 .arrival-walker,.entry-beat-2 .arrival-sprite,.entry-bell{animation:none}.entry-beat-2 .arrival-walker{left:44%;bottom:8%;width:31%}}

/* The ready guest itself is the reception control, in the room's image coordinates. */
.entrance-room .arrival-sprite{display:block}
.entrance-room button.arrival-walker{appearance:none;padding:0;margin:0;border:0;border-radius:0;background:transparent;box-shadow:none;outline:none;cursor:pointer;color:inherit;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.entrance-room button.arrival-walker:focus-visible{outline:3px dashed #fff0c9;outline-offset:8px;border-radius:44% 44% 24% 24%}
.entrance-room button.arrival-walker:hover .arrival-sprite{filter:drop-shadow(0 0 9px #ffe5ad85)}
.guest-greet-cue{position:absolute;left:50%;top:-3%;transform:translate(-50%,-100%) rotate(-3deg);white-space:nowrap;background:#fff0d6;color:#774c2d;font-weight:700;font-size:clamp(11px,1.3vw,19px);padding:9px 17px;border:1px dashed #ba8a56;border-radius:22px;box-shadow:2px 4px 6px #303e3330;animation:guest-invite 2calc(.2s * var(--entry-rate,1)) ease-in-out infinite}
.guest-greet-cue:after{content:'';position:absolute;top:100%;left:48%;border:6px solid transparent;border-top-color:#fff0d6}
.guest-greet-cue>span{margin-left:6px;color:#bd703d}
.entry-click-hint,.entry-wait-hint{font-size:13px;color:#fae4bc;letter-spacing:.04em}
#app[data-paused="true"] .guest-greet-cue{animation-play-state:paused}
@keyframes guest-invite{0%,100%{translate:0 0}50%{translate:0 -4px}}
@media(max-width:650px) and (orientation:portrait){.guest-greet-cue{font-size:11px;padding:6px 11px}.entry-click-hint,.entry-wait-hint{font-size:12px}}
@media(prefers-reduced-motion:reduce){.guest-greet-cue{animation:none}}

.entrance-room:not(.entry-ready) .entry-open,.entrance-room:not(.entry-ready) .arrival-walker,.entrance-room:not(.entry-ready) .arrival-sprite,.entrance-room:not(.entry-ready) .entry-bell{animation-play-state:paused}
