/* Readable play palette: quiet scenery, deep board, six distinct animal hues. */
:root { color: #294635; }
.forest-world { filter: saturate(.65) brightness(.94); }
.sunlight { background: linear-gradient(180deg, #f6f4e94d, #f1f4e31f 60%, #e3ead730); }
.map-card, .recipe-card { background: linear-gradient(135deg, #fffdf6f5, #f8f6e9f0); }
.game-hud { background: linear-gradient(120deg, #fffef8, #f9f5e9); box-shadow: 0 5px 0 #35506c20; }
.little-card, .tool-tray { background: #fbfaf0e8; }
.speech { color: #52603d; background: #fffdf5f5; }
.game-heading p, .chapter-tag { color: #405b38; }
.eyebrow, .map-card > p, .map-floor, .little-card p, .buddy-name,
.recipe p, .right-note, .page-footer, .save-label { color: #5d7052; }
.recipe b, .recipe-card h3, .map-card h2, .goals-label b { color: #304b3b; }
.goals-label > span, .moves-box > span, .moves-box small { color: #64705c; }
.goal strong, .goal small, .score-label, .score-label b { color: #344e67; }
.moves-box strong { color: #c76220; text-shadow: none; }
.board-tip, .play-bottom, .play-bottom button { color: #3b543d; }
.board-tip { font-weight: 600; }
.tool { color: #435b40; }
.star-track { background: #9baaa0; }
.star-progress > span { color: #738069; }
.star-progress > span .earned { color: #d38a15; }

.board-shell {
  background: linear-gradient(145deg, #486782, #263f59);
  border-color: #fff0bd;
  box-shadow: inset 0 0 0 2px #152b42, 0 7px 0 #192f46, 0 10px 0 #c4b68d, 0 16px 32px #1d354544;
}
.board-trim { border-color: #b9d3de66; }
.board {
  background: #172b42;
  border-color: #8aabba;
  box-shadow: inset 0 3px 10px #09162499;
}
.cell {
  --tile-top: #a5594e;
  --tile-bottom: #784239;
  border: 1px solid #ffffff75;
  background: linear-gradient(145deg, var(--tile-top), var(--tile-bottom));
  box-shadow: inset 0 2px 1px #ffffff24, 0 2px 1px #060e1e99;
}
.cell[data-type='0'] { --tile-top: #a5594e; --tile-bottom: #784239; }
.cell[data-type='1'] { --tile-top: #a55f8b; --tile-bottom: #784565; }
.cell[data-type='2'] { --tile-top: #4e76a1; --tile-bottom: #33577e; }
.cell[data-type='3'] { --tile-top: #518671; --tile-bottom: #326653; }
.cell[data-type='4'] { --tile-top: #7861a3; --tile-bottom: #534379; }
.cell[data-type='5'] { --tile-top: #855ba5; --tile-bottom: #5b3d7b; }
/* Override the original per-type backgrounds without obscuring the face. */
.cell[data-type] { background: linear-gradient(145deg, var(--tile-top), var(--tile-bottom)); }
.cell:after { border-top-color: #ffffff35; }
.animal[data-animal='0'] { --animal-palette: saturate(1.75) contrast(1.08); }
.animal[data-animal='1'] { --animal-palette: sepia(.2) saturate(2.1) hue-rotate(292deg) contrast(1.07); }
.animal[data-animal='2'] { --animal-palette: hue-rotate(172deg) saturate(1.65) brightness(1.2) contrast(1.05); }
.animal[data-animal='3'] { --animal-palette: saturate(1.85) contrast(1.09); }
.animal[data-animal='4'] { --animal-palette: saturate(1.7) contrast(1.08); }
.animal[data-animal='5'] { --animal-palette: saturate(1.9) contrast(1.08); }
.animal, .cell[class*='special-'] .animal {
  filter: var(--animal-palette, saturate(1.2)) drop-shadow(0 2px 1px #111c3980);
}
.cell.selected {
  outline: 3px solid #fff494;
  outline-offset: -1px;
  box-shadow: inset 0 0 0 2px #fffbe6, 0 0 0 2px #ffbd38, 0 0 17px #ffd95c;
}
@keyframes hint {
  0%,100% { box-shadow: inset 0 0 0 2px #a7fff0, 0 0 7px #72efd4; transform: scale(1); }
  50% { box-shadow: inset 0 0 0 3px #e6fff9, 0 0 17px #72efd4; transform: scale(1.07); }
}
.cell.iced {
  border: 2px solid #a6edff;
  box-shadow: inset 0 0 0 1px #f1fdff, 0 0 0 1px #43a1cc, 0 2px 1px #071829;
}
.cell.iced:before {
  background: linear-gradient(135deg, #d7f9ffb8 0 10%, transparent 11% 89%, #d7f9ffb8 90%), linear-gradient(45deg, #bef2ff9c 0 8%, transparent 9% 91%, #bef2ff9c 92%);
  border: 0;
}
.cell.iced:after {
  content: '❄'; inset: auto; top: 0; left: 0; z-index: 4;
  width: 15px; height: 15px; border: 1px solid #d6faff;
  border-radius: 5px; background: #145276; color: #e9fcff;
  font: 12px/13px Arial; text-align: center;
}
.cell .power-aura { background: none; box-shadow: none; opacity: 1; }
.cell.special-row .power-aura {
  inset: 1px; border: 0; border-top: 3px solid #ffe575; border-bottom: 3px solid #ffe575;
}
.cell.special-column .power-aura {
  inset: 1px; border: 0; border-left: 3px solid #ffe575; border-right: 3px solid #ffe575;
}
.cell.special-bomb .power-aura {
  inset: 1px; border: 2px dashed #ffce72; box-shadow: inset 0 0 7px #ffb54c55;
}
.cell.special-rainbow .power-aura {
  inset: 0; border: 3px solid; border-color: #ff8bb2 #ffe668 #87f4e9 #cfadff;
  box-shadow: inset 0 0 5px #ffffff55; animation: none;
}
.power-badge, .special-rainbow .power-badge {
  background: #23344d; color: #fff6bd; border-color: #fff2bc;
  font-weight: 900; box-shadow: 0 1px 3px #081224aa;
}
.special-bomb .power-badge { background: #9e3c25; color: #fff6ce; }
.special-rainbow .power-badge { background: #5b3288; color: #fff3bb; }
.goal .animal { filter: var(--animal-palette, saturate(1.2)) drop-shadow(0 1px 1px #34425d40); }
@media (max-width:680px) {
  .board-tip { font-size: 10px; }
  .cell.iced:after { width: 12px; height: 12px; font-size: 10px; line-height: 10px; border-radius: 4px; }
}
