/* Shared by every local Horde challenge. Puzzle colours and state classes are preserved. */
html.horde-comic{color-scheme:light;--ink:#2c4054;--text:#2c4054;--muted:#626d7b;--paper:#fff1d3;--navy:#e4e7d5;--navy-soft:#d8e2d8;--navy-field:#eceddc}
html.horde-comic,html.horde-comic body,html.horde-comic body.dark{background:radial-gradient(circle at 3px 3px,#7394931c 1px,transparent 1.4px) 0 0/10px 10px,#e5e7d5!important;color:#2c4054!important;font-family:"Trebuchet MS",system-ui,sans-serif}
html.horde-comic body::before{background:none!important}
.horde-comic main,.horde-comic .app,.horde-comic .app-shell{background:transparent!important}
.horde-comic .mini-bar{background:#3f627b;color:#fff0cb;border-bottom:3px solid #263e54;font-family:"Trebuchet MS",sans-serif}
.horde-comic .mini-bar a{color:#ffda87}.horde-comic .mini-clock{background:#efc269;border:2px solid #2a3e53;border-radius:6px;padding:3px 8px;color:#2a3e53}
.in-arena .mini-bar{display:none!important}
.horde-comic .workspace,.horde-comic .main-card,.horde-comic .game-card,.horde-comic .typing-card,.horde-comic .typing-panel,.horde-comic .game-shell{background:#f7e9c9!important;border:2px solid #385266!important;border-radius:12px 18px 10px 16px!important;box-shadow:3px 4px 0 #4867793b!important;color:#2c4054!important}
.horde-comic .workspace-head{background:#4c7c97!important;border-bottom:3px solid #31485c!important;color:#fff0c6!important}
.horde-comic .workspace-title{color:#fff0c6!important;font-family:"Trebuchet MS",sans-serif!important;font-weight:900!important}
.horde-comic .workspace-body{background:#f7e9c9!important}
.horde-comic .quiz-card,.horde-comic .story-box,.horde-comic .remember-message{background:#f9efd8!important;border:2px solid #9ba9a5!important;border-radius:10px 15px 8px 13px!important;color:#2e4254!important;box-shadow:none!important}
.horde-comic .chip{background:#d0dbdf!important;color:#2e4c61!important;border:1.5px solid #68899b!important;border-radius:6px 9px 5px 8px!important}
.horde-comic .chip:nth-child(even){background:#dfd0e8!important;border-color:#8a769d!important;color:#594568!important}
.horde-comic .panel .status{color:#5c6672}.horde-comic .panel .status.ok{color:#20724e}
.horde-comic .memory-card{border-color:#3d5369!important;box-shadow:2px 3px 0 #3850653b!important}
.horde-comic .memory-back{background:repeating-linear-gradient(135deg,#448ca6 0 12px,#5799ad 12px 24px)!important;border-color:#2e4e63!important;color:#fff0c4!important}
.horde-comic .memory-back::before{color:#fff3d5!important}.horde-comic .memory-back::after{text-shadow:2px 2px 0 #29425744}
.horde-comic .fruit-card{background:#d3e3e4!important;border:2px solid #657f8e!important;box-shadow:2px 3px 0 #45627330!important;border-radius:10px 15px 8px 12px!important}
.horde-comic .fruit-bottom{background:#faf0d7!important}.horde-comic .fruit-visual{background:#eaf0df!important}
.horde-comic .color-btn{border-width:2px!important;border-radius:6px 9px 5px 8px!important}
.horde-comic .logo-btn:not(.correct):not(.wrong),.horde-comic .word-btn:not(.correct):not(.wrong):not(:disabled){background:#e4d9eb!important;border:2px solid #817295!important;color:#3d4c60!important;box-shadow:1px 2px 0 #56667d38!important;border-radius:7px 11px 6px 10px!important}
.horde-comic .logo-btn:nth-child(3n):not(.correct):not(.wrong){background:#c5dfdb!important;border-color:#5a8d8b!important}
.horde-comic .story-text{color:#2d4156!important}.horde-comic .story-blank{border-color:#4c8d9d}
.horde-comic .btn:not(.correct):not(.wrong){background:#4d919b;color:#fff1d2;border:2px solid #314d64;box-shadow:0 2px 0 #2c4359;border-radius:7px 11px 6px 10px}
.horde-comic .btn.blue{background:#578eba}.horde-comic .btn.green{background:#468974}
.horde-comic .field{background:linear-gradient(150deg,#dce7ce,#bddbd3)!important;border:2px solid #537a81!important;border-radius:10px 17px 8px 14px!important;box-shadow:inset 0 0 0 5px #edf0d55e!important}
.horde-comic .color-prompt{background:#fff0c9!important;border:2px solid #6a7e87!important;border-radius:8px 13px 7px 12px!important;box-shadow:2px 3px 0 #49637430!important}
.horde-comic .color-prompt>span{color:#52687d!important}
/* Do not set the backgrounds/text of .seq, .target, .color-dot, .cell or answer hues. */
.horde-comic .grid-panel{background:#d0dcd9!important;border:2px solid #647d87!important;border-radius:9px 14px 8px 12px!important;box-shadow:none!important}
.horde-comic .side{background:#e4d9e8!important;border-color:#a898b2!important;color:#34475c!important;border-radius:10px!important}
.horde-comic .side h2{color:#5b5072!important}.horde-comic .word-item{border-color:#a3aeb0}
.horde-comic .word-grid{border-color:#4c6b7b!important;background:#a4bfbe!important}
.horde-comic .typing-card .card-heading h2{color:#38536c!important}.horde-comic .typing-card .text-category{color:#975c45!important}
.horde-comic .typing-card .stat{background:#d4e1df!important;border:1.5px solid #749493!important;border-radius:8px 12px 6px 10px!important;color:#334c60!important}
.horde-comic .typing-card .stat:nth-child(2){background:#e4d8e9!important;border-color:#a591af!important}.horde-comic .typing-card .stat:nth-child(3){background:#ecdcae!important;border-color:#b09a6e!important}.horde-comic .typing-card .stat:nth-child(4){background:#eacbbd!important;border-color:#b99488!important}
.horde-comic .typing-card .stat-label{color:#546574!important}
.horde-comic .ticker-viewport{border-color:#6d8fa0!important;background:#fff4da!important;box-shadow:none!important}
.horde-comic .ticker-track{color:#2d4459}.horde-comic #start-prompt{color:#3c7b8c!important}
.horde-comic .progress-track,.horde-comic .progress{background:#d5d4ba!important;border:1px solid #8a9f98!important}
.horde-comic .progress-bar,.horde-comic .progress>span{background:#5ba39a!important}
/* State feedback remains unambiguous even against the illustrated panels. */
.horde-comic button.correct{background:#d6f1df!important;color:#165e37!important;border:3px solid #24865f!important}
.horde-comic button.wrong{background:#ffe0df!important;color:#953037!important;border-color:#c63f44!important}
.horde-comic .mini-dialog{background:#f7e9c9;border:3px solid #2d445d;border-top:8px solid #a586b8;border-radius:16px 23px 14px 20px;color:#304b61;box-shadow:5px 6px 0 #293e5255;font-family:"Trebuchet MS",system-ui,sans-serif}
.horde-comic .mini-dialog::backdrop{background:#294b61ba;backdrop-filter:none}
.horde-comic .mini-dialog h2{color:#3d6c88}.horde-comic .mini-dialog p{color:#5f6b77}.horde-comic .mini-dialog .mini-points{color:#ac5b4c}
.horde-comic .mini-dialog button{background:#d8775b;color:#fff2d2;border:2px solid #354b61;box-shadow:0 3px 0 #354b61;border-radius:8px 12px 7px 10px;font-size:16px}
.horde-comic .mini-dialog a{color:#477d96}.horde-comic .mini-dialog select{border:2px solid #607e91;background:#fff4da;color:#31495e;border-radius:7px}
.horde-comic dialog:not([open]),.horde-comic [hidden]{display:none!important}
.horde-comic button:focus-visible{outline:3px solid #e7ac3e;outline-offset:2px}
@media(prefers-reduced-motion:reduce){.horde-comic *, .horde-comic *::before,.horde-comic *::after{animation:none!important;transition:none!important}}

/* Village scenery stays outside .field: same dimensions, targets and collisions. */
html.horde-comic body.mouse-village{background:#86ad79 url("mini-village.svg?v=atelier18") center / cover fixed!important}
.horde-comic .mouse-village .main-card{background:transparent!important;position:relative;border-color:transparent!important;box-shadow:none!important}
.horde-comic .mouse-village .field{box-shadow:0 0 0 5px #78817b,0 0 0 8px #344c50!important}
.horde-comic .mouse-village .main-card::after{content:"";position:absolute;inset:1px;pointer-events:none;border:7px solid transparent;border-image:url("camp-stones.svg") 14 round;z-index:10}

/* V8: clear paper bubbles, inked drawings and explicit feedback colours. */
.horde-comic body.memory-comic,.horde-comic body.memory-comic.dark{--bg:#fff4db;--bg2:#f4e6c7;--card:#fff8e8;--text:#273c51;--muted:#506075;--wine:#895746;--wine2:#895746;--line:#8f9e9d;color:#273c51!important}
.horde-comic .memory-comic .status{background:#fff7e5!important;color:#293e53!important;border:2px solid #b4b3a3!important;border-radius:12px 18px 11px 16px;box-shadow:2px 3px 0 #52687922;padding:9px 12px;margin:10px 0}
.horde-comic .memory-comic .status.success{background:#e1f2de!important;color:#235836!important;border-color:#5f956b!important}
.horde-comic .memory-comic .status.error{background:#ffe5dc!important;color:#893b32!important;border-color:#b87968!important}
.horde-comic .memory-comic .quiz-start,.horde-comic .memory-comic .quiz-finish,.horde-comic .memory-comic .control-box{background:#fff6de!important;color:#293e53!important}
.horde-comic .memory-comic .answer,.horde-comic .memory-comic .word-btn,.horde-comic .memory-comic .logo-btn{background:#fff6df!important;color:#293e53!important;border:2px solid #506478!important;box-shadow:2px 3px 0 #44597133!important;border-radius:14px 18px 11px 17px!important;opacity:1!important}
.horde-comic .memory-comic button:disabled{opacity:1!important}
.horde-comic .memory-comic button.correct{background:#daf2d9!important;color:#215c38!important;border:3px solid #35754b!important}
.horde-comic .memory-comic button.wrong{background:#ffe2d8!important;color:#893b32!important;border:3px solid #b24b42!important}
.horde-comic .memory-comic .workspace-title{display:flex;align-items:center;gap:10px}
.horde-comic .memory-comic .workspace-title .comic-art{width:32px;height:32px}
.horde-comic .memory-comic .memory-emoji{display:grid;place-items:center;min-height:0;flex:1;width:100%}
.horde-comic .memory-comic .memory-emoji .comic-art{width:100%;height:100%;max-width:72px;max-height:75px;min-height:26px}
.horde-comic .memory-comic .memory-label{color:#273c51!important;font-size:11px!important;line-height:1.05;flex:none}
.horde-comic .memory-comic .memory-back::after{content:none!important}
.horde-comic .memory-comic .memory-back .comic-art{width:45px;height:45px;max-height:55%}
.horde-comic #logicSequence .seq{border:2.5px solid #3c5267!important;border-radius:16px 22px 14px 20px!important;box-shadow:2px 3px 0 #556a7533!important;background:#fff5da!important;color:#283d52!important;height:58px!important;min-width:54px!important;padding:0 8px!important;flex:0 0 auto}
.horde-comic #logicSequence .seq.blank{background:#ffe7a6!important;border-style:dashed!important;font-size:32px!important}
.horde-comic #logicSequence .comic-art{width:43px;height:43px}
.horde-comic .logic-color{display:block;width:38px;height:38px;background:var(--swatch);border:2.5px solid #293d51;border-radius:44% 35% 43% 36%;box-shadow:inset 3px 3px 0 #ffffff66}
.horde-comic #logicAnswers .answer{display:flex;align-items:center;justify-content:center;gap:7px;min-width:76px;min-height:55px;padding:6px 10px;font-size:22px}
.horde-comic #logicAnswers .answer .comic-art{width:40px;height:40px}
.horde-comic .memory-comic .dot{display:inline-block;flex:none;width:24px;height:24px;border:2px solid #293d51}
.horde-comic .memory-comic .fruit-visual{background:#fff8e9!important;color:#30445b!important}
.horde-comic .memory-comic .fruit-emoji{display:grid;place-items:center;width:100%;height:100%;min-height:0}
.horde-comic .memory-comic .fruit-emoji .comic-art{width:90%;height:90%;max-width:100px;max-height:100px}
.horde-comic .memory-comic .fruit-visual.hidden-fruit{background:#d9e8e6!important;color:#31485c!important}
.horde-comic .memory-comic .fruit-visual.hidden-fruit .fruit-emoji{display:none!important}
.horde-comic .memory-comic .fruit-visual.hidden-fruit::after{font-size:40px}
.horde-comic .memory-comic .color-btn{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0;background:#fff8e8!important;color:#2c4054!important;padding:4px 2px!important;font-size:11px!important;line-height:1.1;overflow:visible!important;opacity:1!important}
.horde-comic .fruit-swatch{display:block;flex:none;width:21px;height:17px;background:var(--swatch);border:2px solid #2e4355;border-radius:38% 25% 35% 28%;box-shadow:inset 2px 2px 0 #ffffff77}
.horde-comic .memory-comic .color-btn.correct{background:#daf2d9!important;border-color:#35754b!important}
.horde-comic .memory-comic .color-btn.wrong{background:#ffe2d8!important;border-color:#b24b42!important}
.horde-comic #logoDisplay{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;min-height:88px;padding:9px 12px;background:#fff6dd!important;color:#293e53!important;letter-spacing:0;font-size:18px}
.horde-comic #logoDisplay .sequence-logo{display:inline-flex;flex-direction:column;align-items:center;gap:2px;background:#fffaf0;border:2px solid #93a6aa;border-radius:12px 17px 10px 14px;padding:4px 7px}
.horde-comic #logoDisplay .sequence-logo .comic-art{width:43px;height:43px}
.horde-comic #logoDisplay .sequence-logo small{color:#293e53!important;font-size:12px;font-weight:900;letter-spacing:0}
.horde-comic #logoDisplay.is-correction{background:#daf2d9!important;border:3px solid #35754b!important}
.horde-comic #logoInput{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:4px;min-height:45px;margin:7px 0;padding:4px;background:#fff7e3!important;color:#293e53!important;border:2px dashed #879d9c;border-radius:12px 18px 10px 16px}
.horde-comic #logoInput .comic-art{width:35px;height:35px}
.horde-comic #logoPool{grid-template-columns:repeat(6,minmax(0,1fr))!important;gap:7px!important;margin-top:9px}
.horde-comic #logoPool .logo-btn{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:5px!important;min-height:67px!important}
.horde-comic #logoPool .logo-btn .comic-art{width:43px;height:43px}
.horde-comic #logoPool .logo-btn small{color:#293e53!important;font-size:13px!important;line-height:1.1;margin:0!important;font-weight:900}
.horde-comic .memory-comic .blank-word{color:#885440!important;border-color:#895746!important}
.horde-comic .memory-comic .word-btn{font-size:17px}
.mini-emblem{display:inline-flex;margin-right:6px;vertical-align:middle}.mini-emblem .comic-art{width:32px;height:32px}
@media(max-width:650px){.horde-comic #logoPool{grid-template-columns:repeat(4,minmax(0,1fr))!important}.horde-comic #logoPool .logo-btn small{font-size:12px!important}.horde-comic #logicSequence .seq{min-width:39px!important;height:46px!important;padding:0 4px!important}.horde-comic #logicSequence .comic-art{width:32px;height:32px}.horde-comic .logic-color{width:29px;height:29px}.horde-comic #logicSequence{gap:5px!important}.horde-comic #logicAnswers .answer{min-width:59px;font-size:19px}.horde-comic #logoDisplay .sequence-logo{padding:3px;gap:0}.horde-comic #logoDisplay .sequence-logo .comic-art{width:32px;height:32px}.horde-comic #logoDisplay .sequence-logo small{font-size:11px}}

.horde-comic .token.animal .comic-art{width:90%;height:90%;pointer-events:none}.horde-comic .cell .comic-art{width:80%;height:80%;max-width:100%;pointer-events:none}

/* One static village illustration; answer cards remain opaque and readable. */
html.horde-comic body:not(.mouse-village):not(.village-mini){background:linear-gradient(#294e5826,#294b4240),url("mini-village.svg?v=atelier18") center/cover no-repeat #8eb183!important}
.horde-comic .memory-comic .workspace-body{background:linear-gradient(#f5edcb66,#e6eed45c),url("mini-village.svg?v=atelier18") center/cover no-repeat #c8d5aa!important}
.horde-comic .memory-comic .quiz-card{max-width:850px;margin:12px auto!important;background:#fff3dcf5!important;border-color:#798d82!important;box-shadow:3px 4px 0 #304c4e33!important}
.horde-comic .memory-comic .stats{display:flex;justify-content:center;flex-wrap:wrap;gap:8px}
.horde-comic .memory-comic .story-box,.horde-comic .memory-comic .quiz-start,.horde-comic .memory-comic .quiz-finish{background:#fff3dcf5!important;border-radius:14px}

/* V14: painted training camp. Decoration never changes target/collision geometry. */
html.horde-comic body.mouse-village{background-attachment:scroll!important}
.horde-comic .mouse-village .field{background:#e4d2a3 url("practice-camp.svg?v=atelier18") center/100% 100% no-repeat!important;border-color:#506b62!important;box-shadow:0 0 0 5px #a1ad91,0 0 0 8px #3d5959!important}
.horde-comic .mouse-village .field::before,.horde-comic .mouse-village .field::after{display:none!important}
.horde-comic .mouse-village .field>.grid{opacity:0!important}
.horde-comic .mouse-village .maze::before{border-color:#6e6047!important;box-shadow:inset 0 0 0 1px #e4c589!important}
.horde-comic .mouse-village .maze .wall{background:repeating-linear-gradient(125deg,#b08a54 0 8px,#c49c60 8px 11px,#b08a54 11px 14px)!important;border-color:#4a564c!important;box-shadow:inset 0 0 0 1px #ead19a!important}
.horde-comic .mouse-village .maze .wall.round,.horde-comic .mouse-village .maze .wall.triangle{background:linear-gradient(125deg,#a7b4a2 0 42%,#8e9e94 43% 78%,#758c83 79%)!important;border-color:#425c55!important}
.horde-comic .mouse-village .goal{border-color:#3e875f!important;color:#286042!important;background-color:#d8eabd!important}
.horde-comic .mouse-village .token.maze-token{border-color:#fff1cc!important;box-shadow:0 3px 0 #7f524d55!important}
.horde-comic .mouse-village .route-links line{stroke:#647e78!important}
/* Illustrated surfaces sit behind opaque paper: answers remain easy to read. */
.horde-comic .memory-comic .workspace-body{background:linear-gradient(#f5edcb44,#e6eed43b),url("mini-village.svg?v=atelier18") center/cover no-repeat #c8d5aa!important}
.horde-comic .typing-card{background:linear-gradient(#f7e9c9eb,#f7e9c9eb),url("mini-village.svg?v=atelier18") center/cover!important}
.horde-comic .grid-panel{background:linear-gradient(#ead7adcf,#ead7adcf),url("mini-village.svg?v=atelier18") center/cover!important;border-color:#63786a!important}
