/* Runtime visual-state alignment.
   This file is loaded after style.css so these rules are the final source of truth. */

.painted-cafe .scene-layer,
.painted-cafe .hotspot img,
.painted-cafe .hand-cup,
.painted-parcel .parcel-layer,
.painted-parcel .parcel-hotspot img,
.painted-village .village-layer,
.painted-village .village-hotspot img,
.inventory img,
.scene-inventory img {
  image-rendering: auto !important;
}

.painted-cafe .table,
.painted-cafe .kitty img,
.painted-cafe .lemon-tea img,
.painted-cafe .receipt img,
.painted-cafe .napkin img,
.painted-cafe .cup-sleeve img,
.painted-cafe .football-phone img {
  opacity: 0 !important;
}

.painted-cafe .americano {
  left: 52.2% !important;
  top: 54.5% !important;
  width: 11.4% !important;
  height: 34% !important;
  z-index: 19 !important;
}

.painted-cafe .americano img,
.painted-cafe .philosophy-book img {
  opacity: 1 !important;
}

.painted-cafe .lemon-tea {
  left: 6.5% !important;
  top: 64% !important;
  width: 16% !important;
  height: 25% !important;
}

.painted-cafe .receipt {
  left: 25.4% !important;
  top: 66.5% !important;
  width: 10% !important;
  height: 23% !important;
}

.painted-cafe .napkin {
  left: 38% !important;
  top: 69% !important;
  width: 15.5% !important;
  height: 18% !important;
}

.painted-cafe .cup-sleeve {
  left: 59% !important;
  top: 70.5% !important;
  width: 13% !important;
  height: 17.5% !important;
}

.painted-cafe .football-phone {
  left: 69% !important;
  top: 68.5% !important;
  width: 16% !important;
  height: 18% !important;
}

.painted-cafe .philosophy-book {
  left: 17% !important;
  top: 54% !important;
  width: 16% !important;
  height: 16% !important;
  z-index: 18 !important;
}

.painted-cafe .lemon-spill {
  left: 12% !important;
  top: 74.5% !important;
  width: 16% !important;
  height: 16% !important;
  z-index: 17 !important;
}

.painted-cafe .lemon-spill img {
  opacity: 1 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  filter: drop-shadow(1px 2px 0 rgba(0, 0, 0, 0.18)) !important;
}

.painted-cafe .lemon-spill.is-cleaned,
.painted-cafe .lemon-spill.is-cleaned img,
.painted-cafe .napkin.is-picked,
.painted-cafe .cup-sleeve.is-picked {
  opacity: 0 !important;
  pointer-events: none !important;
}

.painted-cafe .cafe-pickup-patch {
  position: absolute !important;
  pointer-events: none !important;
  opacity: 0 !important;
  z-index: 18 !important;
  height: auto !important;
  object-fit: contain !important;
}

.painted-cafe .cafe-napkin-patch {
  left: 38.3% !important;
  top: 72.5% !important;
  width: 18% !important;
}

.painted-cafe .cafe-sleeve-patch {
  left: 58.7% !important;
  top: 71.5% !important;
  width: 15.5% !important;
}

.painted-cafe.napkin-picked .cafe-napkin-patch,
.painted-cafe.sleeve-picked .cafe-sleeve-patch {
  opacity: 1 !important;
}

.painted-cafe .hand-cup.show {
  opacity: 1 !important;
}

.painted-parcel .parcel-hotspot img,
.painted-parcel .parcel-projector-prop,
.painted-parcel .parcel-hdmi-prop {
  opacity: 0 !important;
}

.painted-parcel.parcel-open .parcel-background {
  opacity: 0 !important;
}

.painted-parcel.parcel-open .parcel-opened-painting {
  opacity: 1 !important;
}

.painted-parcel.parcel-open .parcel-projector-prop,
.painted-parcel.parcel-open .parcel-hdmi-prop {
  opacity: 0 !important;
}

.painted-beige.phase-room .beige-lamp {
  left: 72% !important;
  top: 31% !important;
  width: 6% !important;
  height: 14% !important;
}

.painted-beige.phase-lying .beige-phone {
  left: 8% !important;
  top: 70% !important;
  width: 9% !important;
  height: 16% !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

.painted-village .village-projector-placed {
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  z-index: 2 !important;
  opacity: 0 !important;
}

.painted-village.projector-placed .village-projector-placed,
.painted-village.hdmi-connected .village-projector-placed {
  opacity: 1 !important;
}

.painted-village .village-hdmi,
.painted-village .village-outlet,
.painted-village .village-projection,
.painted-village .village-ronaldo-jersey-image,
.painted-village .village-cats-fed-image,
.painted-village .village-guokui-fed-image,
.painted-village .village-final-mychael-image,
.painted-village .village-final-kitty-image {
  inset: auto !important;
  height: auto !important;
  object-fit: contain !important;
  opacity: 0 !important;
}

.painted-village .village-cat-food-bag-image {
  left: 6% !important;
  top: 76.5% !important;
  width: 7% !important;
  height: auto !important;
  z-index: 23 !important;
  opacity: 1 !important;
}

.painted-village .village-cat-bowl-image {
  left: 14% !important;
  top: 81% !important;
  width: 9% !important;
  height: auto !important;
  z-index: 23 !important;
  opacity: 1 !important;
}

.painted-village .village-cats-fed-image {
  left: 9.5% !important;
  top: 70.5% !important;
  width: 25% !important;
  z-index: 24 !important;
}

.painted-village .village-guokui-fed-image {
  left: 27% !important;
  top: 71% !important;
  width: 19% !important;
  z-index: 24 !important;
}

.painted-village.cats-fed:not(.match-started):not(.final-dialogue) .village-cats-fed-image,
.painted-village.cats-fed:not(.match-started):not(.final-dialogue) .village-guokui-fed-image {
  opacity: 1 !important;
}

.painted-village.cat-food-picked .village-cat-food-bag-image,
.painted-village.cats-fed .village-cat-bowl-image,
.painted-village.match-started .village-cat-food-bag-image,
.painted-village.match-started .village-cat-bowl-image,
.painted-village.final-dialogue .village-cat-food-bag-image,
.painted-village.final-dialogue .village-cat-bowl-image {
  opacity: 0 !important;
}

/* QA lock 2026-07-01: final visual-state source of truth. */
.painted-cafe .philosophy-book {
  left: 23% !important;
  top: 81% !important;
  width: 13% !important;
  height: 12% !important;
  z-index: 19 !important;
}

.painted-cafe .lemon-spill {
  left: 22.2% !important;
  top: 76.8% !important;
  width: 10% !important;
  height: 9% !important;
  z-index: 24 !important;
}

.painted-cafe .americano {
  left: 51.5% !important;
  top: 60.5% !important;
  width: 12.5% !important;
  height: 24% !important;
  z-index: 19 !important;
}

.painted-cafe .americano img,
.painted-cafe .philosophy-book img,
.painted-cafe .lemon-spill img,
.painted-cafe .cafe-pickup-patch {
  opacity: 0 !important;
}

.painted-beige.phase-lying .beige-room-base {
  content: url("../assets/images/beige/painted/beige_lying.png") !important;
  object-fit: cover !important;
}

.painted-beige.phase-room .beige-curtains {
  left: 29.2% !important;
  top: 5% !important;
  width: 36% !important;
  height: 44% !important;
}

.painted-beige.phase-room .beige-curtains-image,
.painted-beige.phase-room .beige-curtains-image.is-closing,
.painted-beige.curtains-closed.phase-room .beige-curtains-image,
.painted-beige.phase-lying .beige-curtains-image,
.painted-beige.phase-morning .beige-curtains-image {
  opacity: 0 !important;
  animation: none !important;
}

.painted-beige.phase-room .beige-heater {
  left: 9.1% !important;
  top: 34.5% !important;
  width: 5.5% !important;
  height: 20% !important;
}

.painted-beige.phase-room .beige-jersey,
.painted-beige.phase-room .beige-slippers {
  pointer-events: none !important;
}

.painted-beige.phase-room .beige-jersey img,
.painted-beige.phase-room .beige-slippers img {
  opacity: 0 !important;
}

.painted-beige.phase-room .beige-clothes {
  left: 0.6% !important;
  top: 59.5% !important;
  width: 12% !important;
  height: 25% !important;
}

.painted-beige .send-message-button,
.painted-beige .phone-closeup {
  cursor: pointer !important;
}

.painted-beige .send-message-button {
  left: 47% !important;
  top: 23% !important;
  width: 28% !important;
  height: 45% !important;
  min-width: 28% !important;
  min-height: 45% !important;
  z-index: 92 !important;
  opacity: 0.001 !important;
  pointer-events: auto !important;
}

.painted-village .village-projector-placed {
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  z-index: 2 !important;
  opacity: 0 !important;
}

.painted-village.projector-placed:not(.match-started):not(.final-dialogue) .village-projector-placed,
.painted-village.hdmi-connected:not(.match-started):not(.final-dialogue) .village-projector-placed {
  opacity: 1 !important;
}

.painted-village .village-hdmi,
.painted-village .village-outlet,
.painted-village.hdmi-connected .village-hdmi,
.painted-village.hdmi-connected .village-outlet,
.painted-village .village-cats-fed-image,
.painted-village .village-guokui-fed-image,
.painted-village .village-final-mychael-image,
.painted-village .village-final-kitty-image {
  opacity: 0 !important;
  pointer-events: none !important;
}

.painted-village .village-cat-food-bag-image {
  left: 5.2% !important;
  top: 76.8% !important;
  width: 6.8% !important;
  height: auto !important;
  object-fit: contain !important;
  z-index: 23 !important;
  opacity: 1 !important;
}

.painted-village .village-cat-bowl-image {
  left: 35.2% !important;
  top: 79% !important;
  width: 8.2% !important;
  height: auto !important;
  object-fit: contain !important;
  z-index: 23 !important;
  opacity: 1 !important;
}

.painted-village.cat-food-picked .village-cat-food-bag-image,
.painted-village.match-started .village-cat-food-bag-image,
.painted-village.match-started .village-cat-bowl-image,
.painted-village.final-dialogue .village-cat-food-bag-image,
.painted-village.final-dialogue .village-cat-bowl-image {
  opacity: 0 !important;
}

.painted-village.cats-fed:not(.match-started):not(.final-dialogue) .village-cat-bowl-image {
  opacity: 1 !important;
}

.painted-village.match-started .village-room,
.painted-village.match-started .village-projector-placed,
.painted-village.final-dialogue .village-room,
.painted-village.final-dialogue .village-projector-placed {
  opacity: 0 !important;
}

.painted-village.match-started .village-watch-match-image {
  opacity: 1 !important;
}

.painted-village.final-dialogue .village-watch-match-image {
  opacity: 0 !important;
}

.painted-village.final-dialogue .village-watch-lean-image {
  opacity: 1 !important;
}

.painted-village.final-dialogue.final-turn .village-watch-lean-image {
  opacity: 0 !important;
}

.painted-village.final-dialogue.final-turn .village-watch-turn-image {
  opacity: 1 !important;
}

/* Real final QA overrides. Keep this block at EOF. */
.painted-cafe .philosophy-book {
  left: 23% !important;
  top: 81% !important;
  width: 13% !important;
  height: 12% !important;
  z-index: 19 !important;
}

.painted-cafe .lemon-spill {
  left: 22.2% !important;
  top: 76.8% !important;
  width: 10% !important;
  height: 9% !important;
  z-index: 24 !important;
}

.painted-cafe .americano {
  left: 51.5% !important;
  top: 60.5% !important;
  width: 12.5% !important;
  height: 24% !important;
  z-index: 19 !important;
}

.painted-cafe .americano img,
.painted-cafe .philosophy-book img,
.painted-cafe .lemon-spill img,
.painted-cafe .cafe-pickup-patch {
  opacity: 0 !important;
}

.painted-beige.phase-lying .beige-room-base {
  content: url("../assets/images/beige/painted/beige_lying.png") !important;
  object-fit: cover !important;
}

.painted-beige.phase-room .beige-curtains {
  left: 29.2% !important;
  top: 5% !important;
  width: 36% !important;
  height: 44% !important;
}

.painted-beige.phase-room .beige-curtains-image,
.painted-beige.phase-room .beige-curtains-image.is-closing,
.painted-beige.curtains-closed.phase-room .beige-curtains-image,
.painted-beige.phase-lying .beige-curtains-image,
.painted-beige.phase-morning .beige-curtains-image {
  opacity: 0 !important;
  animation: none !important;
}

.painted-beige.phase-room .beige-heater {
  left: 9.1% !important;
  top: 34.5% !important;
  width: 5.5% !important;
  height: 20% !important;
}

.painted-beige.phase-room .beige-jersey,
.painted-beige.phase-room .beige-slippers {
  pointer-events: none !important;
}

.painted-beige.phase-room .beige-jersey img,
.painted-beige.phase-room .beige-slippers img {
  opacity: 0 !important;
}

.painted-beige.phase-room .beige-clothes {
  left: 0.6% !important;
  top: 59.5% !important;
  width: 12% !important;
  height: 25% !important;
}

.painted-beige .phone-closeup,
.painted-beige .send-message-button {
  cursor: pointer !important;
}

.painted-beige .send-message-button {
  left: 47% !important;
  top: 23% !important;
  width: 28% !important;
  height: 45% !important;
  min-width: 28% !important;
  min-height: 45% !important;
  z-index: 92 !important;
  opacity: 0.001 !important;
  pointer-events: auto !important;
}

.painted-village .village-projector-placed {
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  z-index: 2 !important;
  opacity: 0 !important;
}

.painted-village.projector-placed:not(.match-started):not(.final-dialogue) .village-projector-placed,
.painted-village.hdmi-connected:not(.match-started):not(.final-dialogue) .village-projector-placed {
  opacity: 1 !important;
}

.painted-village .village-hdmi,
.painted-village .village-outlet,
.painted-village.hdmi-connected .village-hdmi,
.painted-village.hdmi-connected .village-outlet,
.painted-village .village-cats-fed-image,
.painted-village .village-guokui-fed-image,
.painted-village .village-final-mychael-image,
.painted-village .village-final-kitty-image {
  opacity: 0 !important;
  pointer-events: none !important;
}

.painted-village .village-cat-food-bag-image {
  left: 5.2% !important;
  top: 76.8% !important;
  width: 6.8% !important;
  height: auto !important;
  object-fit: contain !important;
  z-index: 23 !important;
  opacity: 1 !important;
}

.painted-village .village-cat-bowl-image {
  left: 35.2% !important;
  top: 79% !important;
  width: 8.2% !important;
  height: auto !important;
  object-fit: contain !important;
  z-index: 23 !important;
  opacity: 1 !important;
}

.painted-village.cat-food-picked .village-cat-food-bag-image,
.painted-village.match-started .village-cat-food-bag-image,
.painted-village.match-started .village-cat-bowl-image,
.painted-village.final-dialogue .village-cat-food-bag-image,
.painted-village.final-dialogue .village-cat-bowl-image {
  opacity: 0 !important;
}

.painted-village.cats-fed:not(.match-started):not(.final-dialogue) .village-cat-bowl-image {
  opacity: 1 !important;
}

.painted-village.match-started .village-room,
.painted-village.match-started .village-projector-placed,
.painted-village.final-dialogue .village-room,
.painted-village.final-dialogue .village-projector-placed {
  opacity: 0 !important;
}

.painted-village.match-started .village-watch-match-image {
  opacity: 1 !important;
}

.painted-village.final-dialogue .village-watch-match-image {
  opacity: 0 !important;
}

.painted-village.final-dialogue .village-watch-lean-image {
  opacity: 1 !important;
}

.painted-village.final-dialogue.final-turn .village-watch-lean-image {
  opacity: 0 !important;
}

.painted-village.final-dialogue.final-turn .village-watch-turn-image {
  opacity: 1 !important;
}

.painted-village.match-started .village-hotspot:not(.watch-hotspot),
.painted-village.final-dialogue .village-hotspot:not(.watch-hotspot) {
  pointer-events: none !important;
}

/* Absolute EOF tap-area correction. */
.game-stage.painted-cafe .hotspot.lemon-spill {
  left: 18.3% !important;
  top: 76.8% !important;
  width: 12% !important;
  height: 10% !important;
}

/* Cafe 2026-07-01 refined art alignment: baked state frames, no patch overlays. */
.game-stage.painted-cafe .hotspot.americano {
  left: 51% !important;
  top: 59% !important;
  width: 13.5% !important;
  height: 28% !important;
  z-index: 22 !important;
}

.game-stage.painted-cafe .hotspot.cup-sleeve {
  left: 59.2% !important;
  top: 70.2% !important;
  width: 16.5% !important;
  height: 17% !important;
  z-index: 24 !important;
}

.game-stage.painted-cafe .hotspot.philosophy-book {
  left: 34% !important;
  top: 83.2% !important;
  width: 18.5% !important;
  height: 14.5% !important;
  z-index: 23 !important;
}

.game-stage.painted-cafe .hotspot.receipt {
  left: 27.5% !important;
  top: 70.5% !important;
  width: 11% !important;
  height: 20% !important;
  z-index: 23 !important;
}

.game-stage.painted-cafe .hotspot.napkin {
  left: 40.5% !important;
  top: 70.8% !important;
  width: 17% !important;
  height: 16% !important;
  z-index: 23 !important;
}

.game-stage.painted-cafe .hotspot.lemon-spill {
  left: 17.8% !important;
  top: 76.8% !important;
  width: 13% !important;
  height: 11% !important;
  z-index: 25 !important;
}

.game-stage.painted-cafe .hotspot.lemon-tea {
  left: 7.8% !important;
  top: 61.5% !important;
  width: 15.5% !important;
  height: 25% !important;
}

.game-stage.painted-cafe .americano img,
.game-stage.painted-cafe .cup-sleeve img,
.game-stage.painted-cafe .philosophy-book img,
.game-stage.painted-cafe .lemon-spill img,
.game-stage.painted-cafe .cafe-pickup-patch {
  opacity: 0 !important;
  pointer-events: none !important;
}

.painted-village.match-started .village-hotspot:not(.watch-hotspot),
.painted-village.final-dialogue .village-hotspot:not(.watch-hotspot) {
  pointer-events: none !important;
}

/* 2026-07 final QA pass: baked keyframes, no patchwork overlays. */
.painted-cafe .background,
.painted-parcel .parcel-background,
.painted-parcel .parcel-opened-painting,
.painted-beige .beige-room-base,
.painted-village .village-room,
.painted-village .village-projector-placed,
.painted-village .village-watch-match-image,
.painted-village .village-watch-lean-image,
.painted-village .village-watch-turn-image {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}

.painted-cafe .table,
.painted-cafe .kitty img,
.painted-cafe .lemon-tea img,
.painted-cafe .americano img,
.painted-cafe .receipt img,
.painted-cafe .napkin img,
.painted-cafe .cup-sleeve img,
.painted-cafe .football-phone img,
.painted-cafe .philosophy-book img,
.painted-cafe .lemon-spill img,
.painted-cafe .cafe-pickup-patch {
  opacity: 0 !important;
}

.painted-cafe.napkin-picked .cafe-napkin-patch,
.painted-cafe.sleeve-picked .cafe-sleeve-patch {
  opacity: 0 !important;
}

.painted-cafe .lemon-spill {
  left: 10.8% !important;
  top: 72.2% !important;
  width: 18% !important;
  height: 17% !important;
  z-index: 24 !important;
}

.painted-cafe .napkin {
  left: 39% !important;
  top: 68% !important;
  width: 14.5% !important;
  height: 18% !important;
}

.painted-cafe .cup-sleeve {
  left: 58% !important;
  top: 69% !important;
  width: 14% !important;
  height: 18% !important;
}

.painted-cafe .americano {
  left: 51.5% !important;
  top: 53% !important;
  width: 12.5% !important;
  height: 35% !important;
}

.painted-beige.curtains-closed.phase-room .beige-curtains-image,
.painted-beige.phase-room .beige-curtains-image.is-closing {
  opacity: 1 !important;
  pointer-events: none !important;
  z-index: 7 !important;
}

.painted-beige.phase-room .beige-curtains-image.is-closing {
  animation: beige-curtain-close 850ms ease-out both !important;
  clip-path: inset(0 44% 0 44%);
}

@keyframes beige-curtain-close {
  0% {
    clip-path: inset(0 44% 0 44%);
    opacity: 0.72;
  }
  100% {
    clip-path: inset(0 0 0 0);
    opacity: 1;
  }
}

.painted-beige.phase-room .beige-heater {
  left: 3.5% !important;
  top: 28% !important;
  width: 9% !important;
  height: 24% !important;
}

.painted-beige.phase-room .beige-jersey {
  left: 86.5% !important;
  top: 55% !important;
  width: 11% !important;
  height: 22% !important;
  z-index: 18 !important;
}

.painted-beige.phase-room .beige-slippers {
  left: 55% !important;
  top: 82.5% !important;
  width: 16% !important;
  height: 12% !important;
  z-index: 18 !important;
}

.painted-beige.phase-room .beige-jersey img,
.painted-beige.phase-room .beige-slippers img {
  opacity: 1 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  filter: drop-shadow(1px 3px 2px rgba(0, 0, 0, 0.22)) !important;
}

.painted-beige.phase-lying .beige-hotspot img,
.painted-beige.phase-lying .beige-curtains-image,
.painted-beige.phase-morning .beige-curtains-image {
  opacity: 0 !important;
}

.painted-beige .send-message-button {
  left: 56.8% !important;
  top: 39.2% !important;
  width: 9% !important;
  height: 12% !important;
  min-width: 9% !important;
  min-height: 12% !important;
  z-index: 92 !important;
  opacity: 0 !important;
  pointer-events: auto !important;
  color: transparent !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

.painted-parcel .parcel-hotspot img,
.painted-parcel .parcel-projector-prop,
.painted-parcel .parcel-hdmi-prop {
  opacity: 0 !important;
}

.painted-parcel .parcel-phone {
  left: 3% !important;
  top: 53% !important;
  width: 15% !important;
  height: 42% !important;
}

.painted-parcel .parcel-shelf {
  left: 18% !important;
  top: 9% !important;
  width: 50% !important;
  height: 29% !important;
}

.painted-parcel .parcel-b11 {
  left: 19% !important;
  top: 49% !important;
  width: 16% !important;
  height: 29% !important;
}

.painted-parcel .parcel-b71 {
  left: 35% !important;
  top: 49% !important;
  width: 16% !important;
  height: 29% !important;
}

.painted-parcel .parcel-b17-plain {
  left: 51% !important;
  top: 49% !important;
  width: 16% !important;
  height: 29% !important;
}

.painted-parcel .parcel-b17-lemon {
  left: 67% !important;
  top: 48% !important;
  width: 17% !important;
  height: 31% !important;
}

.painted-parcel .parcel-opened {
  left: 24% !important;
  top: 47% !important;
  width: 60% !important;
  height: 45% !important;
}

.painted-village .village-hdmi,
.painted-village .village-outlet,
.painted-village .village-projection,
.painted-village .village-final-mychael-image,
.painted-village .village-final-kitty-image,
.painted-village .village-ronaldo-jersey-image {
  opacity: 0 !important;
}

.painted-village.projector-placed .village-projector-placed,
.painted-village.hdmi-connected .village-projector-placed {
  opacity: 1 !important;
}

.painted-village.match-started .village-room,
.painted-village.match-started .village-projector-placed,
.painted-village.final-dialogue .village-room,
.painted-village.final-dialogue .village-projector-placed {
  opacity: 0 !important;
}

.painted-village .village-cat-food-bag-image {
  left: 5.4% !important;
  top: 77.3% !important;
  width: 7.2% !important;
  height: auto !important;
  object-fit: contain !important;
  z-index: 23 !important;
  opacity: 1 !important;
}

.painted-village .village-cat-bowl-image {
  left: 14.8% !important;
  top: 80.2% !important;
  width: 8.8% !important;
  height: auto !important;
  object-fit: contain !important;
  z-index: 23 !important;
  opacity: 1 !important;
}

.painted-village .village-cats-fed-image {
  left: 19% !important;
  top: 61.5% !important;
  width: 29% !important;
  height: auto !important;
  object-fit: contain !important;
  z-index: 24 !important;
  opacity: 0 !important;
}

.painted-village .village-guokui-fed-image {
  left: 75% !important;
  top: 54.5% !important;
  width: 17% !important;
  height: auto !important;
  object-fit: contain !important;
  z-index: 24 !important;
  opacity: 0 !important;
}

.painted-village.cats-fed:not(.match-started):not(.final-dialogue) .village-cats-fed-image,
.painted-village.cats-fed:not(.match-started):not(.final-dialogue) .village-guokui-fed-image {
  opacity: 1 !important;
}

.painted-village.cat-food-picked .village-cat-food-bag-image,
.painted-village.cats-fed .village-cat-bowl-image,
.painted-village.match-started .village-cat-food-bag-image,
.painted-village.match-started .village-cat-bowl-image,
.painted-village.final-dialogue .village-cat-food-bag-image,
.painted-village.final-dialogue .village-cat-bowl-image {
  opacity: 0 !important;
}

.painted-village.final-dialogue.final-turn .village-watch-turn-image {
  opacity: 1 !important;
}

/* 2026-07-01 repair pass for user QA items 1-15.
   Keep complete keyframes as primary art; use props only when the frame has no
   equivalent state baked into it. */

.painted-cafe .americano img,
.painted-cafe .philosophy-book img,
.painted-cafe .lemon-spill img {
  opacity: 0 !important;
}

.painted-cafe .philosophy-book {
  left: 16.5% !important;
  top: 58.5% !important;
  width: 11.5% !important;
  height: 14% !important;
  z-index: 19 !important;
}

.painted-cafe .americano {
  left: 51.8% !important;
  top: 54% !important;
  width: 11.8% !important;
  height: 34% !important;
  z-index: 19 !important;
}

.painted-cafe .lemon-spill {
  left: 13.8% !important;
  top: 73.4% !important;
  width: 11.5% !important;
  height: 9% !important;
  z-index: 24 !important;
}

.painted-beige.phase-room .beige-curtains-image {
  left: 29.8% !important;
  top: 5.8% !important;
  width: 34.6% !important;
  height: 43% !important;
  object-fit: contain !important;
  opacity: 0 !important;
}

.painted-beige.phase-room .beige-curtains-image.is-closing {
  opacity: 0 !important;
  animation: none !important;
}

@keyframes beige-curtain-close-repaired {
  0% {
    clip-path: inset(0 48% 0 48%);
    opacity: 0.5;
  }
  100% {
    clip-path: inset(0 0 0 0);
    opacity: 1;
  }
}

.painted-beige.curtains-closed.phase-room:not(.water-placed) .beige-curtains-image {
  opacity: 0 !important;
}

.painted-beige .beige-room-base {
  transition: filter 280ms ease, opacity 280ms ease !important;
}

.painted-beige.curtain-action .beige-room-base {
  filter: brightness(0.82) !important;
}

.painted-beige.phase-room .beige-curtains {
  left: 30% !important;
  top: 7% !important;
  width: 34% !important;
  height: 42% !important;
}

.painted-beige.phase-room .beige-heater {
  left: 1.6% !important;
  top: 25.5% !important;
  width: 9% !important;
  height: 27% !important;
}

.painted-beige.phase-room .beige-jersey img,
.painted-beige.phase-room .beige-slippers img {
  opacity: 0 !important;
}

.painted-beige.phase-room .beige-jersey {
  left: 42% !important;
  top: 48% !important;
  width: 23% !important;
  height: 21% !important;
}

.painted-beige.phase-room .beige-slippers {
  left: 48% !important;
  top: 82% !important;
  width: 18% !important;
  height: 12% !important;
}

.painted-beige.phase-room .beige-clothes {
  left: 0.8% !important;
  top: 60% !important;
  width: 11% !important;
  height: 23% !important;
}

.painted-beige.phase-lying .beige-hotspot img,
.painted-beige.phase-lying .beige-curtains-image {
  opacity: 0 !important;
}

.painted-beige.phase-lying .beige-notes {
  left: 0.6% !important;
  top: 64% !important;
  width: 18% !important;
  height: 20% !important;
}

.painted-beige.phase-lying .beige-laptop {
  left: 78.5% !important;
  top: 15% !important;
  width: 16% !important;
  height: 17% !important;
}

.painted-beige .send-message-button {
  left: 52.5% !important;
  top: 38% !important;
  width: 18% !important;
  height: 17% !important;
  min-width: 18% !important;
  min-height: 17% !important;
  z-index: 92 !important;
  opacity: 0.001 !important;
  pointer-events: auto !important;
  color: transparent !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

.painted-village .village-hdmi,
.painted-village .village-outlet,
.painted-village.hdmi-connected .village-hdmi,
.painted-village.hdmi-connected .village-outlet {
  opacity: 0 !important;
  pointer-events: none !important;
}

.painted-village .village-projector-placed {
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  opacity: 0 !important;
}

.painted-village.projector-placed:not(.match-started):not(.final-dialogue) .village-projector-placed,
.painted-village.hdmi-connected:not(.match-started):not(.final-dialogue) .village-projector-placed {
  opacity: 1 !important;
}

.painted-village .village-cat-food-bag-image {
  left: 6% !important;
  top: 78.4% !important;
  width: 5.8% !important;
  z-index: 23 !important;
  opacity: 1 !important;
}

.painted-village .village-cat-bowl-image {
  left: 19.5% !important;
  top: 80.6% !important;
  width: 6.8% !important;
  z-index: 23 !important;
  opacity: 1 !important;
}

.painted-village .village-cats-fed-image,
.painted-village .village-guokui-fed-image,
.painted-village.cats-fed:not(.match-started):not(.final-dialogue) .village-cats-fed-image,
.painted-village.cats-fed:not(.match-started):not(.final-dialogue) .village-guokui-fed-image {
  opacity: 0 !important;
}

.painted-village.cat-food-picked .village-cat-food-bag-image,
.painted-village.match-started .village-cat-food-bag-image,
.painted-village.match-started .village-cat-bowl-image,
.painted-village.match-started .village-cats-fed-image,
.painted-village.final-dialogue .village-cat-food-bag-image,
.painted-village.final-dialogue .village-cat-bowl-image,
.painted-village.final-dialogue .village-cats-fed-image {
  opacity: 0 !important;
}

.painted-village .village-cat-food {
  left: 5% !important;
  top: 76% !important;
  width: 10% !important;
  height: 18% !important;
}

.painted-village .village-cat-bowl {
  left: 17% !important;
  top: 77% !important;
  width: 13% !important;
  height: 17% !important;
}

.painted-village.final-dialogue.final-turn .village-final-mychael-image,
.painted-village.final-dialogue.final-turn .village-final-kitty-image {
  opacity: 0 !important;
}

.painted-village.hdmi-connected:not(.match-started):not(.final-dialogue) .village-hdmi,
.painted-village.hdmi-connected:not(.match-started):not(.final-dialogue) .village-outlet {
  opacity: 1 !important;
}

.painted-village.match-started .village-room,
.painted-village.match-started .village-projector-placed,
.painted-village.match-started .village-hdmi,
.painted-village.match-started .village-outlet,
.painted-village.final-dialogue .village-room,
.painted-village.final-dialogue .village-projector-placed,
.painted-village.final-dialogue .village-hdmi,
.painted-village.final-dialogue .village-outlet {
  opacity: 0 !important;
}

.painted-village.match-started .village-watch-match-image {
  opacity: 1 !important;
}

.painted-village.final-dialogue .village-watch-match-image {
  opacity: 0 !important;
}

.painted-village.final-dialogue .village-watch-lean-image {
  opacity: 1 !important;
}

.painted-village.final-dialogue.final-turn .village-watch-lean-image {
  opacity: 0 !important;
}

.painted-village.final-dialogue.final-turn .village-watch-turn-image,
.painted-village.final-dialogue.final-turn .village-final-mychael-image,
.painted-village.final-dialogue.final-turn .village-final-kitty-image {
  opacity: 1 !important;
}

.painted-village.final-dialogue.final-turn .village-final-mychael-image {
  left: 48.5% !important;
  top: 48% !important;
  width: 17% !important;
  z-index: 34 !important;
}

.painted-village.final-dialogue.final-turn .village-final-kitty-image {
  left: 57% !important;
  top: 46.5% !important;
  width: 18% !important;
  z-index: 35 !important;
}

.painted-village .village-kitty,
.painted-village .village-jersey,
.painted-village .village-chicken,
.painted-village .village-cola,
.painted-village .village-ice-cream {
  opacity: 0 !important;
  pointer-events: none !important;
}

.painted-village.match-started .village-hotspot:not(.watch-hotspot),
.painted-village.final-dialogue .village-hotspot:not(.watch-hotspot) {
  pointer-events: none !important;
}

/* Absolute final overrides: these must stay last. */
.painted-village .village-hdmi,
.painted-village .village-outlet,
.painted-village.hdmi-connected .village-hdmi,
.painted-village.hdmi-connected .village-outlet,
.painted-village.final-dialogue.final-turn .village-final-mychael-image,
.painted-village.final-dialogue.final-turn .village-final-kitty-image {
  opacity: 0 !important;
  pointer-events: none !important;
}

.painted-village.final-dialogue.final-turn .village-watch-turn-image {
  opacity: 1 !important;
}

/* Real final QA overrides. Keep this block at EOF. */
.painted-cafe .philosophy-book {
  left: 23% !important;
  top: 81% !important;
  width: 13% !important;
  height: 12% !important;
  z-index: 19 !important;
}

.painted-cafe .lemon-spill {
  left: 22.2% !important;
  top: 77.2% !important;
  width: 9% !important;
  height: 8% !important;
  z-index: 24 !important;
}

.painted-cafe .americano {
  left: 51.5% !important;
  top: 60.5% !important;
  width: 12.5% !important;
  height: 24% !important;
  z-index: 19 !important;
}

.painted-cafe .americano img,
.painted-cafe .philosophy-book img,
.painted-cafe .lemon-spill img,
.painted-cafe .cafe-pickup-patch {
  opacity: 0 !important;
}

.painted-beige.phase-lying .beige-room-base {
  content: url("../assets/images/beige/painted/beige_lying.png") !important;
  object-fit: cover !important;
}

.painted-beige.phase-room .beige-curtains {
  left: 29.2% !important;
  top: 5% !important;
  width: 36% !important;
  height: 44% !important;
}

.painted-beige.phase-room .beige-curtains-image,
.painted-beige.phase-room .beige-curtains-image.is-closing,
.painted-beige.curtains-closed.phase-room .beige-curtains-image,
.painted-beige.phase-lying .beige-curtains-image,
.painted-beige.phase-morning .beige-curtains-image {
  opacity: 0 !important;
  animation: none !important;
}

.painted-beige.phase-room .beige-heater {
  left: 9.1% !important;
  top: 34.5% !important;
  width: 5.5% !important;
  height: 20% !important;
}

.painted-beige.phase-room .beige-jersey,
.painted-beige.phase-room .beige-slippers {
  pointer-events: none !important;
}

.painted-beige.phase-room .beige-jersey img,
.painted-beige.phase-room .beige-slippers img {
  opacity: 0 !important;
}

.painted-beige.phase-room .beige-clothes {
  left: 0.6% !important;
  top: 59.5% !important;
  width: 12% !important;
  height: 25% !important;
}

.painted-beige .phone-closeup,
.painted-beige .send-message-button {
  cursor: pointer !important;
}

.painted-beige .send-message-button {
  left: 47% !important;
  top: 23% !important;
  width: 28% !important;
  height: 45% !important;
  min-width: 28% !important;
  min-height: 45% !important;
  z-index: 92 !important;
  opacity: 0.001 !important;
  pointer-events: auto !important;
}

.painted-village .village-projector-placed {
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  z-index: 2 !important;
  opacity: 0 !important;
}

.painted-village.projector-placed:not(.match-started):not(.final-dialogue) .village-projector-placed,
.painted-village.hdmi-connected:not(.match-started):not(.final-dialogue) .village-projector-placed {
  opacity: 1 !important;
}

.painted-village .village-hdmi,
.painted-village .village-outlet,
.painted-village.hdmi-connected .village-hdmi,
.painted-village.hdmi-connected .village-outlet,
.painted-village .village-cats-fed-image,
.painted-village .village-guokui-fed-image,
.painted-village .village-final-mychael-image,
.painted-village .village-final-kitty-image {
  opacity: 0 !important;
  pointer-events: none !important;
}

.painted-village .village-cat-food-bag-image {
  left: 5.2% !important;
  top: 76.8% !important;
  width: 6.8% !important;
  height: auto !important;
  object-fit: contain !important;
  z-index: 23 !important;
  opacity: 1 !important;
}

.painted-village .village-cat-bowl-image {
  left: 35.2% !important;
  top: 79% !important;
  width: 8.2% !important;
  height: auto !important;
  object-fit: contain !important;
  z-index: 23 !important;
  opacity: 1 !important;
}

.painted-village.cat-food-picked .village-cat-food-bag-image,
.painted-village.match-started .village-cat-food-bag-image,
.painted-village.match-started .village-cat-bowl-image,
.painted-village.final-dialogue .village-cat-food-bag-image,
.painted-village.final-dialogue .village-cat-bowl-image {
  opacity: 0 !important;
}

.painted-village.cats-fed:not(.match-started):not(.final-dialogue) .village-cat-bowl-image {
  opacity: 1 !important;
}

.painted-village.match-started .village-room,
.painted-village.match-started .village-projector-placed,
.painted-village.final-dialogue .village-room,
.painted-village.final-dialogue .village-projector-placed {
  opacity: 0 !important;
}

.painted-village.match-started .village-watch-match-image {
  opacity: 1 !important;
}

.painted-village.final-dialogue .village-watch-match-image {
  opacity: 0 !important;
}

.painted-village.final-dialogue .village-watch-lean-image {
  opacity: 1 !important;
}

.painted-village.final-dialogue.final-turn .village-watch-lean-image {
  opacity: 0 !important;
}

.painted-village.final-dialogue.final-turn .village-watch-turn-image {
  opacity: 1 !important;
}

.painted-village.match-started .village-hotspot:not(.watch-hotspot),
.painted-village.final-dialogue .village-hotspot:not(.watch-hotspot) {
  pointer-events: none !important;
}
/* Absolute EOF tap-area correction. */
.game-stage.painted-cafe .hotspot.lemon-spill {
  left: 22.2% !important;
  top: 76.8% !important;
  width: 10% !important;
  height: 9% !important;
}

/* Cafe precision pass 2026-07-02: coordinates follow baked 960x540 art. */
.game-stage.painted-cafe .hotspot.lemon-tea {
  left: 6.2% !important;
  top: 67.4% !important;
  width: 16% !important;
  height: 21% !important;
  z-index: 22 !important;
}

.game-stage.painted-cafe .hotspot.lemon-spill {
  left: 18.3% !important;
  top: 77.4% !important;
  width: 10% !important;
  height: 9% !important;
  z-index: 27 !important;
}

.game-stage.painted-cafe .hotspot.receipt {
  left: 25.7% !important;
  top: 76.7% !important;
  width: 10.2% !important;
  height: 17.4% !important;
  z-index: 24 !important;
  transform: none !important;
}

.game-stage.painted-cafe .hotspot.napkin {
  left: 38.2% !important;
  top: 76.8% !important;
  width: 13.7% !important;
  height: 12.2% !important;
  z-index: 24 !important;
  transform: none !important;
}

.game-stage.painted-cafe .hotspot.philosophy-book {
  left: 35.9% !important;
  top: 85.2% !important;
  width: 16.5% !important;
  height: 12.2% !important;
  z-index: 23 !important;
  transform: none !important;
}

.game-stage.painted-cafe .hotspot.americano {
  left: 51.5% !important;
  top: 63.1% !important;
  width: 11.2% !important;
  height: 22% !important;
  z-index: 24 !important;
  transform: none !important;
}

.game-stage.painted-cafe .hotspot.cup-sleeve {
  left: 59.4% !important;
  top: 78.8% !important;
  width: 10.5% !important;
  height: 16.7% !important;
  z-index: 25 !important;
  transform: none !important;
}

.game-stage.painted-cafe .hotspot.football-phone {
  left: 68.7% !important;
  top: 76.5% !important;
  width: 16.5% !important;
  height: 18.2% !important;
  z-index: 24 !important;
  transform: none !important;
}

.game-stage.painted-cafe .hotspot.lemon-spill.is-cleaned,
.game-stage.painted-cafe .hotspot.cup-sleeve.is-picked {
  pointer-events: none !important;
}

.game-stage.painted-cafe .americano img,
.game-stage.painted-cafe .cup-sleeve img,
.game-stage.painted-cafe .philosophy-book img,
.game-stage.painted-cafe .lemon-spill img,
.game-stage.painted-cafe .cafe-pickup-patch {
  opacity: 0 !important;
  pointer-events: none !important;
}

.game-stage.painted-cafe .hotspot.cup-sleeve.is-picked {
  opacity: 1 !important;
}

.game-stage.painted-cafe .hand-cup.show {
  filter: drop-shadow(0 14px 18px rgba(0, 0, 0, 0.28)) !important;
}

/* Final pass: Village runs prop states through full painted backgrounds. */
.painted-village .village-projector-placed,
.painted-village.projector-placed .village-projector-placed,
.painted-village.hdmi-connected .village-projector-placed,
.painted-village .village-cat-food-bag-image,
.painted-village .village-cat-bowl-image,
.painted-village .village-cats-fed-image,
.painted-village .village-guokui-fed-image {
  opacity: 0 !important;
  pointer-events: none !important;
}

.painted-village .village-cat-food {
  left: 7.8% !important;
  top: 70.5% !important;
  width: 9.8% !important;
  height: 18.2% !important;
  z-index: 24 !important;
}

.painted-village .village-cat-bowl {
  left: 20.8% !important;
  top: 76.4% !important;
  width: 13.2% !important;
  height: 13.6% !important;
  z-index: 24 !important;
}

/* Final pass: shared inventory polish */
.inventory,
.scene-inventory {
  width: clamp(54px, 8.8vw, 72px) !important;
  gap: clamp(6px, 1.2vw, 10px) !important;
  padding: clamp(5px, 0.9vw, 8px) !important;
  border: 1px solid rgba(239, 229, 207, 0.28) !important;
  border-radius: 12px !important;
  background:
    linear-gradient(180deg, rgba(28, 28, 26, 0.78), rgba(7, 8, 9, 0.68)) !important;
  box-shadow:
    inset 0 0 0 1px rgba(0, 0, 0, 0.52),
    0 12px 30px rgba(0, 0, 0, 0.42) !important;
}

.inventory::before,
.scene-inventory::before {
  width: 78% !important;
  margin: 0 auto 1px !important;
  filter: drop-shadow(0 4px 5px rgba(0, 0, 0, 0.42)) !important;
  opacity: 0.98 !important;
  image-rendering: auto !important;
}

.inventory button,
.scene-inventory button {
  border: 0 !important;
  border-radius: 10px !important;
  padding: 13% !important;
  background: url("../assets/images/ui/inventory_slot.svg") center / 100% 100% no-repeat !important;
  box-shadow:
    inset 0 1px 0 rgba(255, 245, 220, 0.16),
    0 4px 7px rgba(0, 0, 0, 0.28) !important;
  overflow: visible !important;
  transform: translateZ(0) !important;
}

.inventory button.empty,
.scene-inventory button.empty {
  opacity: 0.46 !important;
  filter: saturate(0.78) brightness(0.82) !important;
}

.inventory button.selected,
.scene-inventory button.selected {
  filter: brightness(1.08) saturate(1.04) !important;
}

.inventory button.selected::after,
.scene-inventory button.selected::after {
  inset: -3px !important;
  border: 2px solid rgba(253, 240, 203, 0.96) !important;
  border-radius: 12px !important;
  box-shadow:
    0 0 0 2px rgba(39, 28, 17, 0.82),
    0 0 17px rgba(255, 220, 142, 0.42) !important;
  pointer-events: none !important;
}

.inventory button.used,
.scene-inventory button.used {
  opacity: 0.42 !important;
  filter: saturate(0.65) brightness(0.78) !important;
}

.inventory button.used::before,
.scene-inventory button.used::before {
  right: 8% !important;
  bottom: 8% !important;
  width: 24% !important;
  height: 24% !important;
  border-radius: 50% !important;
  background: rgba(240, 230, 206, 0.94) !important;
  border: 2px solid rgba(18, 16, 14, 0.92) !important;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.35) !important;
}

.inventory img,
.scene-inventory img {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  display: block !important;
  transform: scale(0.86) !important;
  transform-origin: 50% 54% !important;
  filter:
    drop-shadow(0 4px 4px rgba(0, 0, 0, 0.36))
    drop-shadow(0 0 1px rgba(255, 243, 219, 0.22)) !important;
  image-rendering: auto !important;
}

.inventory button.just-added img,
.scene-inventory button.just-added img {
  animation: inventory-item-arrive 520ms cubic-bezier(0.2, 0.9, 0.24, 1.18) both !important;
}

@keyframes inventory-item-arrive {
  0% {
    opacity: 0;
    transform: scale(0.52) translateY(9%);
    filter: drop-shadow(0 0 0 rgba(0, 0, 0, 0));
  }
  72% {
    opacity: 1;
    transform: scale(0.94) translateY(0);
  }
  100% {
    opacity: 1;
    transform: scale(0.86) translateY(0);
  }
}

/* Final pass: Beige curtain and morning send interaction */
.painted-beige.phase-room .beige-curtains-image,
.painted-beige.phase-room .beige-curtains-image.is-closing,
.painted-beige.curtains-closed.phase-room .beige-curtains-image,
.painted-beige.phase-lying .beige-curtains-image,
.painted-beige.phase-morning .beige-curtains-image {
  opacity: 0 !important;
  animation: none !important;
  pointer-events: none !important;
}

.painted-beige .beige-room-base {
  transition: filter 260ms ease !important;
}

.painted-beige.curtain-action .beige-room-base {
  filter: brightness(0.78) saturate(0.92) !important;
}

.painted-beige.curtain-action::after {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 88 !important;
  pointer-events: none !important;
  background: #050403 !important;
  animation: beige-curtain-cut 560ms ease-in-out both !important;
}

@keyframes beige-curtain-cut {
  0% { opacity: 0; }
  42% { opacity: 0.72; }
  100% { opacity: 0; }
}

.painted-beige .phone-closeup {
  cursor: default !important;
}

.painted-beige .send-message-button {
  left: 49.25% !important;
  top: 47.15% !important;
  width: 5.8% !important;
  height: 10.6% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  z-index: 96 !important;
  opacity: 1 !important;
  color: transparent !important;
  font-size: 0 !important;
  border: 0 !important;
  border-radius: 50% !important;
  background: radial-gradient(circle, rgba(255, 238, 178, 0.38) 0 36%, rgba(255, 238, 178, 0.08) 64%, transparent 70%) !important;
  box-shadow: 0 0 0 2px rgba(255, 239, 191, 0.42), 0 0 16px rgba(255, 221, 139, 0.42) !important;
  cursor: pointer !important;
  animation: send-button-glow 1450ms ease-in-out infinite !important;
}

.painted-beige .send-message-button::before,
.painted-beige .send-message-button::after {
  content: "" !important;
  position: absolute !important;
  inset: -8px !important;
  border: 2px solid rgba(255, 235, 176, 0.52) !important;
  border-radius: 50% !important;
  pointer-events: none !important;
  animation: send-button-ring 1450ms ease-out infinite !important;
}

.painted-beige .send-message-button::after {
  animation-delay: 520ms !important;
  opacity: 0.66 !important;
}

.painted-beige .send-message-button:disabled {
  animation: none !important;
  opacity: 0.55 !important;
  pointer-events: none !important;
}

.painted-beige.is-sending-message .morning-panel {
  animation: beige-send-fade 780ms ease-in forwards !important;
}

@keyframes send-button-glow {
  0%, 100% { transform: scale(0.98); }
  50% { transform: scale(1.08); }
}

@keyframes send-button-ring {
  0% {
    transform: scale(0.72);
    opacity: 0.72;
  }
  100% {
    transform: scale(1.7);
    opacity: 0;
  }
}

@keyframes beige-send-fade {
  0% {
    opacity: 1;
    filter: brightness(1);
  }
  100% {
    opacity: 0;
    filter: brightness(0.45);
  }
}

/* Final override: Village projector/cat-food states are baked into full scene frames. */
.painted-village .village-projector-placed,
.painted-village.projector-placed .village-projector-placed,
.painted-village.hdmi-connected .village-projector-placed,
.painted-village .village-hdmi,
.painted-village .village-outlet,
.painted-village .village-cat-food-bag-image,
.painted-village .village-cat-bowl-image,
.painted-village.cats-fed .village-cat-bowl-image,
.painted-village .village-cats-fed-image,
.painted-village .village-guokui-fed-image {
  opacity: 0 !important;
  pointer-events: none !important;
}

.painted-village .cat-food-hotspot {
  left: 28.1% !important;
  top: 70.4% !important;
  width: 8.2% !important;
  height: 17.2% !important;
}

.painted-village .cat-bowl-hotspot {
  left: 21.2% !important;
  top: 76.5% !important;
  width: 13.6% !important;
  height: 13.4% !important;
}

/* Final interaction lock: match actual baked Village cat-food/bowl artwork. */
.painted-village .village-cat-food {
  left: 24.7% !important;
  top: 72.0% !important;
  width: 8.2% !important;
  height: 16.2% !important;
  z-index: 44 !important;
}

.painted-village .village-cat-bowl {
  left: 22.0% !important;
  top: 77.6% !important;
  width: 9.8% !important;
  height: 13.2% !important;
  z-index: 44 !important;
}

.painted-village:not(.projector-placed) .village-cat-food,
.painted-village:not(.projector-placed) .village-cat-bowl,
.painted-village:not(.cat-food-picked) .village-cat-bowl,
.painted-village.match-started .village-cat-food,
.painted-village.match-started .village-cat-bowl,
.painted-village.final-dialogue .village-cat-food,
.painted-village.final-dialogue .village-cat-bowl {
  pointer-events: none !important;
}

.painted-village:not(.projector-placed) .village-cat-food.is-next::before,
.painted-village:not(.projector-placed) .village-cat-bowl.is-next::before,
.painted-village:not(.cat-food-picked) .village-cat-bowl.is-next::before,
.painted-village.match-started .village-cat-food.is-next::before,
.painted-village.match-started .village-cat-bowl.is-next::before,
.painted-village.final-dialogue .village-cat-food.is-next::before,
.painted-village.final-dialogue .village-cat-bowl.is-next::before {
  display: none !important;
  content: none !important;
}

/* The lying phase should advance only by clicking Kitty, not wall/table hotspots. */
.painted-beige.phase-lying .beige-notes,
.painted-beige.phase-lying .beige-laptop,
.painted-beige.phase-lying .beige-phone,
.painted-beige.phase-lying .beige-mattress {
  pointer-events: none !important;
}

.painted-beige.phase-lying .beige-notes.is-next::before,
.painted-beige.phase-lying .beige-laptop.is-next::before,
.painted-beige.phase-lying .beige-phone.is-next::before,
.painted-beige.phase-lying .beige-mattress.is-next::before {
  display: none !important;
  content: none !important;
}

.painted-beige.phase-room.room-ready .beige-hotspot:not(.beige-kitty) {
  pointer-events: none !important;
}

.painted-beige.phase-room.water-placed .beige-kitty {
  left: 35% !important;
  top: 16% !important;
  width: 42% !important;
  height: 70% !important;
  z-index: 24 !important;
}

.painted-beige.phase-lying .beige-kitty {
  left: 43.5% !important;
  top: 10.5% !important;
  width: 39% !important;
  height: 63% !important;
  z-index: 46 !important;
  pointer-events: auto !important;
}

.painted-beige.phase-lying .beige-kitty.is-next::before {
  inset: 10% 14% 16% 32% !important;
}

/* Settings opens to the left of the gear so it does not cover the inventory rail. */
.settings-button {
  z-index: 82 !important;
}

.settings-menu {
  right: calc(3.2% + 66px) !important;
  top: 4.5% !important;
  z-index: 83 !important;
  width: min(46%, 248px) !important;
  max-height: 72% !important;
  overflow: auto !important;
  transform-origin: top right !important;
}

/* Beige: AC remote is on the desk, not a glowing wall target. */
.painted-beige.phase-room .beige-ac-remote {
  left: 79.1% !important;
  top: 66.2% !important;
  width: 12.4% !important;
  height: 8.8% !important;
  z-index: 22 !important;
  transform: none !important;
}

.painted-beige.phase-room .beige-ac-remote img {
  opacity: 0 !important;
  pointer-events: none !important;
}

.painted-beige.phase-room .beige-ac-remote.is-next::before {
  display: none !important;
}

.painted-beige.phase-room.curtains-closed .beige-hotspot.is-next::before,
.painted-beige.phase-room.curtains-closed .beige-hotspot.is-done::before {
  content: none !important;
  display: none !important;
}

.painted-beige.phase-room .beige-phone {
  pointer-events: none !important;
}

/* Beige guidance: keep required post-curtain steps visible and tappable. */
.painted-beige.phase-room .beige-water {
  left: 81.4% !important;
  top: 43.6% !important;
  width: 11.2% !important;
  height: 20.4% !important;
  z-index: 24 !important;
  transform: none !important;
}

.painted-beige.phase-room.curtains-closed .beige-heater.is-next::before,
.painted-beige.phase-room.curtains-closed .beige-water.is-next::before {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  inset: -8% !important;
  border: 2px solid rgba(250, 240, 214, 0.82) !important;
  background: rgba(250, 240, 214, 0.06) !important;
  box-shadow: 0 0 0 2px rgba(20, 14, 10, 0.45), 0 0 18px rgba(250, 240, 214, 0.28) !important;
  animation: beige-next-step 1150ms ease-in-out infinite !important;
  pointer-events: none !important;
}

.painted-beige.phase-room.water-placed .beige-water {
  pointer-events: none !important;
}

.painted-beige.phase-room.water-placed .beige-water.is-next::before {
  display: none !important;
}
.audio-settings {
  display: grid;
  gap: 8px;
  margin-top: 8px;
}

.audio-settings button {
  width: 100%;
}

.audio-settings__volume {
  display: grid;
  grid-template-columns: 1fr;
  gap: 5px;
  padding: 8px;
  color: #f4efe6;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 13px;
  line-height: 1.1;
  background: rgba(9, 12, 16, 0.84);
  border: 1px solid rgba(244, 239, 230, 0.24);
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.35);
}

.audio-settings__volume input {
  width: 100%;
  accent-color: #d5b16f;
}

.audio-settings__volume span:last-child {
  justify-self: end;
  font-size: 12px;
  opacity: 0.78;
}

/* Absolute fix: no non-Kitty hotspot boxes in the lying frame. */
.painted-beige.phase-lying .beige-hotspot:not(.beige-kitty),
.painted-beige.phase-lying .beige-hotspot:not(.beige-kitty)::before,
.painted-beige.phase-lying .beige-hotspot:not(.beige-kitty)::after {
  content: none !important;
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  animation: none !important;
}

.painted-beige.phase-lying .beige-kitty {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}

/* Final Beige interaction corrections: exact hints without stale table/bed boxes. */
.beige-stage.phase-room .beige-water,
.painted-beige.phase-room .beige-water {
  left: 82.8% !important;
  top: 49.2% !important;
  width: 7.8% !important;
  height: 13.4% !important;
  z-index: 48 !important;
  transform: none !important;
}

.beige-stage.phase-room.curtains-closed .beige-ac-remote.is-next::before,
.painted-beige.phase-room.curtains-closed .beige-ac-remote.is-next::before {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  inset: -18% !important;
  border: 2px solid rgba(250, 240, 214, 0.82) !important;
  background: rgba(250, 240, 214, 0.055) !important;
  box-shadow: 0 0 0 2px rgba(20, 14, 10, 0.45), 0 0 18px rgba(250, 240, 214, 0.28) !important;
  animation: beige-next-step 1150ms ease-in-out infinite !important;
  pointer-events: none !important;
}

.beige-stage.phase-room.curtains-closed .beige-water.is-next::before,
.painted-beige.phase-room.curtains-closed .beige-water.is-next::before {
  inset: -14% !important;
}

.beige-stage.phase-lying .beige-hotspot:not(.beige-kitty),
.beige-stage.phase-lying .beige-hotspot:not(.beige-kitty)::before,
.beige-stage.phase-lying .beige-hotspot:not(.beige-kitty)::after,
.painted-beige.phase-lying .beige-hotspot:not(.beige-kitty),
.painted-beige.phase-lying .beige-hotspot:not(.beige-kitty)::before,
.painted-beige.phase-lying .beige-hotspot:not(.beige-kitty)::after {
  content: none !important;
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  animation: none !important;
}

.beige-stage.phase-lying .beige-kitty,
.painted-beige.phase-lying .beige-kitty {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}

/* Village: after the laptop starts the match, the projected game is the next story beat. */
.painted-village.match-started:not(.match-commented) .village-watch-match.is-next::before,
.village-stage.match-started:not(.match-commented) .village-watch-match.is-next::before {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  inset: -3% !important;
  border: 2px solid rgba(205, 222, 234, 0.78) !important;
  background: rgba(150, 180, 205, 0.045) !important;
  box-shadow: 0 0 0 2px rgba(8, 12, 18, 0.42), 0 0 22px rgba(175, 210, 235, 0.3) !important;
  animation: parcel-pulse 1200ms ease-in-out infinite !important;
  pointer-events: none !important;
}

.painted-village.snacks-shared:not(.final-dialogue) .village-watch-kitty.is-next::before,
.village-stage.snacks-shared:not(.final-dialogue) .village-watch-kitty.is-next::before {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  inset: -7% !important;
  border: 2px solid rgba(248, 232, 202, 0.74) !important;
  background: rgba(248, 232, 202, 0.045) !important;
  box-shadow: 0 0 0 2px rgba(8, 12, 18, 0.42), 0 0 22px rgba(248, 232, 202, 0.26) !important;
  animation: parcel-pulse 1200ms ease-in-out infinite !important;
  pointer-events: none !important;
}

/* Interaction pass: when an inventory item is selected, only valid targets glow. */
.hotspot.accepts-selected::before,
.beige-hotspot.accepts-selected::before,
.parcel-hotspot.accepts-selected::before,
.village-hotspot.accepts-selected::before {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  inset: -10% !important;
  border: 2px solid rgba(244, 239, 230, 0.88) !important;
  border-radius: 4px !important;
  background: rgba(244, 239, 230, 0.055) !important;
  box-shadow: 0 0 0 2px rgba(8, 12, 18, 0.46), 0 0 18px rgba(244, 239, 230, 0.3) !important;
  animation: selected-target-pulse 1150ms ease-in-out infinite !important;
  pointer-events: none !important;
}

@keyframes selected-target-pulse {
  0%, 100% {
    opacity: 0.42;
    transform: scale(0.985);
  }
  50% {
    opacity: 1;
    transform: scale(1.015);
  }
}

/* 2026-07-03 final interaction polish. */
.achievement-panel {
  position: fixed !important;
  inset: 0 !important;
  z-index: 10000 !important;
}

.achievement-panel__card {
  width: min(84vw, 560px) !important;
  max-height: min(82vh, 560px) !important;
}

.final-fade .play-again-button {
  left: 50% !important;
  right: auto !important;
  top: 54% !important;
  transform: translate(-50%, -50%) !important;
  z-index: 4 !important;
  opacity: 0.96 !important;
}

.final-fade.show .play-again-button:not([hidden]) {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.painted-village.match-started:not(.match-commented):not(.snacks-shared) .village-watch-match.is-next::before {
  display: none !important;
  content: none !important;
}

.painted-village.match-started.snacks-shared:not(.match-commented) .village-watch-match.is-next::before,
.village-stage.match-started.snacks-shared:not(.match-commented) .village-watch-match.is-next::before {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  inset: -3% !important;
  border: 2px solid rgba(205, 222, 234, 0.78) !important;
  background: rgba(150, 180, 205, 0.045) !important;
  box-shadow: 0 0 0 2px rgba(8, 12, 18, 0.42), 0 0 22px rgba(175, 210, 235, 0.3) !important;
  animation: parcel-pulse 1200ms ease-in-out infinite !important;
  pointer-events: none !important;
}

.painted-village.snacks-shared:not(.match-commented) .village-watch-kitty.is-next::before {
  display: none !important;
  content: none !important;
}

/* 2026-07-03 pass: Beige exact interaction targets and Parcel intro masking. */
.parcel-stage.intro-active {
  background: #02060c !important;
}

.parcel-stage.intro-active .parcel-layer,
.parcel-stage.intro-active .parcel-hotspot,
.parcel-stage.intro-active .scene-title,
.parcel-stage.intro-active .scene-inventory,
.parcel-stage.intro-active .settings-button {
  visibility: hidden !important;
}

.parcel-stage.intro-active .parcel-intro-title {
  visibility: visible !important;
}

.beige-stage.phase-room .beige-ac-remote,
.painted-beige.phase-room .beige-ac-remote {
  left: 80.4% !important;
  top: 67.9% !important;
  width: 9.2% !important;
  height: 8.6% !important;
  z-index: 49 !important;
  transform: none !important;
}

.beige-stage.phase-room .beige-water,
.painted-beige.phase-room .beige-water {
  left: 85.0% !important;
  top: 52.6% !important;
  width: 6.8% !important;
  height: 13.8% !important;
  z-index: 49 !important;
  transform: none !important;
}

.beige-stage.phase-room.curtains-closed .beige-ac-remote.is-next::before,
.painted-beige.phase-room.curtains-closed .beige-ac-remote.is-next::before,
.beige-stage.phase-room.curtains-closed .beige-water.is-next::before,
.painted-beige.phase-room.curtains-closed .beige-water.is-next::before {
  inset: -12% !important;
}

.achievement-toast {
  position: fixed !important;
  right: max(3.2vw, env(safe-area-inset-right)) !important;
  top: max(12vh, env(safe-area-inset-top)) !important;
  z-index: 9998 !important;
}
