/* One predictable modal layer. Decorative layers must never consume taps. */
#twoPersonGarden .tg-vow-entry,
#twoPersonGarden .tg-wedding-menu { display:none !important; }

#roseWeddingModal,
#tgDreamCollection,
#tgSceneGacha,
#tgPond,
#tgKitchen,
#tgVow {
  isolation:isolate;
  touch-action:manipulation;
}

#roseWeddingModal[hidden],
#tgVow[hidden],
#tgDreamCollection[hidden],
#tgSceneGacha[hidden],
#tgPond[hidden],
#tgKitchen[hidden] {
  display:none !important;
  pointer-events:none !important;
}

#roseWeddingModal .rw-backdrop { pointer-events:auto !important; cursor:default; }
#roseWeddingModal .rw-card { pointer-events:auto !important; }
#roseWeddingModal .rw-card > header { position:relative; z-index:4; }
#roseWeddingModal .rw-card > header > button,
#roseWeddingModal [data-rose-ui-close] {
  position:relative;
  z-index:5;
  pointer-events:auto !important;
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
}

.rw-stability-empty > div { display:flex; gap:10px; justify-content:center; flex-wrap:wrap; }

/* Keep existing button feedback visible after the interaction-layer cleanup. */
#twoPersonGarden button:not(:disabled),
#roseWeddingModal button:not(:disabled) {
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
  transition:transform .16s ease, filter .16s ease, box-shadow .16s ease;
}
#twoPersonGarden button:not(:disabled):active,
#roseWeddingModal button:not(:disabled):active {
  transform:scale(.965) !important;
  filter:brightness(.96);
}

@media (max-width:560px) {
  #roseWeddingModal { padding:12px !important; }
  #roseWeddingModal .rw-card { max-height:calc(100dvh - 24px); border-radius:26px; }
  #roseWeddingModal .rw-card > header { height:74px; padding:13px 16px; }
  #roseWeddingModal .rw-card > header h2 { font-size:23px; }
  #roseWeddingModal .rw-card > header > button { width:44px; height:44px; flex:0 0 44px; }
  #roseWeddingModal .rw-body { max-height:calc(100dvh - 98px); padding:18px 14px 24px; }
}
