.scene { user-select: none; -webkit-user-select: none; }
.scene img { pointer-events: none; user-select: none; -webkit-user-drag: none; }
.snack-counter { --x: 12.2%; --y: 64%; border-color: #d2ad82; }
.scene:not([data-space="hall"],[data-space="lobby"]) .snack-counter { display: none; }
#cafe-boot { position: fixed; inset: 0; z-index: 50; width: 100%; height: 100dvh; background: transparent; border-radius: 0; box-shadow: none; pointer-events: none; }
#cafe-boot[hidden] { display: none; }
#cafe-boot .u256-hf { background: #27241f; }
#cafe-boot .u256-ct { inset: auto max(24px, 8vw) max(24px, 9vh); }
#cafe-boot .u256-bn { top: max(24px, 8vh); left: max(24px, 8vw); color: #e8d3b6; font: 24px var(--display); }
#cafe-boot .u256-bn small { font: 12px var(--mono); }
#cafe-boot .u256-n { margin-top: 8px; font-size: clamp(58px, 13vw, 118px); }
#cafe-boot .u256-br i { transition: width .23s ease; background: #c9d5bb; }
#snacks, #snack-board, #snack-coupon { width: min(460px, calc(100% - 24px)); }
#snacks .dialog-inner, #snack-board .dialog-inner, #snack-coupon .dialog-inner { display: grid; gap: 10px; }
:is(#snacks,#snack-board,#snack-coupon) :is(h2,.panel-copy,.dialog-note) { margin-block: 0; }
.shop-links { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.shop-links .primary { width: auto; padding: 8px 12px; }
.menu-search { display: flex; align-items: center; gap: 8px; font-size: 12px; color: #e0d0b7; }
.menu-search input { flex: 1; min-width: 0; border: 1px solid #847662; background: #24221e; color: #f0e4d2; border-radius: 5px; padding: 8px 10px; font: inherit; }
.shop-reward { display: flex; align-items: center; gap: 6px; padding: 7px 10px; background: #343d30; color: #e1ead6; font-size: 12px; }
.shop-reward[hidden] { display: none; }
.u227, .u242 {
  --ux-surface: #34302b; --ux-surface-2: #2a2825; --ux-ink: #f0e4d2;
  --ux-ink-2: #d6cbb9; --ux-ink-3: #bcb09f; --ux-line: #726654;
  --ux-accent: #a8ba97; --ux-shadow-strong: #0008;
}
#order-menu { width: 100%; height: clamp(170px, 38dvh, 345px); border-radius: 7px; }
#order-menu .u242-cr { isolation: isolate; }
#order-menu .u242-ul { bottom: 9px; background: #4b5241; }
#order-menu .u242-it i { width: 34px; height: 34px; display: grid; place-items: center; background: #494039; font-style: normal; }
#order-menu .u242-it span { font-weight: 500; }
#order-menu .u242-it .item-count { margin: 0; color: #f1e5d3; font-variant-numeric: tabular-nums; }
#order-menu .order-controls { flex: none; display: flex; align-items: center; gap: 7px; }
.order-controls button { min-width: 30px; min-height: 30px; border: 1px solid #776955; border-radius: 4px; background: #40382d; color: #f2e7d8; }
.order-controls button:disabled { opacity: .42; }
#order-menu .u242-end { height: 96px; }
.shop-menu-empty { padding: 14px 18px; font-size: 13px; }
#snack-live { width: 100%; height: 320px; border-radius: 8px; }
#snack-live .u227-tb { overflow-y: auto; border-radius: 5px; }
#snack-live .u227-hr { position: sticky; top: 0; z-index: 2; background: var(--ux-surface-2); }
#snack-live .u227-hr, #snack-live .u227-r { grid-template-columns: minmax(0,2fr) .52fr .8fr; gap: 5px; }
#snack-live .u227-hd b i { background: #a8ba97; box-shadow: 0 0 0 3px #a8ba9735; }
.shop-board-empty { position: absolute; top: 100px; left: 24px; font-size: 13px; color: var(--ux-ink-3); }
#coupon-card { width: 100%; height: 278px; border-radius: 8px; background: #d8c8b1; }
#coupon-card .u353-cd { top: 18px; }
#coupon-card .u353-fr { background: #f3ebdd; }
#coupon-card .u353-bk { background: #e6cfad; }
#coupon-card .u353-gd { max-width: 270px; }
#coupon-card .u353-bk svg { fill: none; stroke: #865b43; stroke-width: 1.4; }
#coupon-card .u353-stp { display: grid; place-items: center; z-index: 2; width: 40px; height: 46px; color: #f6e0b4; background: #635043; border-radius: 14px 14px 5px 5px; border-bottom: 6px solid #8f6148; }
.delivery-scene, .delivery-banner { color: #372c24; background: #f4ddba; border: 1px solid #a6825d; box-shadow: 0 3px #49382a; z-index: 5; pointer-events: none; }
.delivery-scene { position: absolute; left: var(--x); top: var(--y); padding: 4px 7px; border-radius: 4px; animation: delivery-land .65s cubic-bezier(.23,.9,.45,1.2) both; }
.delivery-banner { position: sticky; bottom: 4px; display: flex; align-items: center; gap: 10px; width: fit-content; margin: 0 auto 9px; padding: 8px 14px; border-radius: 4px; font-size: 13px; animation: delivery-land .4s ease-out both; }
.delivery-banner span { font-size: 21px; }
@keyframes delivery-land { from { opacity: 0; transform: translate(-16px,-26px) scale(.65); } to { opacity: 1; transform: translate(0,-10px) scale(1); } }
@media (prefers-reduced-motion: reduce) {
  .delivery-banner, .delivery-scene { animation: none; }
  #coupon-card .u353-in, #cafe-boot .u256-ct { transition: none; }
}
