/* Shinobi Rescue: all game styles are scoped to the new arcade panel. */
.game-modal[data-game="rescue"] .game-modal-content { width:min(960px,100%); background:#10151e; border-color:#3b3942; padding:20px; }
.game-modal[data-game="rescue"] .game-modal-header { margin-bottom:12px; }
.game-modal[data-game="rescue"] .game-heading h3 { color:#a7adba; font-size:11px; text-transform:uppercase; letter-spacing:.13em; }
.rescue-game { --sr-accent:#ffba69; --sr-energy:#80e8ff; color:#f3efe9; font:14px/1.5 system-ui,sans-serif; }
.rescue-game *, .rescue-game *::before, .rescue-game *::after { box-sizing:border-box; }
.rescue-game h4,.rescue-game h5,.rescue-game p { margin:0; }
.rescue-game button { font:inherit; }
.rescue-game button:focus-visible { outline:2px solid var(--sr-accent); outline-offset:4px; }
.sr-heading { display:flex; justify-content:space-between; align-items:center; gap:12px; margin:0 0 18px; }
.sr-eyebrow { color:var(--sr-accent); font:10px/1.5 ui-monospace,monospace; letter-spacing:.14em; }
.sr-heading h4 { font-size:34px; letter-spacing:-1.4px; line-height:1.15; margin-top:3px; font-weight:750; }
.sr-text-button { background:transparent; border:0; color:#c7cbd3; padding:9px 2px; font-size:12px!important; text-decoration:underline; text-underline-offset:4px; }
.sr-text-button:hover { color:var(--sr-accent); }
.sr-characters { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin-bottom:16px; }
.sr-character { display:flex; align-items:center; gap:10px; background:#1c222d; border:1px solid #353b47; color:#e4e3e6; border-radius:8px; padding:0 12px 0 0; text-align:left; overflow:hidden; min-width:0; position:relative; transition:background .2s,border-color .2s; }
.sr-character[aria-pressed="true"] { background:color-mix(in srgb,var(--card-accent) 13%,#141925); border-color:var(--card-accent); box-shadow:inset 0 -2px var(--card-accent); }
.sr-character:hover { border-color:var(--card-accent); }
.sr-portrait { width:70px; height:78px; flex:0 0 70px; align-self:flex-end; background:radial-gradient(ellipse at bottom,var(--card-accent),transparent 75%); }
.sr-portrait { position:relative; background:#242635; }
.sr-portrait-image { display:block; width:100%; height:100%; background-size:500% auto; background-position:17% 23%; background-repeat:no-repeat; }
[data-shinobi="sasuke"] .sr-portrait-image { background-position:19% 18%; }
[data-shinobi="sakura"] .sr-portrait-image { background-position:18% 25%; }
[data-shinobi="kakashi"] .sr-portrait-image { background-position:19% 19%; }
.sr-character-copy { display:flex; flex-direction:column; gap:3px; min-width:0; }
.sr-character strong { font-size:15px; }
.sr-character small { font-size:10px; color:#b5b6c0; white-space:nowrap; }
.sr-selected-mark { margin-left:auto; color:var(--card-accent); opacity:0; }
.sr-character[aria-pressed="true"] .sr-selected-mark { opacity:1; }
.sr-stage { position:relative; background:#172230; border:1px solid #3a3a45; border-radius:10px; overflow:hidden; isolation:isolate; }
.sr-scene-top { position:absolute; top:17px; left:20px; right:20px; display:flex; justify-content:space-between; align-items:center; gap:12px; font:9px/1.5 ui-monospace,monospace; color:#e0d7d4; letter-spacing:.12em; text-shadow:0 1px 6px #10121c; }
.sr-signal { display:flex; align-items:center; gap:6px; white-space:nowrap; }
.sr-signal i { width:5px; height:5px; border-radius:50%; background:var(--sr-accent); box-shadow:0 0 10px var(--sr-accent); }
.sr-nameplates { position:absolute; bottom:15px; left:0; right:0; display:grid; grid-template-columns:46% 8% 46%; pointer-events:none; }
.sr-nameplates span { display:flex; flex-direction:column; align-items:center; gap:2px; }
.sr-nameplates small { font:8px/1.4 ui-monospace,monospace; letter-spacing:.18em; color:#aba8b6; }
.sr-nameplates b { font-size:14px; font-weight:600; }
.sr-nameplates span:first-child b { color:var(--sr-accent); }
.sr-nameplates span:nth-child(2) small { color:#f0c6c5; }
.sr-briefing { display:grid; grid-template-columns:1fr auto; align-items:center; gap:25px; padding:21px 2px 16px; }
.sr-briefing h5 { font-size:25px; font-weight:650; letter-spacing:-.7px; margin:5px 0 7px; }
.sr-briefing p { font-size:13px; color:#bcc0ca; max-width:560px; }
.sr-briefing .sr-rule { margin-top:8px; color:#e8d8bd; font-size:11px; }
.sr-briefing .sr-ability-brief { margin-top:5px; color:var(--sr-accent); font-size:11px; }
.sr-deploy { display:flex; flex-direction:column; align-items:center; gap:9px; }
.sr-deploy>span { color:#a3a8b5; font:10px ui-monospace,monospace; }
.sr-primary { display:flex; justify-content:space-between; align-items:center; gap:26px; background:var(--sr-accent); color:#201a26; border:1px solid transparent; border-radius:6px; padding:14px 21px; font-weight:750!important; min-height:48px; white-space:nowrap; transition:filter .15s; }
.sr-primary:hover { filter:brightness(1.13); }
.sr-primary span { font-size:20px; font-weight:400; }
.sr-pressure { margin:17px 0 20px; }
.sr-pressure>div:first-child { display:flex; justify-content:space-between; gap:10px; align-items:center; font:10px/1.5 ui-monospace,monospace; text-transform:uppercase; letter-spacing:.09em; }
.sr-pressure strong { color:#ead1bd; font-weight:500; }
.sr-pressure-track { display:flex; gap:5px; margin-top:7px; }
.sr-pressure-track i { flex:1; height:4px; background:#343342; border-radius:1px; transition:background .25s; }
.sr-pressure-track i.is-filled { background:#ee827e; box-shadow:0 0 12px #ee827e30; }
.sr-puzzle-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:30px; align-items:center; }
.sr-puzzle #srClue { color:#e2dfe4; font-size:14px; margin:0 0 14px; padding-left:10px; border-left:2px solid var(--sr-accent); }
.sr-word-meta { color:#adb4c0; font-size:11px; margin:6px 0 16px!important; }
.sr-help-actions { display:flex; gap:8px; margin-top:16px; }
.sr-help-button { flex:1; min-width:0; text-align:left; padding:9px 11px; border:1px solid #414958; border-radius:6px; color:#e1e3ea; background:#1b2330; }
.sr-help-button>span { display:block; font-size:12px; font-weight:600; }
.sr-help-button>small { display:block; font-size:10px; line-height:1.5; color:#aeb8ca; margin-top:2px; }
.sr-help-button:not(:disabled):hover { border-color:var(--sr-accent); background:#283142; }
.sr-ability-button { border-color:color-mix(in srgb,var(--sr-accent) 45%,#303948); }
.sr-ability-button>span { color:var(--sr-accent); }
.sr-help-button:disabled { opacity:.6; cursor:default; }
.sr-ability-feedback { margin-top:10px; padding:10px 12px; border-left:2px solid var(--sr-accent); background:#171f2c; border-radius:0 5px 5px 0; }
.sr-ability-feedback p { font-size:12px; color:#e0d9cc; }
.sr-ability-feedback:has(svg) { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.sr-ability-feedback:has(svg) #srSketch { flex:0 0 150px; max-width:65%; }
.sr-scout-sketch { display:block; width:100%; height:auto; color:#524738; background:#e2d6be; border:4px solid #c5b89e; border-radius:2px; }
.rescue-game[data-phase="won"] .sr-help-actions, .rescue-game[data-phase="lost"] .sr-help-actions,
.rescue-game[data-phase="won"] .sr-word-meta, .rescue-game[data-phase="lost"] .sr-word-meta,
.rescue-game[data-phase="won"] .sr-ability-feedback, .rescue-game[data-phase="lost"] .sr-ability-feedback { display:none; }
.sr-word { width:fit-content; max-width:100%; display:flex; gap:5px; flex-wrap:wrap; }
.sr-word:focus-visible { outline:1px solid var(--sr-accent); outline-offset:6px; border-radius:4px; }
.sr-word span { display:grid; place-items:center; width:clamp(22px,3vw,35px); height:41px; font:600 19px ui-monospace,monospace; background:#1a2330; border:1px solid #344251; border-bottom:2px solid #68798e; border-radius:4px; color:#8da0b5; }
.sr-word .is-found { color:var(--sr-energy); border-color:color-mix(in srgb,var(--sr-energy) 40%,#273342); background:color-mix(in srgb,var(--sr-energy) 8%,#141c27); }
.sr-word .is-revealed { color:#ff9a94; border-color:#aa6568; }
.sr-keyboard { display:flex; flex-direction:column; gap:6px; }
.sr-key-row { display:flex; justify-content:center; gap:5px; }
.sr-key-row button { display:grid; place-items:center; flex:0 1 40px; min-width:0; height:43px; color:#e6e6eb; background:#252d3a; border:1px solid #424b5b; border-bottom-width:3px; border-radius:5px; padding:0; font:600 13px ui-monospace,monospace; }
.sr-key-row button:not(:disabled):hover { background:#3c4656; border-color:var(--sr-accent); }
.rescue-game .sr-key-row button:disabled { opacity:1; }
.sr-key-row button.is-hit { color:var(--sr-energy); border-color:#547980; background:#23393f; }
.sr-key-row button.is-miss { color:#a09ba5; background:#1a1f29; border-color:#2c323d; text-decoration:line-through; }
.sr-key-row button.is-excluded { color:#bbace0; background:#242034; border-color:#4c425d; text-decoration:line-through; }
.sr-key-help { margin-top:8px!important; color:#a4a8b5; font-size:10px; text-align:center; }
.sr-status { color:#aeb6c5; font-size:11px; line-height:1.5; margin-top:13px!important; min-height:33px; }
.sr-result { display:flex; align-items:center; justify-content:space-between; gap:18px; border-top:1px solid #353b47; padding:18px 0 4px; margin-top:6px; }
.sr-result h5 { font-size:26px; line-height:1.25; letter-spacing:-.7px; margin:4px 0; }
.sr-result p { font-size:12px; color:#c0c4ce; }
.sr-footer { display:flex; justify-content:space-between; align-items:start; gap:20px; margin-top:15px; padding-top:12px; border-top:1px solid #2e3441; color:#9aa1b1; font-size:10px; }
.sr-footer>span { flex:1; }
.sr-footer details { max-width:56%; text-align:right; }
.sr-footer summary { cursor:pointer; color:#c7ccd7; min-height:24px; }
.sr-footer details p { padding:10px 0; text-align:left; line-height:1.7; font-size:12px; }
.sr-reader { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.sr-impact-label { position:absolute; top:9%; left:24%; right:24%; text-align:center; font:600 11px/1.5 ui-monospace,monospace; color:var(--sr-energy); letter-spacing:.08em; opacity:0; text-shadow:0 2px 6px #10121c; }
.sr-miss .sr-impact-label { color:#ffd3ca; }
.sr-hit .sr-impact-label,.sr-miss .sr-impact-label { animation:sr-label .65s ease-out; }
.sr-opening-art { display:block; width:100%; height:auto; aspect-ratio:2/1; object-fit:cover; object-position:50% 0; }
.sr-vn-composition { position:relative; width:100%; aspect-ratio:2.25/1; overflow:hidden; background:#12131e; }
.sr-vn-backdrop,.sr-victim-art { background-image:var(--sr-sheet); background-size:400% 300%; background-position:var(--frame-x) var(--frame-y); background-repeat:no-repeat; }
.sr-vn-backdrop { position:absolute; inset:-20px; filter:blur(22px) brightness(.32) saturate(.65); }
.sr-victim-art { position:absolute; top:0; bottom:0; left:50%; transform:translateX(-50%); aspect-ratio:1; height:100%; }
.sr-vn-shade { position:absolute; inset:0; background:linear-gradient(90deg,#11142155,transparent 30%,transparent 70%,#11142155),linear-gradient(0deg,#0d111ced,transparent 20%,transparent 88%,#10142166); pointer-events:none; }
.rescue-game[data-screen="play"] .sr-nameplates { display:block; }
.rescue-game[data-screen="play"] .sr-nameplates>span:first-child,.rescue-game[data-screen="play"] .sr-nameplates>span:last-child { display:none; }
.rescue-game[data-screen="play"] .sr-stage,.rescue-game[data-screen="intro"] .sr-stage { border-radius:10px 10px 0 0; }
.sr-dialogue { display:flex; align-items:center; gap:14px; min-height:104px; padding:15px 20px; border:1px solid #3a3a45; border-top:0; border-radius:0 0 10px 10px; background:linear-gradient(110deg,#252434,#141b27); }
.sr-speaker-portrait { width:62px; height:68px; flex:0 0 62px; background-size:500% auto; background-position:17% 22%; border-radius:5px; border:1px solid #777086; }
.sr-speaker-portrait[data-role="captive"] { background-position:50% 28%; }
.sr-speaker-portrait[data-role="enemy"] { background-position:88% 15%; }
.sr-dialogue-copy { flex:1; min-width:0; }
.sr-dialogue-copy p { color:#f3edf0; font-size:15px; line-height:1.55; margin-top:4px; max-width:680px; }
.sr-dialogue[data-speaker="enemy"] .sr-eyebrow { color:#e6a4ae; }
.sr-story-actions { flex:0 0 auto; display:flex; flex-direction:column; align-items:flex-end; gap:2px; }
.sr-story-next { border:1px solid #78707a; border-radius:5px; background:#2e2d3c; color:#f4eadb; padding:10px 12px; font-size:12px!important; }
.sr-story-next:hover { border-color:var(--sr-accent); }
#srAssetStatus { max-width:220px; line-height:1.6; }
.sr-hit .sr-victim-art { animation:sr-vn-reveal .65s ease-out; }
.sr-miss .sr-victim-art { animation:sr-vn-threat .65s ease-out; }
.rescue-game[data-phase="lost"] .sr-victim-art { filter:brightness(.65) saturate(.6); }
.rescue-game[data-phase="won"] .sr-pressure-track i { background:var(--sr-energy); }
.rescue-game[data-active="false"] * { animation-play-state:paused!important; }
.preview-rescue .sr-opening-art { width:100%; height:100%; object-fit:cover; object-position:50% 10%; }
@keyframes sr-label { 0%{opacity:0;transform:translateY(8px)} 20%,75%{opacity:1} 100%{opacity:0;transform:translateY(-5px)} }
@keyframes sr-vn-reveal { 0%{opacity:.7;filter:brightness(1.2)} 100%{opacity:1;filter:brightness(1)} }
@keyframes sr-vn-threat { 40%{filter:brightness(.7) saturate(.8)} }
.rescue-game[data-phase="won"] .sr-puzzle>.sr-eyebrow, .rescue-game[data-phase="lost"] .sr-puzzle>.sr-eyebrow,
.rescue-game[data-phase="won"] #srClue, .rescue-game[data-phase="lost"] #srClue,
.rescue-game[data-phase="won"] .sr-input, .rescue-game[data-phase="lost"] .sr-input { display:none; }
.rescue-game[data-phase="won"] .sr-puzzle-layout, .rescue-game[data-phase="lost"] .sr-puzzle-layout { grid-template-columns:1fr; }
/* Capability-based input: laptops/desktops type directly; touch keeps keys. */
.sr-desktop-input { display:none; padding-left:25px; border-left:1px solid #343c48; }
.sr-desktop-input #srTypeHint { font-size:13px; color:#dcdde2; margin-bottom:14px; }
.sr-desktop-input .sr-missed-label { font:9px ui-monospace,monospace; color:#b6ad9d; letter-spacing:.12em; margin-bottom:6px; }
.sr-desktop-input .sr-missed { font:14px ui-monospace,monospace; color:#f2aca7; letter-spacing:.18em; min-height:22px; }
.sr-desktop-input>span { display:block; margin-top:10px; color:#939bad; font-size:10px; }
.rescue-game[data-keyboard="physical"] .sr-input { display:none; }
.rescue-game[data-keyboard="physical"] .sr-desktop-input { display:block; }
.rescue-game[data-keyboard="physical"] .sr-puzzle-layout { grid-template-columns:minmax(0,1.6fr) minmax(180px,.8fr); }
.rescue-game[data-phase="won"] .sr-desktop-input, .rescue-game[data-phase="lost"] .sr-desktop-input { display:none; }
.rescue-game[data-phase="won"] .sr-puzzle-layout, .rescue-game[data-phase="lost"] .sr-puzzle-layout { grid-template-columns:1fr; }
@media(max-width:650px) {
  .game-modal[data-game="rescue"] .game-modal-content { padding:13px; }
  .sr-heading { margin-bottom:14px; }
  .sr-heading h4 { font-size:27px; }
  .sr-eyebrow { font-size:8px; }
  .sr-characters { grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; margin-bottom:12px; }
  .sr-portrait { width:52px; flex-basis:52px; height:57px; }
  .sr-character { gap:7px; padding-right:9px; }
  .sr-character strong { font-size:13px; }
  .sr-character small { font-size:9px; }
  .sr-character-copy { gap:1px; }
  .sr-vn-composition { aspect-ratio:1.1/1; }
  .sr-dialogue { gap:9px; padding:11px; min-height:96px; flex-wrap:wrap; }
  .sr-speaker-portrait { width:44px; height:53px; flex-basis:44px; }
  .sr-dialogue-copy p { font-size:12px; line-height:1.5; }
  .sr-story-actions { flex:1 0 100%; flex-direction:row; justify-content:flex-end; align-items:center; gap:18px; }
  .sr-vn-shade { background:linear-gradient(0deg,#0d111ce6,transparent 20%,transparent 85%,#10142166); }
  .sr-scene-top { top:10px; left:10px; right:10px; font-size:7px; letter-spacing:.04em; }
  .sr-scene-top>span:first-child { max-width:46%; }
  .sr-nameplates { bottom:10px; grid-template-columns:46% 8% 46%; }
  .sr-nameplates b { font-size:11px; }
  .sr-nameplates small { font-size:7px; }
  .sr-briefing { grid-template-columns:1fr; gap:14px; padding-top:15px; }
  .sr-briefing h5 { font-size:22px; }
  .sr-briefing p { font-size:12px; }
  .sr-deploy { align-items:stretch; }
  .sr-deploy>span { text-align:center; }
  .sr-puzzle-layout, .rescue-game[data-keyboard="physical"] .sr-puzzle-layout { grid-template-columns:1fr; gap:17px; }
  .sr-desktop-input { border-left:0; border-top:1px solid #343c48; padding:12px 0 0; }
  .sr-puzzle #srClue { min-height:0; font-size:13px; margin:5px 0 11px; }
  .sr-word { gap:4px; }
  .sr-word span { width:clamp(22px,7vw,32px); flex:0 0 clamp(22px,7vw,32px); height:36px; font-size:16px; }
  .sr-pressure { margin:12px 0 14px; }
  .sr-pressure>div:first-child { font-size:9px; }
  .sr-key-row { gap:4px; }
  .sr-key-row button { height:43px; font-size:12px; }
  .sr-result { align-items:stretch; flex-direction:column; gap:12px; }
  .sr-result h5 { font-size:24px; }
  .sr-status { font-size:10px; }
  .sr-footer { font-size:9px; gap:10px; }
  .sr-impact-label { font-size:8px; left:20%; right:20%; top:12%; }
}
@media(prefers-reduced-motion:reduce) {
  .rescue-game *, .rescue-game *::before, .rescue-game *::after { animation:none!important; transition:none!important; }
  .sr-hit .sr-impact-label,.sr-miss .sr-impact-label { opacity:1; }

}
