/* Game styling stays within the shared Kindoo play shell. */
.kd-app{max-width:none}
.kd-game{align-items:center}
.kd-hud{position:relative;gap:10px}
.memory-elapsed{position:absolute;left:50%;transform:translateX(-50%);display:inline-flex;align-items:center;justify-content:center;min-width:110px;min-height:58px;padding:0 18px;border:1px solid #dbe5f2;border-radius:999px;background:#ffffffd9;box-shadow:0 6px 20px #1e293b12,0 1px 3px #1e293b12;color:var(--kd-primary);font-size:22px;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:.04em;pointer-events:none}
.kd-hud__stats{flex-wrap:nowrap;gap:7px;padding:6px;border:1px solid #dbe5f2;border-radius:999px;background:#ffffffd9;box-shadow:0 6px 20px #1e293b12,0 1px 3px #1e293b12;backdrop-filter:blur(8px)}
.kd-hud__stats .kd-chip{display:flex;justify-content:center;min-height:46px;padding:0 16px;background:#e9f0ff;color:#2459c4;border:0;border-radius:999px;box-shadow:none;font-size:16px;font-variant-numeric:tabular-nums;white-space:nowrap}
.kd-hud__stats .kd-chip:last-child{background:#fff1df;color:#a45a0b}
.memory-controls{display:flex;align-items:center;gap:7px;padding:6px;border:1px solid #dbe5f2;border-radius:999px;background:#ffffffd9;box-shadow:0 6px 20px #1e293b12,0 1px 3px #1e293b12;backdrop-filter:blur(8px)}
.memory-controls .kd-btn--icon{width:46px;height:46px;min-width:46px;min-height:46px;padding:0;border:1px solid transparent;border-radius:50%;box-shadow:none;font-size:22px;line-height:1;transition:background .18s,color .18s,transform .18s,box-shadow .18s}
.memory-controls .kd-btn--icon:hover{transform:translateY(-2px);box-shadow:0 4px 10px #1e293b18}
.memory-controls .kd-btn--icon:active{transform:translateY(1px) scale(.96)}
.memory-controls .memory-back{background:#e9f0ff;color:#2459c4;text-decoration:none}
.memory-controls .memory-back svg{display:block;flex:none}
.memory-controls #kd-sound{background:#edf8f8;color:#167475;font-size:19px}
.memory-controls #kd-replay{background:#fff1df;color:#a45a0b;font-size:29px}
.memory-controls #kd-pause{background:#f0edff;color:#6753b8}
.memory-controls .kd-toggle[aria-pressed="false"]{opacity:1;background:#f1f5f9;color:#64748b}

.memory-start{width:min(90vw,380px);display:flex;flex-direction:column;align-items:stretch;gap:18px;padding:clamp(24px,5vw,36px);border:1px solid #e8e1d8;border-radius:28px;background:var(--kd-surface);box-shadow:0 20px 60px #29344926,0 3px 10px #29344912;text-align:center}
.memory-start::before{content:"✦";display:grid;place-items:center;width:70px;height:70px;margin:0 auto 2px;border-radius:22px;background:#e9f0ff;color:var(--kd-primary);font-size:42px;box-shadow:inset 0 -4px 0 #ccdafe}
.memory-start label{font-size:clamp(22px,4vw,28px);font-weight:var(--kd-weight-bold);line-height:1.2}
.memory-start select{appearance:none;width:100%;min-height:56px;padding:10px 44px 10px 18px;border:2px solid #d6e1f3;border-radius:16px;background:#f8faff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%232563eb' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 16px center;color:var(--kd-ink);font:inherit;font-weight:700;cursor:pointer}
.memory-start select:focus-visible{outline:3px solid var(--kd-ring);outline-offset:2px}
.memory-start .kd-btn{width:100%;margin-top:3px}
.memory-start-home{position:absolute;top:max(20px,env(safe-area-inset-top));left:max(20px,env(safe-area-inset-left));display:inline-flex;align-items:center;gap:9px;min-height:48px;padding:0 18px;border:1px solid #dbe5f2;border-radius:999px;background:#fff;color:#2459c4;text-decoration:none;font-size:16px;font-weight:800;box-shadow:0 5px 16px #1e293b18;transition:background .18s,transform .18s}
.memory-start-home:hover{background:#edf3ff;transform:translateY(-2px)}
.memory-start-home:focus-visible{outline:3px solid var(--kd-ring);outline-offset:3px}

.memory-board{display:grid;gap:12px;margin:auto;max-width:100%;max-height:100%}
.memory-card{aspect-ratio:1;min-width:0;border:0;padding:0;background:transparent;cursor:pointer;perspective:800px;touch-action:manipulation;container-type:inline-size;transition:opacity .28s ease,scale .28s ease}
.memory-card:focus-visible{outline:3px solid var(--kd-ring);outline-offset:3px;border-radius:18px}
.memory-card__inner{position:relative;display:block;width:100%;height:100%;transition:transform .4s cubic-bezier(.2,.75,.25,1);transform-style:preserve-3d}
.memory-card.is-open .memory-card__inner,.memory-card.is-matched .memory-card__inner{transform:rotateY(180deg)}
.memory-card__face{position:absolute;inset:0;display:grid;place-items:center;border-radius:clamp(9px,2vw,18px);backface-visibility:hidden;box-shadow:0 5px 0 #243b9b36,0 10px 18px #18235b28}
.memory-card__back{overflow:hidden;background:radial-gradient(circle at 22% 16%,#ffffff55 0,transparent 32%),radial-gradient(circle at 82% 84%,#a4b7ff66 0,transparent 35%),linear-gradient(145deg,#738ff3 0%,#4968df 48%,#3449bc 100%);border:2px solid #a9bdff;color:#fff;box-shadow:inset 0 2px 0 #ffffff8c,inset 0 -5px 0 #24389450,0 5px 0 #243b9b36,0 10px 18px #18235b28;transition:filter .2s,transform .2s}
.memory-card__back::before{content:"";position:absolute;inset:6%;border:1.5px solid #ffffffa8;border-radius:clamp(5px,1.4vw,13px);pointer-events:none}
.memory-card__back::after{content:"";position:absolute;width:65%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 35% 30%,#ffffff3d,#ffffff13 58%,#1c36ae2b);border:1px solid #ffffff4d;box-shadow:inset 0 2px 8px #ffffff24,0 3px 8px #162c8a2b;pointer-events:none}
.memory-card__mark{position:relative;z-index:1;font-family:ui-rounded,"Arial Rounded MT Bold",system-ui,sans-serif;font-size:clamp(18px,46cqw,96px);font-weight:900;line-height:1;color:#fff8dc;text-shadow:0 2px 0 #c2a96a,0 4px 12px #1224788a;transform:translateY(-3%)}
.memory-card:not(.is-open):not(.is-matched):hover .memory-card__back{filter:brightness(1.12);transform:translateY(-2px)}
.memory-card__front{transform:rotateY(180deg);background:linear-gradient(150deg,#fff,#f8fbff);border:2px solid #cddcfb;font-size:clamp(20px,48cqw,96px)}
.memory-card__front img{display:block;width:100%;height:100%;object-fit:cover;border-radius:inherit;user-select:none}
.memory-card.is-matched .memory-card__front{background:#e8f9ee;border-color:#61c984;box-shadow:0 4px 0 #3c9b5c50,0 8px 15px #1e293b12}
.memory-card.is-matched{cursor:default}
.memory-card.is-cleared{opacity:0;scale:.78;pointer-events:none;visibility:hidden;transition:opacity .28s ease,scale .28s ease,visibility 0s .28s}

.kd-dialog__actions .kd-btn--ghost{text-decoration:none}
.memory-result-time{margin:8px 0 0;color:var(--kd-ink-muted);font-size:var(--kd-text-base);font-weight:700;font-variant-numeric:tabular-nums}
@media(max-width:480px){.kd-hud{gap:6px}.kd-hud__stats{gap:4px;padding:4px}.kd-hud__stats .kd-chip{min-height:38px;padding:0 9px;font-size:13px}.memory-controls{gap:4px;padding:4px}.memory-controls .kd-btn--icon{width:38px;height:38px;min-width:38px;min-height:38px;font-size:19px}.memory-controls .memory-back svg{width:19px;height:19px}.memory-controls #kd-replay{font-size:25px}.memory-board{gap:9px}.kd-dialog__actions{gap:8px}.kd-dialog__actions .kd-btn--ghost{min-height:46px;font-size:14px}}
@media(max-width:560px){.kd-hud{display:grid;grid-template-columns:1fr auto;row-gap:8px}.kd-hud__stats{grid-column:1;grid-row:1;justify-self:start}.memory-controls{grid-column:2;grid-row:1}.memory-elapsed{position:static;transform:none;grid-column:1/-1;grid-row:2;justify-self:center;min-width:100px;min-height:38px;padding:0 12px;font-size:16px;box-shadow:none}.kd-hud__spacer{display:none}}
@media(prefers-reduced-motion:reduce){.memory-card,.memory-card__inner,.memory-card__back{transition:none}}
