/* ---------- MANCALA ---------- */
.cab[data-world="mancala"]{--w1:#FFE6EF;--w2:#FFB9D4}
.cab[data-world="mancala"] .cab-world{background:
  radial-gradient(circle at 1px 1px,rgba(26,16,51,.07) 2.4px,transparent 3px) 0 0/40px 40px,
  radial-gradient(ellipse 200px 120px at 4% 106%,rgba(255,95,176,.35),transparent 70%),
  radial-gradient(ellipse 240px 140px at 98% 104%,rgba(255,210,63,.35),transparent 70%)}

.mc-game{position:absolute;inset:0;container-type:size}
.mc-wrap{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(8px,2cqh,18px);padding:4px 10px min(96px,14cqh)}
.mc-game .mc-board{--pw:min((100cqw - 26px) / 7.72,104px,(100cqh - 250px) / 2.9);--ph:calc(var(--pw) * 1.42);--st:calc(var(--pw) * .86);--g:calc(var(--pw) * .1);--pad:calc(var(--pw) * .2);
  position:relative;flex:none;display:grid;grid-template-columns:var(--st) repeat(5,var(--pw)) var(--st);grid-template-rows:var(--ph) var(--ph);gap:var(--g);padding:var(--pad);
  border:var(--bd);border-radius:calc(var(--ph) * .75);box-shadow:0 8px 0 var(--ink),inset 0 5px 0 rgba(255,255,255,.28),inset 0 -8px 0 rgba(26,16,51,.18);
  background:repeating-linear-gradient(97deg,rgba(255,255,255,.07) 0 3px,transparent 3px 17px,rgba(122,69,32,.1) 17px 19px,transparent 19px 31px),linear-gradient(#E2A465,#C47F42)}
.mc-game .mc-pit,.mc-game .mc-store{position:relative;border:3px solid var(--ink);border-radius:50%;padding:0;
  background:radial-gradient(ellipse at 50% 30%,#8A5229 0 45%,#6E3E1C 100%);box-shadow:inset 0 7px 0 rgba(26,16,51,.35),0 2px 0 rgba(255,255,255,.3);transition:box-shadow .2s,transform .15s var(--spring)}
.mc-game .mc-store{grid-row:1/3;border-radius:999px}
.mc-game .mc-so{grid-column:1}.mc-game .mc-sk{grid-column:7}
.mc-game .mc-mine{cursor:default;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.mc-game .mc-mine.mc-live{cursor:pointer;box-shadow:inset 0 7px 0 rgba(26,16,51,.35),0 0 0 3px #FFE9A8,0 0 0 6px rgba(255,210,63,.55)}
.mc-game .mc-mine.mc-live:hover{box-shadow:inset 0 7px 0 rgba(26,16,51,.35),0 0 0 3px #fff,0 0 0 7px var(--sun)}
.mc-game .mc-mine:focus-visible{outline:4px solid var(--grape);outline-offset:4px;border-radius:50%}
.mc-game .mc-bump{animation:mcBump .3s var(--spring)}
@keyframes mcBump{40%{transform:scale(1.07)}}
.mc-game .mc-pick{box-shadow:inset 0 7px 0 rgba(26,16,51,.35),0 0 0 3px #fff,0 0 0 7px var(--orange)}
.mc-game .mc-hintp{animation:mcHint .9s ease-in-out 3}
@keyframes mcHint{50%{transform:scale(1.08);box-shadow:inset 0 7px 0 rgba(26,16,51,.35),0 0 0 3px #fff,0 0 0 8px var(--sun)}}
.mc-game .mc-hand{margin-left:0;width:40px;z-index:7}

.mc-game .mc-seeds{position:absolute;inset:0;pointer-events:none;z-index:4}
.mc-game .mc-seed{position:absolute;left:0;top:0;width:var(--sd);height:var(--sd);border-radius:50%;border:2px solid var(--ink);
  background:radial-gradient(circle at 34% 30%,rgba(255,255,255,.85) 0 18%,transparent 24%),var(--c);
  box-shadow:0 1.5px 0 rgba(26,16,51,.45);transition:transform .17s cubic-bezier(.3,.7,.4,1.1),scale .17s}
.mc-game .mc-seed.mc-held{scale:1.18;z-index:2;box-shadow:0 5px 0 rgba(26,16,51,.3)}
.mc-game .mc-seed.mc-in{animation:mcIn .4s var(--spring) backwards}
@keyframes mcIn{from{scale:0}}
.mc-game.mc-nt .mc-seed,.mc-game.mc-calm .mc-seed{transition:none}

.mc-game .mc-who{position:relative;width:clamp(44px,12cqw,56px);aspect-ratio:1;padding:6px;border-radius:50%;background:rgba(255,255,255,.55);border:3px solid rgba(26,16,51,.22);opacity:.6;transform:scale(.88);transition:transform .3s var(--spring),opacity .3s,background .3s}
.mc-game .mc-who svg{display:block;width:100%;height:100%;overflow:visible}
.mc-game .mc-who.mc-on{opacity:1;transform:scale(1);background:#fff;border-color:var(--ink);box-shadow:0 3px 0 var(--ink)}
.mc-game .mc-inner{display:flex;flex-direction:column;gap:clamp(8px,2cqh,18px)}
.mc-game .mc-who.mc-o{align-self:flex-start;margin-left:4px}
.mc-game .mc-who.mc-k{align-self:flex-end;margin-right:4px}
.mc-game .mc-think{position:absolute;left:100%;top:50%;margin:-6px 0 0 6px;display:none;gap:4px}
.mc-game .mc-think i{width:8px;height:8px;border-radius:50%;background:var(--ink);opacity:.25;animation:mcDot .9s ease-in-out infinite}
.mc-game .mc-think i:nth-child(2){animation-delay:.15s}.mc-game .mc-think i:nth-child(3){animation-delay:.3s}
.mc-game .mc-thinking .mc-think{display:flex}
@keyframes mcDot{40%{opacity:1;transform:translateY(-3px)}}

/* end: both stores side by side, rows of five */
.mc-game .mc-end{position:absolute;inset:0;z-index:8;display:grid;place-items:center;padding:12px 12px 90px;animation:mcFade .3s}
@keyframes mcFade{from{opacity:0}}
.mc-game .mc-card{display:flex;align-items:flex-end;gap:clamp(22px,8cqw,64px);background:var(--paper);border:var(--bd);border-radius:30px;box-shadow:0 8px 0 var(--ink);padding:18px clamp(20px,6cqw,40px) 22px;animation:popIn .45s var(--spring)}
.mc-game .mc-col{display:flex;flex-direction:column-reverse;align-items:center;gap:34px}
.mc-game .mc-av{position:relative;width:52px;height:52px}
.mc-game .mc-av>svg:last-child{width:100%;height:100%;display:block}
.mc-game .mc-crown{position:absolute;left:50%;top:-30px;width:40px;margin-left:-20px;animation:popIn .5s var(--spring) 1.2s backwards}
.mc-game .mc-stack{display:flex;flex-direction:column-reverse;gap:4px;min-height:20px;padding:8px;border-radius:18px;background:rgba(122,69,32,.12);border:3px dashed rgba(26,16,51,.2)}
.mc-game .mc-row{display:flex;gap:4px;animation:mcRow .3s var(--spring) backwards;animation-delay:calc(var(--d) * 110ms + .1s)}
@keyframes mcRow{from{transform:translateY(-14px) scale(.6);opacity:0}}
.mc-game .mc-peb{width:clamp(14px,4.4cqw,24px);aspect-ratio:1;border-radius:50%;border:2px solid var(--ink);background:radial-gradient(circle at 34% 30%,rgba(255,255,255,.85) 0 18%,transparent 24%),var(--c)}
.mc-game.mc-calm *{animation-duration:.01ms!important}

/* cartridge */
.cart:hover .a-seed,.cart:focus-visible .a-seed{animation:mcArt .9s ease-in infinite}
@keyframes mcArt{to{transform:translate(-22px,28px) scale(.7);opacity:.2}}

@media (prefers-reduced-motion:reduce){.mc-game *{animation-duration:.01ms!important;transition-duration:.01ms!important}}
