html,body{margin:0!important;height:100%;overflow:hidden!important}.village-mini{background:#41576b!important;color:#263e52!important;font:600 16px system-ui!important}.village-game{box-sizing:border-box;max-width:1120px!important;width:100%!important;height:calc(100vh - 58px);height:calc(100dvh - 58px);margin:0 auto!important;padding:10px 14px!important;display:flex!important;flex-direction:column;gap:7px;background:transparent!important;zoom:1!important}.in-arena .village-game{height:100vh;height:100dvh}.village-hud{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 14px;border:3px solid #263e52;border-radius:18px;background:#ffedbd;box-shadow:0 3px #263e52}.village-hud h1{font:bold clamp(15px,2.1vw,25px) Georgia;margin:0}.village-hud span{font-weight:850;white-space:nowrap}#villageCombo{color:#943e23}#villageHint{color:#fff1d4;text-align:center;margin:2px 0;font-size:clamp(12px,1.7vw,16px)}.village-stage{position:relative;flex:1;min-height:100px;max-height:65vh;overflow:hidden;border:3px solid #263e52;border-radius:22px;background:#c0dce0;box-shadow:0 4px #253e51;display:grid;place-items:center}#villageCanvas{max-width:100%;max-height:100%;width:100%;height:100%;object-fit:contain;display:block;touch-action:none}#villageFeedback{min-height:22px;color:#ffedbd;text-align:center;margin:1px 0;font-size:clamp(13px,1.7vw,18px)}#villageFeedback.good{color:#c7f2b1}#villageFeedback.bad{color:#ffd3ad}.village-controls{display:flex;justify-content:center;align-items:center;gap:8px;min-height:53px}.village-controls button{border:3px solid #263e52!important;color:#263e52!important;background:#ffdda1!important;border-radius:16px!important;box-shadow:0 4px #263e52!important;min-width:80px;min-height:48px;font:bold clamp(15px,2vw,20px) system-ui;display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 16px;touch-action:manipulation;cursor:pointer}.village-controls button:active,.village-controls button.chosen{background:#9ce0ca!important;transform:translateY(2px);box-shadow:0 2px #263e52!important}.village-controls button:focus-visible{outline:4px solid #ed9b38;outline-offset:3px}.village-controls .comic-art{width:36px;height:36px}.village-progress{height:10px;border:2px solid #253e51;background:#ece0bf;border-radius:9px;overflow:hidden;flex-shrink:0}.village-progress i{display:block;height:100%;width:0;background:#64bf9c;transition:width .12s}#sceneTargets{position:absolute;inset:0;pointer-events:none}#sceneTargets button{position:absolute;background:transparent;border:0;pointer-events:auto;padding:0;border-radius:12px;cursor:pointer}#sceneTargets button:focus-visible{outline:4px solid #c0602c;background:#fff6bd44}@media(max-width:600px){.village-game{padding:6px!important;gap:5px}.village-hud{padding:5px 8px;flex-wrap:wrap;gap:3px}.village-hud h1{width:100%;text-align:center}.village-controls{gap:5px}.village-controls button{min-width:54px;min-height:44px;padding:5px 8px}.village-controls .comic-art{width:27px;height:27px}.village-stage{border-radius:14px}.village-hud span{font-size:13px}.village-controls button{font-size:14px}}@media(prefers-reduced-motion:reduce){.village-progress i{transition:none}}
/* The theme also applies when this page is opened outside the arena. */
html.horde-comic body.village-mini{background:linear-gradient(#304957ed,#304957e0),url("../shared/village-camp.svg") center/cover no-repeat #41576b!important}
#villageCanvas:focus{outline:none}.village-stage{isolation:isolate}.village-controls{flex-shrink:0}

/* Keep the whole 900 × 450 scene visible. An in-flow canvas in an auto grid
   used its intrinsic height and was clipped by the shorter stage. */
.village-mini{display:flex;flex-direction:column;height:100vh!important;height:100dvh!important}
.village-mini>.mini-bar{flex:none}
.village-game,.in-arena .village-game{flex:1;min-height:0!important;height:auto;padding:8px 12px!important;gap:5px}
.village-game *{box-sizing:border-box}
.village-hud{flex:none;min-height:34px;padding:3px 10px;gap:8px}
.village-hud h1{font-size:clamp(15px,1.7vw,21px)}
#villageHint{flex:none;line-height:1.25}
.in-arena #villageHint{display:none}
.village-stage{display:block;flex:1 1 0;min-width:0;min-height:0;max-height:none}
#villageCanvas{position:absolute;inset:0;min-width:0;min-height:0;width:100%;height:100%;object-fit:contain}
#villageFeedback{flex:none;min-height:21px;line-height:1.25;font-size:clamp(13px,1.5vw,16px)}
.village-controls{min-height:44px;gap:6px}
.village-controls:empty{display:none}
.village-controls button{min-width:0;min-height:40px;padding:5px 12px;font-size:clamp(13px,1.6vw,18px)}
@media(max-width:600px){
 .village-game,.in-arena .village-game{padding:6px!important;gap:4px}
 .village-controls{gap:4px;flex-wrap:wrap}
 .village-controls button{padding:5px 7px}
}
@media(max-height:500px){
 .village-game,.in-arena .village-game{padding:4px 8px!important;gap:3px}
 .village-hud{min-height:28px;padding:2px 8px;border-width:2px}
 .village-hud h1{font-size:15px}
 .village-hud span{font-size:13px}
 #villageFeedback{min-height:18px;font-size:13px}
 .village-controls{min-height:36px}
 .village-controls button{min-height:34px;padding:3px 8px;font-size:13px}
 .village-progress{height:7px}
}
.banquet-steps{display:flex;justify-content:center;gap:8px;flex:none}.banquet-steps span{padding:5px 12px;border:2px solid #637981;border-radius:12px;background:#d6ded8;color:#445961;font-weight:800}.banquet-steps .current{background:#ffe18a;border-color:#3c5661;color:#243e50;box-shadow:0 2px #263e52}.banquet-steps .complete{background:#cbe5b7;color:#315b42}
#villagePrompt{text-align:center;font:900 18px/1.2 "Trebuchet MS",sans-serif;color:#fff2cc;margin:0;flex:none}
[data-game="banquet"] .village-controls button{flex:1;max-width:170px;min-height:68px;flex-direction:column;gap:2px;padding:4px 8px;font-size:17px}[data-game="banquet"] .village-controls .comic-art{width:42px;height:42px}
.difference-scenes{position:absolute;inset:0;display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:10px;background:#91ae88}.difference-panel{min-height:0;min-width:0;display:flex;flex-direction:column;gap:6px;margin:0!important}.difference-panel h2{font:900 clamp(12px,1.5vw,19px) "Trebuchet MS",sans-serif;text-align:center;margin:0;padding:5px;border-radius:8px;background:#ffebbc;color:#304755}.difference-grid{flex:1;min-height:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));gap:6px}.difference-tile{position:relative;display:grid;place-items:center;min-width:0;min-height:0;padding:5px;border:2px solid #536b68;border-radius:12px;background:#f6e7c4;box-shadow:0 2px #3b5545;opacity:1!important}button.difference-tile{cursor:pointer;touch-action:manipulation}.difference-tile .comic-art{height:100%;width:100%;max-height:105px;max-width:105px;pointer-events:none}.difference-tile.found{background:#c5e7a6;border:3px solid #317443}.difference-tile.found::after{content:'✓';position:absolute;right:4px;top:0;font:900 24px system-ui;color:#236237}.difference-tile.wrong{background:#f0c2ae;border-color:#ac543b}.difference-tile.wrong::after{content:'×';position:absolute;right:4px;top:0;font:900 24px system-ui;color:#903f31}
.difference-scenes{gap:clamp(18px,3vw,42px);padding:12px;background:#536f65}.difference-panel{padding:9px;border:3px solid #304952;border-radius:15px;background:#d8e2bd;box-shadow:3px 4px #30495255}.difference-target{background:#e4d2aa}.difference-model h2{background:#c2e1ce}.difference-target h2{background:#f2d495}.difference-tile:disabled{cursor:default}.village-controls button{touch-action:manipulation}.village-controls button span:only-child{font-weight:900}
@media(max-width:600px){.difference-scenes{grid-template-columns:1fr;grid-template-rows:1fr 1fr;gap:8px;padding:7px}.difference-grid{gap:4px}.difference-tile{padding:2px}.banquet-steps{gap:3px}.banquet-steps span{font-size:12px;padding:4px 6px}[data-game="banquet"] .village-controls button{font-size:13px;min-height:61px}[data-game="banquet"] .village-controls .comic-art{width:33px;height:33px}}
@media(max-height:500px){.banquet-steps span{font-size:12px;padding:2px 7px}#villagePrompt{font-size:14px}[data-game="banquet"] .village-controls button{flex-direction:row;min-height:36px;font-size:13px}[data-game="banquet"] .village-controls .comic-art{width:25px;height:25px}}
/* The command and its choices share the center of the banquet scene. */
.banquet-board{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:clamp(12px,3vh,26px);padding:14px;background:#30465022}
.banquet-order{background:#fff1cb;border:3px solid #304650;border-radius:19px;box-shadow:4px 5px #30465066;width:min(650px,96%);padding:10px 18px;text-align:center}
.banquet-order>small{display:block;color:#675939;font:900 13px system-ui;letter-spacing:1px}.banquet-order>div{display:flex;align-items:center;justify-content:center;gap:18px;padding-top:5px}
.banquet-quantity{font:900 clamp(35px,6vw,62px)/1 system-ui;color:#8e4328}.banquet-food{display:flex;align-items:center;gap:6px;font-size:22px}.banquet-food .comic-art{width:58px;height:58px}.banquet-person{font-size:20px}.banquet-person b{display:block}
.banquet-answer-box{width:min(700px,98%);padding:12px 18px 16px;border:3px solid #304650;border-radius:18px;background:#dce7c7;box-shadow:4px 5px #30465066}.banquet-answer-title{font:900 12px system-ui;color:#50735e;text-align:center;letter-spacing:1px;margin:0 0 4px}
.banquet-board #villagePrompt{font:900 clamp(15px,2vw,22px)/1.25 Village,system-ui;color:#304650;margin:0 0 13px}
.banquet-board .village-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;min-height:0}.banquet-board .village-controls[data-stage="1"]{grid-template-columns:repeat(4,minmax(0,1fr))}.banquet-board .village-controls[data-stage="0"]{display:flex}
[data-game="banquet"] .banquet-board .village-controls button{width:100%;max-width:none;min-height:66px;min-width:0;flex:1;font-size:clamp(15px,1.8vw,21px);overflow-wrap:anywhere}[data-game="banquet"] .banquet-board .village-controls[data-stage="0"] button{font-size:32px;max-width:150px}
@media(max-width:600px){.banquet-board{padding:8px;gap:16px}.banquet-order{padding:10px 8px}.banquet-order>div{gap:9px}.banquet-food{font-size:16px;flex-direction:column;gap:0}.banquet-food .comic-art{width:45px;height:45px}.banquet-person{font-size:16px}.banquet-answer-box{padding:12px 8px 16px}.banquet-board .village-controls{gap:5px}.banquet-board .village-controls[data-stage="1"]{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-height:560px){.banquet-board{gap:8px;padding:7px}.banquet-order{padding:5px 12px}.banquet-order>small{font-size:10px}.banquet-order>div{padding:0}.banquet-quantity{font-size:33px}.banquet-food .comic-art{width:34px;height:34px}.banquet-food,.banquet-person{font-size:16px}.banquet-answer-box{padding:7px 12px 10px}.banquet-board #villagePrompt{margin-bottom:6px;font-size:16px}[data-game="banquet"] .banquet-board .village-controls button{min-height:42px;flex-direction:row;font-size:14px}[data-game="banquet"] .banquet-board .village-controls .comic-art{width:30px;height:30px}.banquet-board .village-controls[data-stage="1"]{grid-template-columns:repeat(4,minmax(0,1fr))}}
/* Read the order at a glance, with large drawings and equally large choices. */
.banquet-order{width:min(780px,98%);padding:12px 20px}
.banquet-order>small{font-size:14px}.banquet-order>div{gap:24px}
.banquet-quantity{font-size:clamp(56px,7vw,78px)}
.banquet-food .comic-art{width:86px;height:86px;flex-shrink:0}
.banquet-person{font:900 clamp(24px,3vw,34px)/1.15 Village,system-ui}
.banquet-answer-box{width:min(840px,98%)}.banquet-answer-title{font-size:14px}
.banquet-board #villagePrompt{font-size:clamp(20px,2.4vw,27px)}
[data-game="banquet"] .banquet-board .village-controls button{min-height:84px;font-size:clamp(22px,2.5vw,29px);line-height:1.2}
[data-game="banquet"] .banquet-board .village-controls .comic-art{width:66px;height:66px}
[data-game="banquet"] .banquet-board .village-controls[data-stage="0"] button{font-size:42px}
@media(max-width:600px){.banquet-board{gap:12px}.banquet-order{padding:10px 8px}.banquet-order>small{font-size:11px}.banquet-order>div{gap:12px}.banquet-quantity{font-size:52px}.banquet-food .comic-art{width:65px;height:65px}.banquet-person{font-size:24px}.banquet-answer-title{font-size:12px}.banquet-board #villagePrompt{font-size:21px;margin-bottom:10px}[data-game="banquet"] .banquet-board .village-controls button{min-height:74px;font-size:22px}[data-game="banquet"] .banquet-board .village-controls .comic-art{width:56px;height:56px}[data-game="banquet"] .banquet-board .village-controls[data-stage="0"] button{font-size:34px}}
@media(max-height:560px){.banquet-board{gap:9px}.banquet-order{padding:6px 12px}.banquet-order>small{font-size:11px}.banquet-quantity{font-size:48px}.banquet-food .comic-art{width:56px;height:56px}.banquet-person{font-size:24px}.banquet-answer-title{font-size:11px}.banquet-board #villagePrompt{font-size:20px;margin-bottom:7px}[data-game="banquet"] .banquet-board .village-controls button{min-height:58px;font-size:20px}[data-game="banquet"] .banquet-board .village-controls .comic-art{width:46px;height:46px}[data-game="banquet"] .banquet-board .village-controls[data-stage="0"] button{font-size:32px}}
@media(max-width:600px){.banquet-board .village-controls[data-stage="2"]{grid-template-columns:1fr}[data-game="banquet"] .banquet-board .village-controls[data-stage="2"] button{min-height:48px;white-space:nowrap;overflow-wrap:normal}}
@media(max-width:600px) and (max-height:560px){.banquet-board .village-controls[data-stage="2"]{grid-template-columns:repeat(2,minmax(0,1fr))}.banquet-board .village-controls[data-stage="2"] button:last-child{grid-column:1/-1}}
