.kuro-prototype { --route-accent: #c7d3e7; }
.kuro-prototype .primary-btn { border-color: rgba(211, 224, 244, .7); box-shadow: 0 0 24px rgba(182, 205, 238, .18); }
.kuro-prototype .trial-label { color: #dbe7f8; }
.terminal-screen[data-theme="kuro-record"] { --terminal-accent: #d7e2f3; --terminal-glow: rgba(168, 195, 231, .28); }
.terminal-screen[data-theme="kuro-compare"] { --terminal-accent: #d8d1ef; --terminal-glow: rgba(183, 164, 225, .28); }
.terminal-screen[data-theme="kuro-index"] { --terminal-accent: #eef4ff; --terminal-glow: rgba(210, 226, 251, .35); }
.terminal-screen[data-theme="kuro-future"] { --terminal-accent: #e8e0b7; --terminal-glow: rgba(220, 211, 156, .3); }
.terminal-screen[data-theme="kuro-moon"] { --terminal-accent: #d9def2; --terminal-glow: rgba(184, 193, 232, .3); }
.terminal-screen[data-theme="kuro-audio"] { --terminal-accent: #b9cee9; --terminal-glow: rgba(139, 180, 225, .32); }
.terminal-screen[data-theme="kuro-index-danger"] { --terminal-accent: #e0bac6; --terminal-glow: rgba(220, 124, 151, .34); }
.terminal-screen[data-theme="kuro-decision"] { --terminal-accent: #ddd5ad; --terminal-glow: rgba(214, 198, 124, .32); }
.terminal-screen[data-theme^="kuro-"] .terminal-frame { background: linear-gradient(145deg, rgba(12, 17, 28, .97), rgba(22, 28, 41, .94)); }
.terminal-screen[data-theme="kuro-record"] .terminal-line:nth-child(1) { border-left: 3px solid #8cc6b4; }
.terminal-screen[data-theme="kuro-record"] .terminal-line:nth-child(2) { border-left: 3px solid #b8a8dc; }
.terminal-screen[data-theme="kuro-record"] .terminal-line:nth-child(3) { border-left: 3px solid #d8bd82; }
.terminal-screen[data-theme="kuro-record"] .terminal-line { padding-left: .72rem; }
.terminal-screen[data-theme="kuro-compare"] .terminal-body { display: grid; grid-template-columns: 1fr 1fr; gap: .55rem; }
.terminal-screen[data-theme="kuro-compare"] .terminal-line { display: grid; align-content: start; }
.terminal-screen[data-theme="kuro-index"] .terminal-line.is-dim { opacity: .42; text-decoration: line-through; text-decoration-thickness: 1px; }
.terminal-screen[data-theme="kuro-index-danger"] .terminal-line.is-dim { opacity: .28; filter: blur(.35px); }
.terminal-screen[data-theme="kuro-audio"] .terminal-line { border-left: 3px solid rgba(156, 192, 230, .55); padding-left: .72rem; }
.terminal-screen[data-theme="kuro-decision"] .terminal-line { border-left: 3px solid rgba(219, 204, 142, .58); padding-left: .72rem; }
@media (max-width: 640px) { .terminal-screen[data-theme="kuro-compare"] .terminal-body { grid-template-columns: 1fr; } }

/* R-3予定表：過去資料ではなく、二人が共有した未実行の未来を一枚の表として見せる。 */
.terminal-screen[data-theme="kuro-future"] .terminal-frame { position: relative; overflow: hidden; border-color: rgba(222, 231, 247, .4); }
.terminal-screen[data-theme="kuro-future"] .terminal-body { display: grid; grid-template-columns: 1fr 1fr; gap: .55rem; }
.terminal-screen[data-theme="kuro-future"] .terminal-line { min-height: 5rem; background: linear-gradient(135deg, rgba(216, 226, 244, .07), rgba(224, 205, 146, .035)); }
.terminal-screen[data-theme="kuro-future"] .terminal-line:nth-child(2) { border-color: rgba(231, 224, 176, .6); box-shadow: inset 0 0 22px rgba(221, 211, 157, .08), 0 0 18px rgba(198, 216, 246, .08); }
@media (max-width: 640px) {
  .terminal-screen[data-theme="kuro-future"] { top: 5.8dvh; width: 96vw; max-height: 51dvh; }
  .terminal-screen[data-theme="kuro-future"] .terminal-header { align-items: flex-start; gap: .45rem; padding: .42rem .55rem; font-size: .48rem; letter-spacing: .09em; line-height: 1.25; }
  .terminal-screen[data-theme="kuro-future"] .terminal-header strong,
  .terminal-screen[data-theme="kuro-future"] .terminal-header span { max-width: 49%; }
  .terminal-screen[data-theme="kuro-future"] .terminal-header span { text-align: right; }
  .terminal-screen[data-theme="kuro-future"] .terminal-body { grid-template-columns: 1fr 1fr; min-height: 0; gap: .32rem; padding: .42rem .5rem; }
  .terminal-screen[data-theme="kuro-future"] .terminal-line { grid-template-columns: minmax(2.7rem, .36fr) 1fr; min-height: 4.15rem; gap: .3rem; padding: .32rem; font-size: .57rem; line-height: 1.32; letter-spacing: 0; }
  .terminal-screen[data-theme="kuro-future"] .terminal-footer { padding: .38rem .55rem; font-size: .46rem; letter-spacing: .07em; }
}

/* FX-R01：現在の屋上へ三十年前の屋上を重ねる5状態。 */
.kuro-prototype .backdrop::after {
  content: "";
  position: absolute;
  inset: 0;
  background: url("../assets/images/fx/rooftop-past-overlay-v1.webp") center / cover no-repeat;
  opacity: 0;
  pointer-events: none;
  transition: opacity .9s ease, filter .9s ease, clip-path .9s ease;
}
.kuro-prototype .game-screen[data-scene-effect="past-faint"] .backdrop::after { opacity: .16; filter: grayscale(.25) brightness(1.12) saturate(.72); }
.kuro-prototype .game-screen[data-scene-effect="past-layered"] .backdrop::after { opacity: .38; filter: grayscale(.18) brightness(1.08) saturate(.8); }
.kuro-prototype .game-screen[data-scene-effect="past-split"] .backdrop::after { opacity: .58; clip-path: inset(0 0 0 48%); filter: brightness(1.1) saturate(.76); }
.kuro-prototype .game-screen[data-scene-effect="past-fixed"] .backdrop::after { opacity: .94; filter: brightness(1.08) saturate(.68) contrast(1.04); }
.kuro-prototype .game-screen[data-scene-effect="past-closing"] .backdrop::after { opacity: 0; clip-path: inset(0 50% 0 50%); filter: brightness(1.3) saturate(.55); }

/* R-3：過去像を伴わず、未実行の予定が指す未来位置だけを銀線で示す。 */
.kuro-prototype .backdrop::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  opacity: 0;
  background:
    radial-gradient(circle at 73% 24%, rgba(240, 246, 255, .95) 0 2px, rgba(194, 215, 247, .45) 3px, transparent 18px),
    linear-gradient(32deg, transparent 0 49.65%, rgba(202, 222, 249, .78) 49.85% 50.05%, transparent 50.25%);
  filter: drop-shadow(0 0 8px rgba(188, 216, 255, .75));
  transition: opacity .65s ease, filter .35s ease;
}
.kuro-prototype .game-screen[data-scene-effect="future-line"] .backdrop::before { opacity: .72; }
.kuro-prototype .game-screen[data-scene-effect="future-line-forming"] .backdrop::before { opacity: .22; animation: kuro-future-forming 1.8s ease-in-out infinite; }
.kuro-prototype .game-screen[data-scene-effect="future-line-faint"] .backdrop::before { opacity: .2; }
.kuro-prototype .game-screen[data-scene-effect="future-line-bright"] .backdrop::before { opacity: 1; filter: drop-shadow(0 0 18px rgba(224, 237, 255, 1)); animation: kuro-future-bright 1.15s ease-out both; }
@keyframes kuro-future-forming { 0%, 100% { opacity: .12; filter: drop-shadow(0 0 5px rgba(188, 216, 255, .45)); } 50% { opacity: .34; filter: drop-shadow(0 0 13px rgba(210, 230, 255, .9)); } }
@keyframes kuro-future-bright { 0% { opacity: .48; filter: drop-shadow(0 0 7px rgba(188, 216, 255, .6)); } 38% { opacity: 1; filter: drop-shadow(0 0 28px #fff); } 100% { opacity: .86; filter: drop-shadow(0 0 15px rgba(224, 237, 255, .92)); } }

/* R-6：夜明けと、終止しないBAD反復。 */
.kuro-prototype .game-screen[data-scene-effect="dawn"] .backdrop::before,
.kuro-prototype .game-screen[data-scene-effect="dawn-bright"] .backdrop::before {
  opacity: 1;
  background: linear-gradient(to top, rgba(244, 185, 117, .34), rgba(129, 158, 206, .13) 42%, transparent 72%);
  filter: none;
}
.kuro-prototype .game-screen[data-scene-effect="dawn-bright"] .backdrop::before { background: linear-gradient(to top, rgba(255, 211, 143, .52), rgba(167, 187, 219, .16) 48%, transparent 78%); }
.kuro-prototype .game-screen[data-scene-effect="bad-pulse"] .backdrop::after {
  opacity: .82;
  filter: brightness(1.06) saturate(.66);
  animation: kuro-bad-pulse 3.2s ease-in-out infinite;
}
@keyframes kuro-bad-pulse { 0%, 100% { opacity: .58; } 50% { opacity: .92; } }

@media (max-width: 640px) {
  .kuro-prototype .event-cg[data-scene="kuro-dawn-confession"] { object-position: 62% center; }
  .kuro-prototype .event-cg[data-scene="kuro-present-hand"] { object-position: 63% center; }
}

/* FX-R02：純黒背景の銀色残響をscreen合成する。 */
.kuro-prototype .event-cg[data-scene="kuro-past-residue"] {
  z-index: 3;
  inset: auto 4% 16% auto;
  width: min(31vw, 430px);
  height: min(68dvh, 760px);
  object-fit: contain;
  object-position: right bottom;
  mix-blend-mode: screen;
  filter: saturate(.88) contrast(1.12) brightness(.86);
  -webkit-mask-image: radial-gradient(ellipse 59% 58% at 55% 51%, #000 45%, rgba(0,0,0,.88) 67%, transparent 94%);
  mask-image: radial-gradient(ellipse 59% 58% at 55% 51%, #000 45%, rgba(0,0,0,.88) 67%, transparent 94%);
  pointer-events: none;
}
.kuro-prototype .event-cg[data-scene="kuro-past-residue"][data-variant="kuro-residue-faint"] { opacity: .29; filter: saturate(.72) contrast(1.16) brightness(.72) blur(.65px); }
.kuro-prototype .event-cg[data-scene="kuro-past-residue"][data-variant="kuro-residue-clear"] { opacity: .58; }
@media (max-width: 640px) {
  .kuro-prototype .event-cg[data-scene="kuro-past-residue"] { inset: auto -5% 25dvh auto; width: 48vw; height: 52dvh; }
}
