/* Keep the existing illustration intact; respond through its lamps and props. */
.prop-response{opacity:0;pointer-events:none;filter:drop-shadow(0 0 8px #ffe6a0);transition:opacity .2s}
.motion-0 .prop-response-0,.motion-2 .prop-response-2{opacity:.95}
.quest-help{padding:12px;margin:0 0 18px;border:1px solid #c79c57;border-radius:14px;background:#fff6db;text-align:left}
.quest-help-actions{display:flex;flex-wrap:wrap;gap:10px}
.quest-help-actions button{min-height:48px;display:flex;gap:8px;align-items:center;font-weight:800}
.quest-help-actions .action-icon{width:30px;height:30px}
#quest-hint-copy{margin:10px 2px 0;font-weight:700;line-height:1.5;color:#3e421f}
.hint-target{outline:4px solid #44714b!important;outline-offset:4px;box-shadow:0 0 0 8px #fff3b3!important;position:relative}
.hint-label{display:block;flex-basis:100%;margin:7px auto 0;padding:4px 8px;border-radius:8px;background:#315b37;color:#fff8d7;font:800 13px/1.3 var(--body);white-space:nowrap}
.chapter-options button:disabled{opacity:.8;cursor:default}.chapter-options button[aria-pressed="true"]{border-color:#44714b;background:#edf2d5}
/* A stable village scene and intact portrait medallions replace the detached puppet rigs. */
.coherent-finale{aspect-ratio:3/2}
.coherent-finale .finale-background{object-fit:contain}
.finale-scene.coherent-finale .finale-welcome{top:8%;left:25%;width:50%;font-size:clamp(12px,2vw,24px)}
.coherent-finale .finale-delivery-table{top:66%;left:35%;width:30%;height:auto;aspect-ratio:2.1383;z-index:3}
.coherent-finale .finale-delivery-table:after{box-shadow:calc(22vw) 0 #986634}
.coherent-finale.finale-signal .finale-delivery-table{top:46%;height:auto;aspect-ratio:1.49016;left:32%;width:40%}
.coherent-finale .finale-rival{bottom:3%;right:3%;width:11%}
.coherent-finale .finale-confetti{pointer-events:none}
.finale-team{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;padding:18px 16px;margin:18px 0;background:#fff3d3;border:2px solid #b18b4f;border-radius:18px}
.finale-team>div{display:flex;align-items:center;flex-direction:column;gap:6px;color:#50351f}
.finale-team .portrait{width:clamp(42px,7vw,78px);height:clamp(42px,7vw,78px);margin:0}
.finale-team strong{font-size:clamp(11px,1.4vw,17px)}
.finale-caption{margin-top:16px}
.still .prop-response{transition:none}
@media(max-width:600px){.quest-help{padding:10px}.quest-help-actions{gap:8px}.quest-help-actions button{font-size:13px;padding:8px}.finale-team{gap:8px;padding:12px 8px;grid-template-columns:repeat(3,minmax(0,1fr))}.finale-team .portrait{width:58px;height:58px}.coherent-finale .finale-delivery-table:after{box-shadow:calc(21vw) 0 #986634}}

.coherent-finale.is-arrived .finale-delivery{opacity:1}
.coherent-finale.is-cheering .finale-delivery{animation:gentle-delivery .65s ease-out both}
@keyframes gentle-delivery{from{opacity:.65;transform:translateY(8px)}to{opacity:1;transform:none}}
