/* Learning Matching Game — every rule is scoped to .lmg-app so the host theme is untouched. */
.lmg-app{
  --lmg-ink:#2b1a3a; --lmg-soft:#6b5873; --lmg-bg:#fff8fc; --lmg-card:#ffffff; --lmg-line:#f1d8e6;
  --lmg-pink:#ff3d95; --lmg-purple:#7b3dff; --lmg-blue:#1f6bff; --lmg-mint:#16b088; --lmg-sun:#ffb800;
  --lmg-r:20px; --lmg-font:"Nunito","Fredoka",ui-rounded,"SF Pro Rounded","Segoe UI",system-ui,-apple-system,sans-serif;
  --lmg-display:"Fredoka","Nunito",ui-rounded,"SF Pro Rounded","Segoe UI",system-ui,sans-serif;
  position:relative; display:block; width:100%; max-width:1280px; margin:0 auto; color:var(--lmg-ink);
  font:500 16px/1.45 var(--lmg-font); text-align:left; -webkit-text-size-adjust:100%;
}
.lmg-app *,.lmg-app *::before,.lmg-app *::after{box-sizing:border-box}
.lmg-app :where(button,input,select){font:inherit;color:inherit;margin:0}
.lmg-app :where(button){cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none;border:0;background:none;padding:0;letter-spacing:normal;text-transform:none;line-height:1.2;box-shadow:none;min-height:0;width:auto}
.lmg-app :where(button:disabled){cursor:not-allowed}
.lmg-app :focus-visible{outline:3px solid var(--lmg-sun);outline-offset:3px}
.lmg-app h2,.lmg-app h3{font-family:var(--lmg-display);color:var(--lmg-ink);margin:0;letter-spacing:0;text-transform:none}
.lmg-app h2{font-size:clamp(24px,4.6vw,36px);line-height:1.12;font-weight:700;text-wrap:balance}
.lmg-app img{max-width:100%;height:auto}
.lmg-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}

.lmg-shell{background:var(--lmg-bg);border-radius:28px;padding:clamp(12px,2.4vw,24px);box-shadow:0 18px 48px rgba(120,40,110,.12),inset 0 0 0 1px var(--lmg-line);min-height:min(80vh,720px)}
.lmg-main{display:flex;flex-direction:column;gap:16px;outline:none}

/* top bar */
.lmg-top{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.lmg-brand{display:inline-flex;align-items:center;gap:8px;font:700 clamp(17px,2.4vw,21px)/1.1 var(--lmg-display);padding:8px 4px}
.lmg-tools{display:flex;align-items:center;gap:8px}
.lmg-seg{display:inline-flex;background:#fff;border-radius:999px;padding:3px;box-shadow:inset 0 0 0 1.5px var(--lmg-line)}
.lmg-seg button{min-width:40px;min-height:36px;padding:6px 10px;border-radius:999px;font-weight:800;font-size:13px;color:var(--lmg-soft)}
.lmg-seg button[aria-pressed="true"]{background:var(--lmg-purple);color:#fff}
.lmg-icon{width:44px;height:44px;border-radius:50%;background:#fff;box-shadow:inset 0 0 0 1.5px var(--lmg-line);font-size:20px;display:inline-grid;place-items:center}
.lmg-icon[aria-pressed="false"]{opacity:.7}

/* steps */
.lmg-steps{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.lmg-dots{display:flex;gap:6px}
.lmg-dots span{width:26px;height:8px;border-radius:99px;background:var(--lmg-line)}
.lmg-dots .is-done{background:var(--lmg-mint)}
.lmg-dots .is-now{background:var(--lmg-pink)}
.lmg-crumbs{display:flex;flex-wrap:wrap;gap:6px}
.lmg-crumb{background:#fff;border-radius:999px;padding:6px 12px;font-size:14px;font-weight:700;box-shadow:inset 0 0 0 1.5px var(--lmg-line);min-height:34px}

/* tiles */
.lmg-grid{display:grid;gap:clamp(10px,1.6vw,16px)}
.lmg-grid--tiles{grid-template-columns:repeat(auto-fill,minmax(min(100%,150px),1fr))}
.lmg-tile{--c:var(--lmg-purple);position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;
  min-height:clamp(118px,22vw,150px);padding:14px 10px;border-radius:var(--lmg-r);background:#fff;
  box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--c) 30%,#fff),0 6px 0 color-mix(in srgb,var(--c) 45%,#fff),0 12px 22px rgba(80,20,70,.08);
  transition:transform .15s ease}
.lmg-tile:active{transform:translateY(3px)}
.lmg-tile__emoji{font-size:clamp(38px,7vw,52px);line-height:1}
.lmg-tile__name{font:700 clamp(16px,2.2vw,19px)/1.15 var(--lmg-display)}
.lmg-tile__meta{font-size:13px;color:var(--lmg-soft);font-weight:700}
.lmg-quick{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;text-align:left;padding:14px 18px;border-radius:var(--lmg-r);color:#fff;font-weight:800;
  background:linear-gradient(120deg,var(--lmg-pink),var(--lmg-purple));box-shadow:0 6px 0 #5a24c0,0 12px 24px rgba(123,61,255,.25);min-height:56px}
.lmg-quick small{width:100%;font-weight:700;opacity:.85}

.lmg-grid--levels{grid-template-columns:repeat(auto-fill,minmax(min(100%,130px),1fr))}
.lmg-level{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:96px;border-radius:var(--lmg-r);background:#fff;
  box-shadow:inset 0 0 0 2px #e7dcff,0 6px 0 #d2c2ff}
.lmg-level b{font:700 30px/1 var(--lmg-display);color:var(--lmg-purple)}
.lmg-level span{font-size:13px;font-weight:700;color:var(--lmg-soft)}
.lmg-level:disabled,.lmg-diff:disabled{opacity:.45;box-shadow:inset 0 0 0 2px var(--lmg-line)}

.lmg-grid--counts{grid-template-columns:repeat(4,minmax(0,1fr))}
.lmg-count{display:flex;flex-direction:column;align-items:center;gap:4px;min-height:92px;border-radius:var(--lmg-r);background:#fff;padding:10px 4px;
  box-shadow:inset 0 0 0 2px var(--lmg-line),0 5px 0 var(--lmg-line)}
.lmg-count b{font:700 30px/1 var(--lmg-display)}
.lmg-count span{font-size:14px;letter-spacing:-2px}
.lmg-count[aria-pressed="true"]{background:var(--lmg-blue);color:#fff;box-shadow:0 5px 0 #1449b3}
.lmg-sub{font-size:18px!important}
.lmg-names{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));gap:10px}
.lmg-name{display:flex;align-items:center;gap:10px;background:#fff;border-radius:16px;padding:8px 12px;box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--pc) 35%,#fff)}
.lmg-name input{flex:1;min-width:0;border:0;background:transparent;font-size:18px!important;font-weight:700;padding:8px 2px;outline:none;box-shadow:none}
.lmg-avatar{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--pc);color:#fff;font-size:14px;flex:none}
.lmg-hint{margin:0;color:var(--lmg-soft);font-size:14px}

.lmg-grid--diff{grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr))}
.lmg-diff{display:flex;flex-direction:column;align-items:center;gap:6px;padding:18px 12px;border-radius:var(--lmg-r);background:#fff;min-height:170px;
  box-shadow:inset 0 0 0 2px var(--dc),0 6px 0 var(--dc)}
.lmg-diff--easy{--dc:#9be3c9}.lmg-diff--medium{--dc:#ffd27a}.lmg-diff--hard{--dc:#ffa3c8}
.lmg-diff__face{font-size:44px;line-height:1}
.lmg-diff b{font:700 24px/1.1 var(--lmg-display)}
.lmg-diff span{font-weight:700;color:var(--lmg-soft)}
.lmg-diff__go{margin-top:4px;background:var(--lmg-ink);color:#fff!important;border-radius:999px;padding:8px 18px}

.lmg-actions{display:flex;gap:10px;justify-content:space-between;flex-wrap:wrap}
.lmg-actions--wrap{justify-content:center}
.lmg-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:50px;padding:12px 22px;border-radius:999px;
  font-weight:800;font-size:16px;background:var(--lmg-pink);color:#fff;box-shadow:0 5px 0 #c01a6c}
.lmg-btn--alt{background:var(--lmg-blue);box-shadow:0 5px 0 #1449b3}
.lmg-btn--ghost{background:#fff;color:var(--lmg-ink);box-shadow:inset 0 0 0 2px var(--lmg-line),0 4px 0 var(--lmg-line)}
.lmg-btn:active,.lmg-count:active,.lmg-level:active,.lmg-diff:active,.lmg-quick:active{transform:translateY(3px)}

/* loading */
.lmg-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;min-height:300px;text-align:center}
.lmg-spinner{display:flex;gap:8px}
.lmg-spinner i{width:14px;height:14px;border-radius:50%;background:var(--lmg-pink);animation:lmg-b 1s infinite ease-in-out}
.lmg-spinner i:nth-child(2){background:var(--lmg-purple);animation-delay:.15s}.lmg-spinner i:nth-child(3){background:var(--lmg-blue);animation-delay:.3s}
@keyframes lmg-b{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
.lmg-big{font:700 clamp(22px,4vw,30px)/1.2 var(--lmg-display);margin:0}

/* ----------------------------------------------------------------- game */
.lmg-game{display:flex;flex-direction:column;gap:10px}
.lmg-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.lmg-chip{min-height:40px;padding:8px 14px;border-radius:999px;background:#fff;font-weight:800;font-size:14px;box-shadow:inset 0 0 0 1.5px var(--lmg-line)}
.lmg-chip.is-armed{background:var(--lmg-pink);color:#fff}
.lmg-bar__title{flex:1;min-width:0;font:700 15px/1.2 var(--lmg-display);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lmg-bar__stats{display:flex;gap:12px;font-weight:800;font-variant-numeric:tabular-nums}
.lmg-turn{display:flex;justify-content:center}
.lmg-turn__tag{--pc:var(--lmg-purple);display:inline-flex;align-items:center;gap:6px;padding:8px 18px;border-radius:999px;background:var(--pc);color:#fff;font:700 clamp(16px,2.6vw,20px)/1.1 var(--lmg-display);box-shadow:0 4px 0 rgba(0,0,0,.15)}
.lmg-turn.is-new .lmg-turn__tag{animation:lmg-pulse .5s cubic-bezier(.3,1.6,.5,1)}
@keyframes lmg-pulse{0%{transform:scale(.85)}100%{transform:scale(1)}}

.lmg-play{display:grid;gap:12px;grid-template-columns:minmax(0,1fr)}
.lmg-score{order:-1;background:#fff;border-radius:18px;padding:8px;box-shadow:inset 0 0 0 1.5px var(--lmg-line)}
.lmg-score h3{display:none}
.lmg-score ol{list-style:none;margin:0;padding:0;display:flex;gap:6px;overflow-x:auto;scrollbar-width:none}
.lmg-score li{--pc:var(--lmg-purple);flex:1 1 0;min-width:0;display:flex;align-items:center;gap:6px;padding:6px 10px;border-radius:12px;background:color-mix(in srgb,var(--pc) 8%,#fff);position:relative;margin:0}
.lmg-score li.is-turn{background:var(--pc);color:#fff}
.lmg-score li.is-turn .lmg-avatar{background:#fff;color:var(--pc)}
.lmg-rank{width:20px;text-align:center;flex:none}
.lmg-pname{flex:1;min-width:0;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lmg-pts{font:700 18px/1 var(--lmg-display);font-variant-numeric:tabular-nums;white-space:nowrap}
.lmg-pts small{font:700 11px var(--lmg-font);opacity:.75}
.lmg-flame{font-size:12px;font-weight:800;white-space:nowrap}
.lmg-score.is-solo li .lmg-rank{display:none}
.lmg-mini{display:none;margin:10px 0 0;grid-template-columns:1fr 1fr;gap:8px}
.lmg-mini div{background:var(--lmg-bg);border-radius:12px;padding:8px 10px}
.lmg-mini dt{font-size:12px;color:var(--lmg-soft);font-weight:700}
.lmg-mini dd{margin:0;font:700 20px/1.1 var(--lmg-display)}

/* compact scoreboard on small phones */
@media (max-width:520px){
  .lmg-score li{padding:5px 7px;gap:4px}
  .lmg-score .lmg-avatar{width:22px;height:22px;font-size:11px}
  .lmg-score .lmg-rank{display:none}
  .lmg-pts{font-size:16px}
  .lmg-pts small{display:none}
  .lmg-game--p3 .lmg-pname,.lmg-game--p4 .lmg-pname{font-size:13px}
  .lmg-bar__title{display:none}
  .lmg-bar{justify-content:space-between}
  .lmg-shell{border-radius:20px}
}
/* side panel when there is room (tablet landscape, desktop) */
@media (min-width:900px),(min-width:740px) and (orientation:landscape){
  .lmg-play{grid-template-columns:minmax(0,1fr) clamp(200px,24vw,280px);align-items:start}
  .lmg-score{order:0;position:sticky;top:12px;padding:14px}
  .lmg-score h3{display:block;font-size:18px;margin:2px 4px 10px}
  .lmg-score ol{flex-direction:column;overflow:visible}
  .lmg-score li{flex:none;padding:10px 12px}
  .lmg-mini{display:grid}
}

/* board */
.lmg-boardwrap{position:relative;display:flex;justify-content:center;min-width:0}
.lmg-board{--cw:110px;--gap:10px;display:grid;gap:var(--gap);justify-content:center;perspective:900px}
.lmg-card{position:relative;width:var(--cw);height:calc(var(--cw) / .78);border-radius:calc(var(--cw) * .14);user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.lmg-card__in{position:absolute;inset:0;transform-style:preserve-3d;transition:transform .42s cubic-bezier(.3,1.2,.5,1)}
.lmg-card.is-up .lmg-card__in,.lmg-card.is-matched .lmg-card__in{transform:rotateY(180deg)}
.lmg-card__back,.lmg-card__front{position:absolute;inset:0;border-radius:inherit;backface-visibility:hidden;-webkit-backface-visibility:hidden;display:grid;place-items:center;overflow:hidden}
.lmg-card__back{background:radial-gradient(circle at 30% 25%,rgba(255,255,255,.35),transparent 40%),linear-gradient(135deg,#ff5fa8,#8b5bff 55%,#3c8bff);
  box-shadow:inset 0 0 0 calc(var(--cw)*.04) rgba(255,255,255,.55),0 calc(var(--cw)*.05) 0 #5d34c9,0 8px 16px rgba(60,20,100,.18)}
.lmg-card__back i{font:700 calc(var(--cw)*.42)/1 var(--lmg-display);font-style:normal;color:rgba(255,255,255,.9);text-shadow:0 3px 0 rgba(0,0,0,.12)}
.lmg-card__front{transform:rotateY(180deg);background:var(--lmg-card);padding:calc(var(--cw)*.07);text-align:center;
  box-shadow:inset 0 0 0 2px var(--lmg-line),0 calc(var(--cw)*.05) 0 #e6cfdc,0 8px 16px rgba(60,20,100,.12)}
.lmg-card__front img{width:100%;height:100%;object-fit:contain;pointer-events:none}
.lmg-face{display:block;max-width:100%;font-weight:800;line-height:1.12;overflow-wrap:anywhere;hyphens:auto;color:var(--lmg-ink)}
.lmg-face--emoji{font-size:calc(var(--cw)*.5);line-height:1}
.lmg-face--emojis{font-size:calc(var(--cw)*.2);line-height:1.15;letter-spacing:-.05em}
.lmg-face--xl{font:700 calc(var(--cw)*.36)/1 var(--lmg-display)}
.lmg-face--l{font:700 calc(var(--cw)*.22)/1.05 var(--lmg-display)}
.lmg-face--m{font-size:max(12px,calc(var(--cw)*.15))}
.lmg-face--s{font-size:max(11px,calc(var(--cw)*.125))}
.lmg-face--xs{font-size:max(10px,calc(var(--cw)*.105));font-weight:700}
.lmg-face--cap{position:absolute;left:4px;right:4px;bottom:4px;font-size:max(10px,calc(var(--cw)*.1));background:rgba(255,255,255,.85);border-radius:8px}
.lmg-face.is-num{font-variant-numeric:tabular-nums;color:#1d3fa0}
.lmg-card.is-matched .lmg-card__front{box-shadow:inset 0 0 0 calc(var(--cw)*.04) var(--pc),0 calc(var(--cw)*.05) 0 color-mix(in srgb,var(--pc) 55%,#fff),0 8px 18px color-mix(in srgb,var(--pc) 35%,transparent);
  background:color-mix(in srgb,var(--pc) 7%,#fff)}
.lmg-card.is-matched{animation:lmg-match .5s cubic-bezier(.3,1.6,.5,1)}
@keyframes lmg-match{40%{transform:scale(1.08)}100%{transform:scale(1)}}
.lmg-card.is-miss .lmg-card__front{animation:lmg-shake .4s}
@keyframes lmg-shake{25%{transform:rotateY(180deg) translateX(-5px)}75%{transform:rotateY(180deg) translateX(5px)}}
.lmg-badge{position:absolute;top:-6px;right:-6px;background:var(--pc);color:#fff;font-size:12px;font-weight:800;border-radius:999px;padding:2px 7px;box-shadow:0 2px 6px rgba(0,0,0,.2);pointer-events:none}
.lmg-pop{position:absolute;z-index:5;transform:translate(-50%,0);pointer-events:none;white-space:nowrap;font:700 22px/1 var(--lmg-display);color:var(--lmg-pink);
  text-shadow:0 2px 0 #fff,0 0 8px #fff;animation:lmg-up 1.3s ease-out both}
.lmg-pop--bonus{font-size:16px;color:var(--lmg-purple)}
@keyframes lmg-up{0%{opacity:0;transform:translate(-50%,10px) scale(.7)}15%{opacity:1;transform:translate(-50%,0) scale(1.1)}100%{opacity:0;transform:translate(-50%,-50px) scale(1)}}

/* results */
.lmg-result{display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center;padding:10px 0 4px}
.lmg-eyebrow{margin:0;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--lmg-pink);font-size:14px}
.lmg-stars{display:flex;gap:8px;font-size:clamp(46px,9vw,64px);line-height:1}
.lmg-stars span{color:#e8dfe8}
.lmg-stars .is-on{color:var(--lmg-sun);text-shadow:0 4px 0 #e09a00;animation:lmg-star .6s cubic-bezier(.3,1.7,.5,1) both;animation-delay:calc(var(--k)*.18s)}
@keyframes lmg-star{0%{transform:scale(0) rotate(-40deg)}100%{transform:scale(1)}}
.lmg-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;width:min(100%,640px);margin:0}
.lmg-stats div{background:#fff;border-radius:16px;padding:10px 12px;box-shadow:inset 0 0 0 1.5px var(--lmg-line)}
.lmg-stats dt{font-size:13px;color:var(--lmg-soft);font-weight:700}
.lmg-stats dd{margin:2px 0 0;font:700 24px/1.1 var(--lmg-display)}
.lmg-meta{margin:0;color:var(--lmg-soft);font-weight:700}
.lmg-saved{margin:0;color:var(--lmg-mint);font-weight:800;font-size:14px}
.lmg-podium{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:10px;width:min(100%,560px);margin-top:6px}
.lmg-podium__col{display:flex;flex-direction:column;align-items:stretch;gap:6px;min-width:0}
.lmg-podium__who{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0}
.lmg-podium__who b{font:700 17px/1.1 var(--lmg-display);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lmg-podium__who span{font-weight:800;color:var(--lmg-soft);font-size:14px}
.lmg-podium__medal{font-size:34px}
.lmg-podium__step{display:grid;place-items:center;border-radius:14px 14px 4px 4px;background:var(--pc);color:#fff;font:700 28px/1 var(--lmg-display);
  box-shadow:inset 0 6px 0 rgba(255,255,255,.25);animation:lmg-rise .7s cubic-bezier(.3,1.3,.5,1) both}
.lmg-podium__col--1 .lmg-podium__step{height:130px;animation-delay:.35s}
.lmg-podium__col--2 .lmg-podium__step{height:96px;animation-delay:.15s}
.lmg-podium__col--3 .lmg-podium__step{height:70px}
@keyframes lmg-rise{0%{transform:scaleY(0);transform-origin:bottom}100%{transform:scaleY(1);transform-origin:bottom}}
.lmg-rest{list-style:none;margin:0;padding:0;font-weight:800}
.lmg-confetti{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:10}

/* leaderboard */
.lmg-filters{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,150px),1fr));gap:10px}
.lmg-filter{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:800;color:var(--lmg-soft)}
.lmg-filter select{min-height:44px;border-radius:12px;border:0;background:#fff;padding:8px 10px;font-size:15px;font-weight:700;color:var(--lmg-ink);box-shadow:inset 0 0 0 1.5px var(--lmg-line);width:100%}
.lmg-top10{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.lmg-top10 li{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:2px 10px;background:#fff;border-radius:16px;padding:10px 14px;box-shadow:inset 0 0 0 1.5px var(--lmg-line);margin:0}
.lmg-top10 .lmg-rank{width:auto;font-size:22px;text-align:center;font-weight:800}
.lmg-top10 small{grid-column:2/-1;color:var(--lmg-soft);font-weight:700}
.lmg-empty{text-align:center;font-weight:800;color:var(--lmg-soft);padding:24px 8px;margin:0}

@media (prefers-reduced-motion:reduce){
  .lmg-app *,.lmg-app *::before,.lmg-app *::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.05s!important}
}

/* ============================================================ 1.1 — game picker */
.lmg-grid--games{grid-template-columns:repeat(auto-fill,minmax(min(100%,170px),1fr))}
.lmg-tile--game{--c:var(--lmg-purple);min-height:clamp(132px,22vw,168px)}
.lmg-tile--game:nth-child(7n+1){--c:#ff3d95}.lmg-tile--game:nth-child(7n+2){--c:#7b3dff}.lmg-tile--game:nth-child(7n+3){--c:#1f6bff}
.lmg-tile--game:nth-child(7n+4){--c:#16b088}.lmg-tile--game:nth-child(7n+5){--c:#ff8a00}.lmg-tile--game:nth-child(7n+6){--c:#e8207f}.lmg-tile--game:nth-child(7n+7){--c:#0aa3a3}
.lmg-tile--game[aria-pressed="true"]{background:color-mix(in srgb,var(--c) 8%,#fff)}
.lmg-tile--game:disabled{opacity:.45}
.lmg-tile--game .lmg-tile__meta{font-weight:700;line-height:1.25}
.lmg-chips{display:flex;flex-wrap:wrap;gap:8px}
.lmg-chipbtn{min-width:56px;min-height:46px;border-radius:14px;background:#fff;font:700 18px/1 var(--lmg-display);box-shadow:inset 0 0 0 2px var(--lmg-line),0 4px 0 var(--lmg-line)}
.lmg-chipbtn[aria-pressed="true"]{background:var(--lmg-purple);color:#fff;box-shadow:0 4px 0 #5a24c0}

/* faces: flags, outlines, countries */
.lmg-flag{display:block;width:100%;height:auto;max-height:100%;object-fit:contain;border-radius:6px;box-shadow:0 0 0 1px rgba(0,0,0,.08)}
.lmg-card.is-flag .lmg-card__front{padding:calc(var(--cw)*.1)}
.lmg-shape{display:block;width:100%;height:100%;fill:var(--lmg-purple);filter:drop-shadow(0 2px 0 rgba(90,36,192,.35))}
.lmg-face--country{display:flex;flex-direction:column;align-items:center;gap:4px;font-family:var(--lmg-display)}
.lmg-face--country small{display:block;font:800 max(9px,calc(var(--cw)*.085))/1.1 var(--lmg-font);color:var(--lmg-soft);text-transform:uppercase;letter-spacing:.03em}
.lmg-country{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}
.lmg-country__pics{display:flex;align-items:center;gap:10px}
.lmg-country__pics .lmg-flag{width:84px}
.lmg-country__pics .lmg-shape{width:70px;height:70px}
.lmg-country b{font:700 20px/1.1 var(--lmg-display)}
.lmg-country span{font-weight:800;color:var(--lmg-soft);font-size:14px}
.lmg-info{position:absolute;z-index:8;left:50%;top:40%;transform:translate(-50%,-50%);background:#fff;border-radius:22px;padding:16px 20px;min-width:220px;
  box-shadow:0 18px 40px rgba(60,20,100,.28),inset 0 0 0 3px #ffe3f1;animation:lmg-info .45s cubic-bezier(.3,1.5,.5,1)}
.lmg-info.is-out{opacity:0;transition:opacity .3s}
@keyframes lmg-info{0%{transform:translate(-50%,-40%) scale(.7);opacity:0}100%{transform:translate(-50%,-50%) scale(1);opacity:1}}

/* clues */
.lmg-clue{display:inline-flex;align-items:center;justify-content:center;min-width:28px;font-weight:800;line-height:1.15;vertical-align:middle}
.lmg-clue.is-emoji{font-size:22px}
.lmg-clue.is-img{width:40px;height:28px}
.lmg-clue.is-img img,.lmg-clue.is-img svg{width:100%;height:100%;object-fit:contain}
.lmg-clue--big{font:700 clamp(22px,4vw,30px)/1.15 var(--lmg-display);text-align:center}
.lmg-clue--big.is-emoji{font-size:clamp(54px,10vw,76px)}
.lmg-clue--big.is-img{width:clamp(120px,24vw,170px);height:clamp(80px,16vw,115px)}
.lmg-label{display:block;font-size:12px;font-weight:800;color:var(--lmg-soft);text-transform:uppercase;letter-spacing:.06em}

/* shared word-game parts */
.lmg-wordgame .lmg-boardwrap{flex-direction:column;align-items:stretch}
.lmg-hang__top{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.lmg-pill{display:inline-flex;align-items:center;gap:6px;background:#fff;border-radius:999px;padding:6px 14px;font-weight:800;font-size:14px;box-shadow:inset 0 0 0 1.5px var(--lmg-line)}
.lmg-pill--alt{background:color-mix(in srgb,var(--pc,var(--lmg-purple)) 12%,#fff);box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--pc,var(--lmg-purple)) 30%,#fff)}
.lmg-word{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin:6px 0}
.lmg-slot{display:inline-grid;place-items:center;width:clamp(28px,6.4vw,44px);height:clamp(38px,8vw,54px);border-radius:10px;background:#fff;
  font:700 clamp(20px,4.6vw,30px)/1 var(--lmg-display);box-shadow:inset 0 -4px 0 var(--lmg-line),inset 0 0 0 2px var(--lmg-line)}
.lmg-slot.is-on{color:var(--lmg-purple);animation:lmg-match .4s}
.lmg-slot.is-lost{color:#c0144f;background:#fff0f4}
.lmg-slot.is-gap{width:14px;background:none;box-shadow:none}
.lmg-slot.is-sep{width:auto;padding:0 2px;background:none;box-shadow:none}
.lmg-kb{display:grid;grid-template-columns:repeat(13,minmax(0,1fr));gap:5px;max-width:720px;margin:4px auto 0;width:100%}
@media (max-width:620px){.lmg-kb{grid-template-columns:repeat(9,minmax(0,1fr))}}
.lmg-key{min-height:44px;border-radius:10px;background:#fff;font:700 18px/1 var(--lmg-display);box-shadow:inset 0 0 0 1.5px var(--lmg-line),0 3px 0 var(--lmg-line)}
.lmg-key:active{transform:translateY(2px)}
.lmg-key.is-yes{background:#d9f6ea;color:#0b7a55;box-shadow:none}
.lmg-key.is-no{background:#f3eef3;color:#b6a9b8;box-shadow:none;text-decoration:line-through}
.lmg-key:disabled:not(.is-yes):not(.is-no){opacity:.5}
.lmg-key--wide{grid-column:span 2;background:#fff5e0}

/* hangman */
.lmg-hang{display:flex;flex-direction:column;gap:10px;width:100%}
.lmg-hang__mid{display:flex;align-items:center;justify-content:center;gap:clamp(14px,4vw,40px);flex-wrap:wrap}
.lmg-hang__clue{display:flex;flex-direction:column;align-items:center;gap:6px;max-width:min(100%,360px);text-align:center}
.lmg-gallows{width:clamp(110px,22vw,150px);height:auto;fill:none;stroke:var(--lmg-ink);stroke-width:4;stroke-linecap:round}
.lmg-gallows g{opacity:.08;transition:opacity .3s}
.lmg-gallows g.is-on{opacity:1}
.lmg-gallows g:nth-child(n+5).is-on{stroke:#e8207f}
.lmg-lives{display:inline-flex;gap:2px;font-size:20px;color:#eadde8}
.lmg-lives .is-on{color:#ff3d6e}

/* wheel of fortune */
.lmg-fortune{display:flex;flex-direction:column;gap:12px;width:100%}
.lmg-fortune__board{display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px;border-radius:20px;background:linear-gradient(180deg,#1b0f3d,#2d1466);
  box-shadow:inset 0 0 0 4px #ffc531,0 8px 22px rgba(43,26,58,.25)}
.lmg-fortune__board .lmg-clue--big{color:#fff}
.lmg-word--board .lmg-slot{background:#f4f1ff;box-shadow:inset 0 -4px 0 #cbbcf5;color:#2d1466}
.lmg-word--board .lmg-slot.is-gap{background:none;box-shadow:none}
.lmg-fortune__play{display:flex;align-items:center;justify-content:center;gap:clamp(12px,4vw,36px);flex-wrap:wrap}
.lmg-wheel{position:relative;width:clamp(180px,38vw,260px);aspect-ratio:1}
.lmg-wheel__disc{width:100%;height:100%;border-radius:50%;box-shadow:0 0 0 6px #fff,0 0 0 10px #ffc531,0 12px 26px rgba(43,26,58,.3)}
.lmg-wheel__disc text{font:700 15px var(--lmg-display);fill:#fff;text-anchor:middle;dominant-baseline:middle}
.lmg-wheel__pin{position:absolute;z-index:2;left:50%;top:-10px;transform:translateX(-50%);width:0;height:0;border-left:14px solid transparent;border-right:14px solid transparent;border-top:26px solid #ff3d95;filter:drop-shadow(0 3px 2px rgba(0,0,0,.25))}
.lmg-fortune__side{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;min-width:180px}
.lmg-fortune__msg{margin:0;font:700 18px/1.25 var(--lmg-display)}
.lmg-wheel__val{color:var(--lmg-pink);font-size:28px}
.lmg-btn--spin{background:linear-gradient(120deg,var(--lmg-pink),var(--lmg-purple));box-shadow:0 5px 0 #5a24c0;font-size:18px}
.lmg-btn--spin:disabled{opacity:.45}
.lmg-bank{font-size:12px;font-weight:800;background:#fff5d6;color:#a86a00;border-radius:999px;padding:2px 7px}
.lmg-score li.is-turn .lmg-bank{background:rgba(255,255,255,.25);color:#fff}

/* word search */
.lmg-search{display:grid;gap:14px;grid-template-columns:minmax(0,1fr);width:100%;justify-items:center}
@media (min-width:760px){.lmg-search{grid-template-columns:minmax(0,auto) minmax(180px,260px);align-items:start}}
.lmg-wgrid{--n:10;display:grid;grid-template-columns:repeat(var(--n),1fr);gap:2px;width:min(100%,560px,max(270px,calc(100svh - 200px)));aspect-ratio:1;touch-action:none;container-type:inline-size;user-select:none;-webkit-user-select:none;
  background:#fff;border-radius:16px;padding:6px;box-shadow:inset 0 0 0 2px var(--lmg-line)}
.lmg-wcell{display:grid;place-items:center;border-radius:8px;min-width:0;min-height:0;padding:0;font:700 clamp(12px,calc(min(100vw,560px) / var(--n) * .5),26px)/1 var(--lmg-display);font-size:min(26px,calc(100cqw / var(--n) * .55));cursor:pointer;color:var(--lmg-ink)}
.lmg-wcell.is-found{background:color-mix(in srgb,var(--pc) 22%,#fff);color:color-mix(in srgb,var(--pc) 80%,#000)}
.lmg-wcell.is-sel{background:var(--lmg-sun);color:#fff;transform:scale(1.06)}
.lmg-wcell.is-bad{background:#ff6b8f;color:#fff}
.lmg-wlist{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px;justify-content:center;align-content:flex-start}
@media (min-width:760px){.lmg-wlist{flex-direction:column;flex-wrap:nowrap}}
.lmg-wlist li{display:flex;align-items:center;gap:8px;background:#fff;border-radius:12px;padding:6px 10px;box-shadow:inset 0 0 0 1.5px var(--lmg-line);margin:0}
.lmg-wlist__w{font-weight:800;letter-spacing:.04em}
.lmg-wlist li.is-found{background:color-mix(in srgb,var(--pc) 14%,#fff)}
.lmg-wlist li.is-found .lmg-wlist__w{text-decoration:line-through;text-decoration-thickness:3px;text-decoration-color:var(--pc)}

/* crossword */
.lmg-cross{display:flex;flex-direction:column;gap:10px;width:100%}
.lmg-xwrap{--cs:36px;display:flex;justify-content:center;overflow-x:auto}
.lmg-xgrid{display:grid;grid-template-columns:repeat(var(--cols),var(--cs));grid-auto-rows:var(--cs);gap:0}
.lmg-xcell{position:relative;display:grid;place-items:center;background:#fff;border-radius:0;box-shadow:inset 0 0 0 1px #d9c7d6;font:700 calc(var(--cs)*.55)/1 var(--lmg-display)}
.lmg-xcell.is-void{background:none;box-shadow:none}
.lmg-xcell i{position:absolute;top:1px;left:2px;font:800 calc(var(--cs)*.26)/1 var(--lmg-font);font-style:normal;color:var(--lmg-soft)}
.lmg-xcell.is-act{background:#fff3c4}
.lmg-xcell.is-cur{background:var(--lmg-sun);color:#fff}
.lmg-xcell.is-lock{background:color-mix(in srgb,var(--pc) 22%,#fff);color:color-mix(in srgb,var(--pc) 80%,#000)}
.lmg-xcell.is-bad{animation:lmg-shake2 .35s;background:#ffd0dc}
@keyframes lmg-shake2{25%{transform:translateX(-3px)}75%{transform:translateX(3px)}}
.lmg-xnow{display:flex;align-items:center;justify-content:center;gap:10px;padding:8px 12px;border-radius:16px;background:#fff;box-shadow:inset 0 0 0 2px #ffe08a;flex-wrap:wrap;text-align:center}
.lmg-xnow .lmg-clue--big{font-size:clamp(18px,3.4vw,24px)}
.lmg-xnow .lmg-clue--big.is-img{width:96px;height:64px}
.lmg-xclues{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}
.lmg-xclues h4{margin:0 0 6px;font:700 16px var(--lmg-display)}
.lmg-xclues ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:5px}
.lmg-xclues li{margin:0}
.lmg-xclues button{display:flex;align-items:center;gap:8px;width:100%;text-align:left;padding:6px 10px;border-radius:12px;background:#fff;box-shadow:inset 0 0 0 1.5px var(--lmg-line);min-height:42px}
.lmg-xclues button b{min-width:22px;color:var(--lmg-purple)}
.lmg-xclues button small{color:var(--lmg-soft);font-weight:700;margin-left:auto}
.lmg-xclues button.is-act{box-shadow:inset 0 0 0 2px var(--lmg-sun);background:#fffaf0}
.lmg-xclues button.is-done{background:color-mix(in srgb,var(--pc) 12%,#fff)}
.lmg-xclues__ans{font-weight:800;color:color-mix(in srgb,var(--pc) 80%,#000)}

/* puzzle */
.lmg-puzzle{display:flex;flex-direction:column;align-items:center;gap:10px;width:100%}
.lmg-pgrid{--n:3;position:relative;display:grid;grid-template-columns:repeat(var(--n),1fr);grid-template-rows:repeat(var(--n),1fr);gap:3px;width:min(100%,560px);
  aspect-ratio:var(--ratio);background:#fff;padding:3px;border-radius:14px;box-shadow:0 10px 26px rgba(60,20,100,.18)}
.lmg-ptile{border-radius:6px;background-repeat:no-repeat;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08);transition:transform .2s}
.lmg-ptile.is-pick{transform:scale(.92);box-shadow:0 0 0 4px var(--lmg-sun)}
.lmg-ptile.is-ok{box-shadow:inset 0 0 0 2px rgba(22,176,136,.0);cursor:default}
.lmg-puzzle.is-done .lmg-pgrid{gap:0;padding:0;transition:gap .4s,padding .4s}
.lmg-peek{position:absolute;inset:0;border-radius:inherit;background-size:cover;background-position:center;z-index:3;animation:lmg-info .3s}

/* times tables */
.lmg-tt{display:flex;flex-direction:column;align-items:center;gap:14px;width:100%}
.lmg-tt__q{font:700 clamp(40px,10vw,80px)/1 var(--lmg-display);color:var(--lmg-ink);text-align:center;padding:18px 26px;border-radius:24px;background:#fff;
  box-shadow:inset 0 0 0 3px #e7dcff,0 8px 0 #d2c2ff;font-variant-numeric:tabular-nums}
.lmg-tt__time{width:min(100%,420px);height:10px;border-radius:99px;background:#efe6f3;overflow:hidden}
.lmg-tt__time i{display:block;height:100%;background:linear-gradient(90deg,var(--lmg-mint),var(--lmg-sun),var(--lmg-pink));animation:lmg-time linear forwards;transform-origin:left}
@keyframes lmg-time{from{transform:scaleX(1)}to{transform:scaleX(0)}}
.lmg-tt__choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;width:min(100%,520px)}
.lmg-tt__c{min-height:clamp(70px,14vw,96px);border-radius:22px;color:#fff;font:700 clamp(30px,7vw,46px)/1 var(--lmg-display);box-shadow:0 6px 0 rgba(0,0,0,.18);font-variant-numeric:tabular-nums}
.lmg-tt__c--0{background:#ff3d95}.lmg-tt__c--1{background:#1f6bff}.lmg-tt__c--2{background:#16b088}.lmg-tt__c--3{background:#ff8a00}
.lmg-tt__c:active{transform:translateY(3px)}
.lmg-tt__c:disabled{opacity:.45}
.lmg-tt__c.is-good{opacity:1;box-shadow:0 0 0 5px #fff,0 0 0 9px var(--lmg-mint);animation:lmg-match .4s}
.lmg-tt__c.is-bad{opacity:1;filter:grayscale(.6);animation:lmg-shake2 .35s}
