/* 今回指定された演出のみ。対局・結果画面の配置は変更しない。 */
.app-shell, .app-shell button {
  -webkit-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
}
.app-shell input, .app-shell textarea {
  -webkit-user-select: text;
  user-select: text;
}
/* 和了の選択肢が出た時から光らせる。卓全体への暗転・光線は置かない。 */
#win-confirm-prompt.clear-win-offer { background: none; }
#win-confirm-prompt.clear-win-offer :is(.win-confirm-backdrop, .win-confirm-rays, .win-confirm-shock, .win-confirm-sparks),
#win-confirm-prompt.clear-win-offer .win-confirm-copy::before,
#win-confirm-prompt.clear-win-offer .win-confirm-copy::after { display: none; }
#win-confirm-prompt.clear-win-offer .win-confirm-copy {
  width: clamp(240px, 28cqw, 600px);
  gap: 14px;
  transform: none;
  animation: none;
}
#win-confirm-prompt.tile-anchored .win-confirm-copy {
  position: absolute;
  left: var(--offer-left, 60%);
  top: var(--offer-top, 60%);
  width: clamp(160px, 17cqw, 380px);
  gap: 8px;
}
#win-confirm-prompt.clear-win-offer #win-button {
  width: 100%;
  min-width: 0;
  min-height: 0;
  padding: .2em .35em;
  border: 6px solid transparent;
  border-radius: 14px;
  clip-path: none;
  background: linear-gradient(#fffdf0, #fff2ce) padding-box,
    linear-gradient(110deg, #ff6b9d, #ffcf54, #9cffac, #65ecff, #b395ff, #ff6b9d) border-box;
  background-size: 100% 100%, 250% 100%;
  color: #381632;
  font-family: var(--ui-font);
  font-size: clamp(52px, 6cqw, 130px);
  font-weight: 900;
  line-height: 1.2;
  letter-spacing: .12em;
  text-indent: .12em;
  text-shadow: none;
  box-shadow: 0 0 8px #fff, -12px 0 32px #ff76c7b8, 12px 0 32px #65ecffd4, 0 0 56px #ffe593aa;
  animation: offered-rainbow 2s linear infinite;
}
#win-confirm-prompt.tile-anchored #win-button { font-size: clamp(40px, 4.2cqw, 90px); }
#win-confirm-prompt.clear-win-offer #pass-button {
  font-size: clamp(20px, 1.6cqw, 34px);
  padding: .45em 1.3em;
  color: #fff7ef;
  background: #241329;
  text-shadow: none;
}
.app-shell:has(> .win-confirm-prompt.clear-win-offer:not([hidden])) #player-hand > .tile { opacity: 1; filter: none; }
.app-shell:has(> .win-confirm-prompt.tile-anchored:not([hidden])) #player-hand > .tile.drawn {
  box-shadow: 0 0 0 3px #fff2ac, 0 0 24px #ffda56;
}
@keyframes offered-rainbow {
  from { background-position: 0 0, 0% 50%; }
  to { background-position: 0 0, 250% 50%; }
}
/* アイテム獲得は元の中央配置を保ち、説明文と受取操作を大きく読む。 */
#reward-result { padding: 3% 4%; gap: 1em; }
#reward-result > small { display: none; }
#reward-result > strong { font-family: var(--display-font); font-size: clamp(32px, 5cqw, 112px); line-height: 1.3; white-space: normal; overflow-wrap: anywhere; text-shadow: none; }
#reward-item-description { max-width: 28em; font-size: clamp(24px, 2.3cqw, 52px); line-height: 1.6; color: #fff7ef; text-align: left; }
#reward-confirm-button { font-size: clamp(24px, 2cqw, 44px); padding: .6em 1.5em; white-space: normal; }
.reward-roulette.is-won .reward-roulette-panel { max-height: 94%; overflow-y: auto; }
/* 発動表示は一文を中央に置く。補助見出し・背後の大文字・三列の空欄は廃止。 */
#cheat-cutin .cheat-cutin-symbol { display: none; }
#cheat-cutin .cheat-cutin-band {
  width: 94%;
  min-height: 30%;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  place-items: center;
  padding: 3% 4%;
  gap: 0;
  transform: none;
  background: #26101f;
  border-block: 2px solid #e7cde9;
  box-shadow: 0 10px 30px #0009;
}
#cheat-cutin #cheat-cutin-name {
  width: 100%;
  color: #fff7ef;
  font-family: var(--ui-font);
  font-size: min(clamp(32px, 6cqw, 140px), calc(96cqw / var(--cutin-name-chars, 10)));
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0;
  text-align: center;
  white-space: nowrap;
  -webkit-text-stroke: 0;
  text-shadow: none;
}
#cheat-cutin.active .cheat-cutin-band { animation: readable-cutin 1180ms ease both; }
/* 台詞を画面端・顔・光線から離す。立体文字の多重影をなくす。 */
#anna-reaction-cut-in .anna-reaction-copy {
  position: absolute;
  inset: auto 4% 5%;
  width: auto;
  max-width: none;
  margin: 0;
  padding: 1.5% 2%;
  transform: none;
  background: #160e1bed;
  border-block: 1px solid #bfa9cd;
  text-align: center;
}
#anna-reaction-cut-in .anna-reaction-copy strong {
  max-width: 100%;
  color: #fff7ef;
  font-family: var(--ui-font);
  font-size: clamp(40px, 8cqw, 160px);
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: .02em;
  text-indent: 0;
  white-space: normal;
  overflow-wrap: anywhere;
  -webkit-text-stroke: 0;
  text-shadow: none;
}
#anna-reaction-cut-in.long-copy .anna-reaction-copy strong,
#anna-reaction-cut-in.extra-long-copy .anna-reaction-copy strong {
  font-size: clamp(28px, 4.5cqw, 96px);
}
#anna-reaction-cut-in.cinematic-reaction .anna-reaction-eye { top: 8%; height: 52%; }
#anna-reaction-cut-in.active .anna-reaction-copy {
  animation: readable-cutin var(--anna-reaction-duration, .98s) ease both;
}
@keyframes readable-cutin {
  0%, 100% { opacity: 0; }
  10%, 90% { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  #win-confirm-prompt.clear-win-offer #win-button,
  #cheat-cutin.active .cheat-cutin-band,
  #anna-reaction-cut-in.active .anna-reaction-copy { animation: none; }
}
