/* v0.7 extends the original desktop/terminal theme. */
.menu-bar { flex-wrap: wrap; }
.menu-bar button { min-height: 34px; font-size: .875rem; }
.build-label { font-size: .8rem; }
.intro-screen { display: grid; grid-template-columns: minmax(220px,.9fr) minmax(320px,1.3fr); gap: 1.5rem; padding: clamp(1rem,3vw,2.5rem); color: var(--white); background: var(--terminal); }
.intro-art { align-self: start; border: 2px solid var(--terminal-line); background: #09111c; }
.intro-art img { display:block; width:100%; height:auto; image-rendering:pixelated; }
.intro-copy h2 { margin: .3rem 0 1rem; font-size: clamp(1.6rem,3vw,2.4rem); color:var(--amber); }
.intro-copy p,.intro-rules { line-height:1.65; font-size:1rem; }
.intro-rules { padding-left:1.4rem; }
.intro-rules li { padding-left:.3rem; margin:.75rem 0; }
.intro-rules strong { color:var(--cyan); }
.intro-copy .intro-note { color:var(--muted); font-size:.875rem; }
.intro-actions { display:flex; flex-wrap:wrap; gap:.8rem; align-items:center; margin-top:1.4rem; }
#intro-back { color:var(--muted); background:transparent; border:1px solid var(--terminal-line); padding:.8rem; cursor:pointer; }
.location-scene { margin: 0 0 1.2rem; position:relative; isolation:isolate; overflow:hidden; border:2px solid var(--terminal-line); background:#060d17; aspect-ratio:16/9; }
.location-scene>img { display:block; width:100%; height:100%; object-fit:contain; image-rendering:pixelated; }
.location-scene figcaption { position:absolute; bottom:0; left:0; right:0; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:.4rem; padding:.6rem .75rem; background:rgba(3,9,18,.9); color:#f7fbff; font-family: 'Courier New',monospace; font-size:.875rem; line-height:1.3; z-index:1; }
.location-scene figcaption strong { color:var(--cyan); }
.location-scene[data-state="chaos"] { border-color:var(--amber); }
.location-scene[data-state="chaos"] figcaption strong { color:var(--amber); }
.location-scene[data-state="police"] { border-color:#7098e7; }
.location-scene[data-state="jail"] { border-color:#697581; }
.location-scene[data-weather="rain"] figcaption:before { content:'DESZCZ'; font-size:.8rem; color:#9ecbe9; }
.scene-unavailable { display:none; position:absolute; inset:0; padding:1.5rem; align-items:center; justify-content:center; color:var(--muted); font-size:1rem; text-align:center; }
.asset-unavailable .scene-unavailable { display:flex; }
.police-scene { display:none; }
.police-encounter { background:transparent; border:0; margin:0 0 1rem; }
.police-officers { margin:0; justify-content:flex-start; }
.police-officers figure { width:min(28%,115px); }
.police-line { display:block; padding:.28rem 0; line-height:1.55; }
.police-line strong { color:var(--cyan); }
.resolution-response .police-line { font-weight:400; }
.audio-dialog { width:min(480px,calc(100% - 2rem)); }
.audio-dialog label { display:flex; justify-content:space-between; gap:1rem; font-weight:700; margin:.5rem 0; }
.audio-dialog input { width:100%; min-height:36px; accent-color:var(--cyan); margin:0 0 1rem; }
.audio-dialog p { font-size:.9rem; line-height:1.6; }
.score-ledger { margin:1.25rem 0; padding:0; border-top:2px solid var(--terminal-line); }
.score-row { display:grid; grid-template-columns:minmax(0,1fr) auto; column-gap:1rem; padding:.65rem 0; border-bottom:1px solid var(--terminal-line); font-size:1rem; }
.score-row dt { font-weight:700; }
.score-row dd { margin:0; font-family:'Courier New',monospace; font-weight:700; text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; color:var(--green); }
.score-row small { display:block; font-weight:400; color:var(--muted); font-size:.875rem; line-height:1.4; margin-top:.2rem; }
.score-row.is-penalty dd { color:#ff8b90; }
.score-row.is-zero dd { color:var(--muted); }
.score-final { padding:1rem; margin:1rem 0; background:#10231d; border:2px solid var(--green); }
.score-final .ending-score { margin:0; font-size:clamp(2rem,5vw,3.5rem); }
.score-final .ending-rank { margin:.4rem 0 0; }
.score-note { color:var(--muted); font-size:.875rem; line-height:1.5; }
.legacy-record-note { color:var(--muted); font-size:.875rem; padding:.5rem 0; }
.feedback-heat #meter-trouble { animation:stat-impact .75s ease-out; }
.feedback-reputation-up #stat-reputation { animation:gain-impact .8s ease-out; }
.feedback-reputation-down #stat-reputation { animation:loss-impact .8s ease-out; }
.feedback-bet .event-card,.feedback-match .event-card { animation:gold-impact 1.1s ease-out; }
.feedback-callback .event-badge { animation:gain-impact 1s ease-out; }
.feedback-petrov .event-card { animation:secret-impact 1.4s ease-out; }
.feedback-home .location-scene,.feedback-success .score-final { animation:home-impact 1.5s ease-out; }
.feedback-fail .score-final { border-color:#ff8b90; background:#25111a; }
@keyframes stat-impact { 0% { box-shadow:0 0 0 4px #ff7a6c; } 100% { box-shadow:0 0 0 0 transparent; } }
@keyframes gain-impact { 0% { color:#fff; text-shadow:0 0 14px var(--green); } 100% { text-shadow:none; } }
@keyframes loss-impact { 0% { color:#fff; text-shadow:0 0 14px var(--red); } 100% { text-shadow:none; } }
@keyframes gold-impact { 0% { border-color:var(--amber); box-shadow:inset 0 0 0 2px var(--amber); } 100% { box-shadow:inset 0 0 0 0 transparent; } }
@keyframes secret-impact { 0% { border-color:#cb99ff; box-shadow:inset 0 0 0 3px #754dad; } 100% { box-shadow:inset 0 0 0 0 transparent; } }
@keyframes home-impact { 0% { border-color:#fff; box-shadow:0 0 22px #7dff7355; } 100% { box-shadow:none; } }
@media(min-width:1121px) { .location-scene { max-height:330px; } }
@media(max-width:820px) { .intro-screen { grid-template-columns:1fr; } .intro-art { max-width:520px; } .build-label { width:100%; padding:.3rem; } }
@media(max-width:520px) { .menu-bar button { padding:.35rem .55rem; } .location-scene figcaption { font-size:.8rem; padding:.4rem .5rem; } .police-officers { margin:0; } .score-row { font-size:.95rem; gap:.6rem; } }
@media(prefers-reduced-motion:reduce) { .feedback-heat #meter-trouble,.feedback-reputation-up #stat-reputation,.feedback-reputation-down #stat-reputation,.feedback-bet .event-card,.feedback-match .event-card,.feedback-callback .event-badge,.feedback-petrov .event-card,.feedback-home .location-scene,.feedback-success .score-final { animation:none; } }
