/* Theme-matched painted scenes carry the action. Motion adds light and depth. */
.action-scene.is-cinematic { display:block; padding:0; background:#17241e; text-align:left; }
.scene-illustration { position:absolute; inset:0; overflow:hidden; border-radius:inherit; z-index:0; background:#17241e; }
.scene-artwork { position:absolute; inset:0; width:100%; height:100%; max-width:none; object-fit:cover; object-position:72% 52%; filter:saturate(.96); transform:scale(1.035); animation:cinema-arrival 1100ms cubic-bezier(.15,.7,.25,1) both; }
.scene-art-shade { position:absolute; inset:0; background:linear-gradient(90deg,#101c1af2 0%,#14211bc9 29%,#14211b55 53%,#11171405 78%),linear-gradient(0deg,#081512c2,transparent 34%,transparent 80%,#08151240); }
.scene-art-light { position:absolute; inset:-10%; background:linear-gradient(115deg,transparent 32%,#ffe6a91f 47%,transparent 58%); opacity:0; animation:cinema-light 1200ms 100ms ease-out both; mix-blend-mode:screen; }
.scene-art-grain { position:absolute; inset:0; box-shadow:inset 0 0 0 1px #ffe3a533,inset 0 0 65px #08110c55; border-radius:inherit; }
.is-cinematic[data-scene-theme="neon"] .scene-art-shade { background:linear-gradient(90deg,#07132af5 0%,#07132ada 29%,#07132a55 56%,transparent 85%),linear-gradient(0deg,#060e25c2,transparent 38%); }
.is-cinematic[data-scene-theme="neon"] .scene-art-light { background:linear-gradient(110deg,transparent 32%,#72dfff30 47%,#da73fd12 54%,transparent 62%); }
.is-cinematic[data-scene-theme="woodland"] .scene-art-shade { background:linear-gradient(90deg,#17251bf5 0%,#17251bd9 29%,#17251b55 53%,transparent 82%),linear-gradient(0deg,#0e1b13b3,transparent 38%); }
.is-cinematic .scene-copy { position:absolute; top:18%; left:5%; width:45%; max-width:550px; text-align:left; padding:0; animation:cinema-copy 420ms ease-out both; }
.is-cinematic .scene-eyebrow { justify-content:flex-start; color:#e4cda2; font-size:9px; letter-spacing:.13em; }
.is-cinematic .scene-headline { max-width:none; margin:11px 0 9px; color:#fff5df; font-size:clamp(25px,2.8vw,40px); line-height:1.07; letter-spacing:-.025em; text-shadow:0 2px 10px #09150d55; }
.is-cinematic .scene-detail { margin:0; max-width:380px; color:#ede5d2; font-size:12px; line-height:1.5; text-shadow:0 1px 8px #04120e; }
.is-cinematic .scene-theatre { position:absolute; left:5%; bottom:17%; width:44%; height:64px; min-height:0; padding:0; display:flex; align-items:center; justify-content:flex-start; gap:22px; z-index:2; }
.is-cinematic .scene-cast { position:relative; display:grid; grid-template-columns:auto minmax(0,1fr); grid-template-rows:auto auto; column-gap:10px; align-items:end; justify-content:start; text-align:left; min-width:0; flex:0 1 auto; }
.is-cinematic .scene-portrait { grid-row:1/3; grid-column:1; width:44px; height:57px; border-radius:7px; border:1px solid #e9d29d99; box-shadow:0 3px 0 #131b1677,0 6px 15px #020b1640; }
.is-cinematic .scene-portrait::after { inset:3px; border-radius:4px; }
.is-cinematic .scene-portrait-role { display:none; }
.is-cinematic .scene-portrait img { filter:none; }
.is-cinematic .scene-evidence { grid-column:2; margin:0 0 4px; font-size:8px; line-height:1.2; color:#e7cca0; }
.is-cinematic .scene-player-name { grid-column:2; align-self:start; font-size:12px; max-width:150px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; color:#fff3dc; }
.is-cinematic .scene-no-portrait { grid-template-columns:minmax(0,1fr); border-left:1px solid #e4ca953d; padding-left:14px; }
.is-cinematic .scene-no-portrait .scene-evidence,.is-cinematic .scene-no-portrait .scene-player-name { grid-column:1; }
.is-cinematic .scene-no-portrait:first-child { padding-left:0; border-left:0; }
.is-cinematic .scene-motion { position:absolute; inset:0; width:100%; height:100%; z-index:1; opacity:1; pointer-events:none; }
/* Keep image movement and atmospheric effects within the existing stage. */
.action-scene.is-cinematic { transform:translateZ(0); }
.is-cinematic .scene-energy { left:55%; }
.is-cinematic .scene-wave { display:none; }
.is-cinematic .scene-spark { width:2px; height:3px; opacity:.4; }
.is-cinematic .scene-covered-card { display:none; }
.is-cinematic .scene-payoff { left:auto; right:8%; bottom:16%; transform:none; height:48px; min-width:93px; border:1px solid #eac77bba; border-radius:8px; background:linear-gradient(145deg,#82703bef,#2c3d26f2); box-shadow:0 8px 32px #09181166,inset 0 1px 0 #ffeea566; animation:cinema-payoff 600ms 320ms cubic-bezier(.2,.8,.2,1) both; }
.is-cinematic .scene-payoff b { font:500 34px/1 var(--serif,Georgia,serif); }
.is-cinematic .scene-payoff i { height:21px; width:21px; font-size:14px; }
.is-cinematic .scene-footnote { position:absolute; left:5%; right:5%; bottom:5%; justify-content:flex-start; padding:0; gap:8px; animation:none; }
.is-cinematic .scene-evidence-chip { border:0; border-radius:0; padding:0; background:none; color:#ded6be; font-size:8px; letter-spacing:.09em; }
.is-cinematic .scene-outcome-mark { margin-left:auto; display:grid; place-items:center; width:24px; height:24px; border:1px solid #dac69b66; border-radius:50%; color:#ecd8a3; background:#16251966; font-size:14px; }
.is-cinematic:is([data-mode="loss"],[data-mode="proof"],[data-mode="block"],[data-mode="blocked"],[data-mode="bluff"],[data-mode="challenge"]) .scene-theatre { left:auto; right:9%; bottom:15%; width:28%; height:66%; justify-content:center; }
.is-cinematic:is([data-mode="loss"],[data-mode="proof"],[data-mode="block"],[data-mode="blocked"],[data-mode="bluff"],[data-mode="challenge"]) .scene-cast-left { display:flex; flex-direction:column; align-items:center; width:100%; text-align:center; gap:0; }
.is-cinematic:is([data-mode="loss"],[data-mode="proof"],[data-mode="block"],[data-mode="blocked"],[data-mode="bluff"],[data-mode="challenge"]) .scene-cast-left .scene-portrait { width:clamp(80px,11vw,138px); height:clamp(100px,14vw,172px); border-radius:9px; box-shadow:0 8px 0 #06100f77,0 14px 38px #040a1355,0 0 34px #eccf8644; }
.is-cinematic:is([data-mode="loss"],[data-mode="proof"],[data-mode="block"],[data-mode="blocked"],[data-mode="bluff"],[data-mode="challenge"]) .scene-cast-left .scene-portrait-role { display:block; font-size:17px; padding-bottom:7px; }
.is-cinematic:is([data-mode="loss"],[data-mode="proof"],[data-mode="block"],[data-mode="blocked"],[data-mode="bluff"],[data-mode="challenge"]) .scene-cast-left .scene-evidence { margin:10px 0 4px; }
.is-cinematic:is([data-mode="loss"],[data-mode="proof"],[data-mode="block"],[data-mode="blocked"],[data-mode="bluff"],[data-mode="challenge"]) .scene-cast-left .scene-player-name { align-self:center; }
.is-cinematic:is([data-mode="loss"],[data-mode="proof"],[data-mode="block"],[data-mode="blocked"],[data-mode="bluff"],[data-mode="challenge"]) .scene-cast-right { display:none; }
.is-cinematic[data-mode="loss"] .scene-artwork { filter:saturate(.4) brightness(.6); animation:cinema-loss 900ms ease-out both; }
.is-cinematic[data-mode="bluff"] .scene-artwork { filter:saturate(.4) brightness(.65); }
.is-cinematic:is([data-mode="blocked"],[data-mode="block"]) .scene-artwork { filter:saturate(.65) brightness(.65); }
.is-cinematic:is([data-mode="miss"],[data-mode="cancelled"]) .scene-artwork { filter:saturate(.45) brightness(.7); }
.is-cinematic[data-mode="success"] .scene-artwork { animation:cinema-success 1100ms cubic-bezier(.2,.7,.25,1) both; }
.is-cinematic[data-action="steal"][data-mode="success"] .scene-artwork { animation-name:cinema-steal; }
.is-cinematic[data-action="assassinate"][data-mode="success"] .scene-artwork { animation-name:cinema-strike; }
.is-cinematic[data-action="exchange"] .scene-artwork { animation-name:cinema-exchange; }
.is-cinematic[data-mode="proof"] .scene-art-light { opacity:.7; }
.is-cinematic[data-scene-theme="neon"] .scene-headline { text-shadow:0 0 24px #7aaeee55,0 2px 8px #031025; }
.is-cinematic[data-scene-theme="woodland"] .scene-headline { color:#fff5da; }

/* Small action tiles use the same art as the story beneath them. */
.action-button-art { position:absolute; inset:0; border-radius:inherit; overflow:hidden; z-index:0; background:#203328; }
.action-button-art img { width:100%; height:100%; object-fit:cover; object-position:72% 55%; opacity:.78; transition:transform 320ms ease,filter 220ms ease; }
.action-button-art::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,#17231dd9 0%,#15251d77 48%,#15251d18),linear-gradient(0deg,#13271cd1,transparent 80%); }
.in-game .decision-panel .action-button { position:relative; isolation:isolate; overflow:hidden; border:1px solid #c5a777; border-bottom:3px solid #635a3e; color:#fff2d5; background:#203328; box-shadow:0 2px 0 #cdbb8c88,inset 0 1px 0 #f1d99b66; padding-left:12px; text-align:left; transition:transform 100ms ease,box-shadow 120ms ease,border-color 160ms ease; }
.in-game .decision-panel .action-button .action-symbol { display:none; }
.in-game .decision-panel .action-button .action-copy { position:relative; z-index:2; text-shadow:0 1px 6px #061b12; }
.in-game .decision-panel .action-button strong { color:#fff4dc; letter-spacing:.01em; }
.in-game .decision-panel .action-button small { color:#e3d6b8; }
.in-game .decision-panel .action-button .action-cost { z-index:2; color:#ffe5a1; text-shadow:0 1px 5px #172314; font-weight:700; }
.in-game .decision-panel .action-button:not(:disabled):hover { box-shadow:0 3px 0 #70613f,0 6px 17px #73582c33,inset 0 1px 0 #eaca8766; border-color:#ddbf84; transform:translateY(-1px); }
.in-game .decision-panel .action-button:not(:disabled):hover .action-button-art img { transform:scale(1.1); filter:brightness(1.15); }
.in-game .decision-panel .action-button:not(:disabled):active { transform:translateY(3px) scale(.975); box-shadow:0 0 0 transparent,inset 0 4px 9px #07181399; border-bottom-width:1px; }
.in-game .decision-panel .action-button:focus-visible { outline:2px solid #dbc489; outline-offset:3px; }
.in-game .decision-panel .action-button:disabled { opacity:.4; filter:saturate(.25); box-shadow:none; }
.action-sheen { position:absolute; z-index:3; inset:0; background:linear-gradient(110deg,transparent 28%,#fff2c26b 50%,transparent 70%); opacity:0; pointer-events:none; }
.action-press-memory { pointer-events:none!important; cursor:default!important; filter:none!important; overflow:hidden!important; transform-origin:50% 70%; isolation:isolate; }
.action-press-memory::after { content:''; position:absolute; inset:2px; z-index:4; border:1px solid #ffe5a580; border-radius:inherit; box-shadow:inset 0 0 15px #ecd08633; animation:cinema-tile-seal 760ms ease-out both; }
html[data-theme="neon"] .in-game .decision-panel .action-button { border-color:#6db5d0; border-bottom-color:#304972; box-shadow:0 2px 0 #223966,inset 0 1px 0 #a3e9f477; }
html[data-theme="neon"] .action-button-art::after { background:linear-gradient(90deg,#071127e8,#081a355c),linear-gradient(0deg,#082a4cd4,transparent 90%); }
html[data-theme="neon"] .in-game .decision-panel .action-button .action-cost { color:#9df0ef; }
html[data-theme="woodland"] .in-game .decision-panel .action-button { border-color:#b89e68; border-bottom-color:#4d573c; box-shadow:0 2px 0 #9c956b,inset 0 1px 0 #dbc99a55; border-radius:9px; }
html[data-theme="woodland"] .action-button-art::after { background:linear-gradient(90deg,#20331bea,#24391966),linear-gradient(0deg,#293c20cc,transparent 90%); }

@keyframes cinema-arrival { from { transform:scale(1.085) translateX(1%); filter:brightness(.7) saturate(.8); } to { transform:scale(1.035) translateX(0); filter:brightness(1) saturate(.96); } }
@keyframes cinema-light { 0% { opacity:0; transform:translateX(-20%); } 40% { opacity:.85; } 100% { opacity:0; transform:translateX(30%); } }
@keyframes cinema-copy { from { opacity:0; transform:translateX(-7px); } to { opacity:1; transform:translateX(0); } }
@keyframes cinema-success { 0% { transform:scale(1.075); filter:brightness(.85); } 40% { filter:brightness(1.14); } 100% { transform:scale(1.025); filter:brightness(1); } }
@keyframes cinema-steal { from { transform:scale(1.08) translateX(2%); } to { transform:scale(1.035) translateX(-.5%); } }
@keyframes cinema-strike { 0% { transform:scale(1.06) translateX(-1%); filter:brightness(.7); } 38% { transform:scale(1.12) translateX(1%); filter:brightness(1.15); } 50% { transform:scale(1.095) translateX(0); } 100% { transform:scale(1.04); filter:brightness(.95); } }
@keyframes cinema-exchange { from { transform:scale(1.095) rotate(.7deg); } to { transform:scale(1.035) rotate(0); } }
@keyframes cinema-loss { from { transform:scale(1.07); filter:brightness(.9) saturate(.7); } to { transform:scale(1.035); filter:brightness(.6) saturate(.4); } }
@keyframes cinema-payoff { from { opacity:0; transform:translateY(10px) scale(.8); } 65% { opacity:1; transform:translateY(-2px) scale(1.07); } to { opacity:1; transform:translateY(0) scale(1); } }
@keyframes cinema-tile-seal { 0% { opacity:0; transform:scale(.92); } 30% { opacity:1; transform:scale(1); } 85%,100% { opacity:0; transform:scale(1.015); } }

@container action-theatre (max-height:260px) {
  .is-cinematic .scene-copy { top:12%; width:48%; }
  .is-cinematic .scene-headline { font-size:24px; margin:7px 0; }
  .is-cinematic .scene-detail { font-size:11px; }
  .is-cinematic .scene-theatre { bottom:15%; height:46px; gap:14px; }
  .is-cinematic .scene-portrait { width:32px; height:42px; }
  .is-cinematic .scene-cast-left .scene-player-name { font-size:11px; }
  .is-cinematic .scene-cast-left .scene-evidence { font-size:7px; }
  .is-cinematic:is([data-mode="loss"],[data-mode="proof"],[data-mode="block"],[data-mode="blocked"],[data-mode="bluff"],[data-mode="challenge"]) .scene-cast-left .scene-portrait { width:80px; height:103px; }
}
@container action-theatre (max-width:540px) {
  .is-cinematic .scene-copy { width:57%; top:13%; }
  .is-cinematic .scene-headline { font-size:22px; }
  .is-cinematic .scene-detail { font-size:10px; line-height:1.4; }
  .is-cinematic .scene-theatre { width:65%; gap:12px; }
  .is-cinematic .scene-cast-right { display:none; }
  .is-cinematic .scene-art-shade { background:linear-gradient(90deg,#10221bf2,#10221bae 47%,#10221b05 95%),linear-gradient(0deg,#08151088,transparent 55%); }
  .is-cinematic:is([data-mode="loss"],[data-mode="proof"],[data-mode="block"],[data-mode="blocked"],[data-mode="bluff"],[data-mode="challenge"]) .scene-theatre { right:5%; bottom:19%; width:30%; }
  .is-cinematic .scene-payoff { height:35px; min-width:64px; right:6%; bottom:14%; padding:3px 8px; }
  .is-cinematic .scene-payoff b { font-size:24px; }
  .is-cinematic .scene-payoff i { height:16px; width:16px; font-size:11px; }
}
@container action-theatre (max-height:175px) {
  .is-cinematic .scene-copy { top:16%; width:61%; }
  .is-cinematic .scene-headline { font-size:20px; margin:5px 0; }
  .is-cinematic .scene-eyebrow { font-size:7px; }
  .is-cinematic .scene-detail { font-size:10px; }
  .is-cinematic .scene-theatre { display:none; }
  .is-cinematic .scene-footnote { bottom:8%; }
  .is-cinematic .scene-evidence-chip { font-size:7px; }
  .is-cinematic:is([data-mode="loss"],[data-mode="proof"],[data-mode="block"],[data-mode="blocked"],[data-mode="bluff"],[data-mode="challenge"]) .scene-theatre { display:flex; width:24%; height:83%; right:5%; bottom:8%; }
  .is-cinematic:is([data-mode="loss"],[data-mode="proof"],[data-mode="block"],[data-mode="blocked"],[data-mode="bluff"],[data-mode="challenge"]) .scene-cast-left .scene-portrait { width:55px; height:71px; }
  .is-cinematic .scene-cast-left .scene-portrait-role { font-size:10px!important; }
  .is-cinematic .scene-cast-left .scene-player-name { font-size:9px; }
  .is-cinematic .scene-cast-left .scene-evidence { display:none; }
  .is-cinematic .scene-card-seal { font-size:8px; }
}
@container action-theatre (max-height:100px) {
  .is-cinematic .scene-copy { top:50%; transform:translateY(-50%); left:10px; width:calc(100% - 88px); padding:0; animation:none; }
  .is-cinematic .scene-headline { margin:0 0 4px; font:650 11.5px/1.15 var(--sans,system-ui,sans-serif); }
  .is-cinematic .scene-detail { margin:0; font:400 9px/1.2 var(--sans,system-ui,sans-serif); }
  .is-cinematic .scene-eyebrow,.is-cinematic .scene-footnote { display:none; }
  .is-cinematic .scene-artwork { object-position:75% 48%; }
  .is-cinematic .scene-payoff { right:12px; top:50%; bottom:auto; height:28px; min-width:48px; padding:3px 6px; margin-top:-14px; }
  .is-cinematic .scene-payoff b { font-size:20px; }
  .is-cinematic .scene-payoff i { width:14px; height:14px; font-size:10px; }
  .is-cinematic .scene-art-shade { background:linear-gradient(90deg,#152219f0 0%,#152219e8 55%,#15221933 87%); }
  .is-cinematic:is([data-mode="loss"],[data-mode="proof"],[data-mode="block"],[data-mode="blocked"],[data-mode="bluff"],[data-mode="challenge"]) .scene-theatre { display:flex; right:15px; top:5px; bottom:10px; width:39px; height:auto; }
  .is-cinematic:is([data-mode="loss"],[data-mode="proof"],[data-mode="block"],[data-mode="blocked"],[data-mode="bluff"],[data-mode="challenge"]) .scene-cast-left { display:block; }
  .is-cinematic:is([data-mode="loss"],[data-mode="proof"],[data-mode="block"],[data-mode="blocked"],[data-mode="bluff"],[data-mode="challenge"]) .scene-cast-left .scene-portrait { display:block; width:34px; height:43px; border-radius:4px; }
  .is-cinematic .scene-cast-left .scene-portrait-role { display:none!important; }
  .is-cinematic .scene-cast-left .scene-player-name,.is-cinematic .scene-card-seal { display:none; }
  .is-cinematic .scene-portrait::after { border-radius:2px; }
}
@media(max-width:760px) {
  .in-game .decision-panel .action-button { justify-content:flex-start; padding-left:7px; text-align:left; }
  .in-game .decision-panel .action-button strong { font-size:12px; }
  .in-game .decision-panel .action-button.coup { justify-content:center; }
  .action-button-art img { object-position:75% 50%; }
}
@media(prefers-reduced-motion:reduce) {
  .is-cinematic *,.is-cinematic *::before,.is-cinematic *::after,.action-press-memory::after { animation:none!important; transition:none!important; }
  .is-cinematic .scene-artwork { transform:none; }
  .action-button-art img,.in-game .decision-panel .action-button { transition:none!important; }
}
html[data-motion="reduced"] .is-cinematic *,html[data-motion="reduced"] .is-cinematic *::after,
html[data-motion="reduced"] .action-button-art img,html[data-motion="reduced"] .in-game .decision-panel .action-button,
.is-cinematic[data-resumed="true"] *,.is-cinematic[data-resumed="true"] *::after { animation:none!important; transition:none!important; }
.is-cinematic[data-resumed="true"] .scene-artwork { transform:none; }
