.memory-main{background:linear-gradient(180deg,#eef8ff 0,#fff 38%);padding-bottom:3rem}
.memory-intro{max-width:980px;margin:0 auto;padding:2.8rem 1.25rem 1.6rem;text-align:center}
.memory-intro h1{margin:.25rem 0 .75rem;color:#063f78;font-size:clamp(2rem,5vw,3.4rem)}
.memory-intro>p:last-child{max-width:780px;margin:0 auto;font-size:1.08rem;line-height:1.7;color:#364b5e}
.memory-studio{width:min(1180px,calc(100% - 2rem));margin:0 auto;display:grid;grid-template-columns:minmax(270px,340px) minmax(0,1fr);gap:1.4rem;align-items:start}
.memory-controls,.memory-play-area,.memory-help{background:#fff;border:1px solid #cfe3f5;border-radius:24px;box-shadow:0 16px 45px rgba(4,63,120,.12)}
.memory-controls{padding:1.25rem;position:sticky;top:1rem}
.control-label,.memory-controls legend{font-weight:800;color:#063f78}
#picture-collection{width:100%;margin:.5rem 0 1.1rem;padding:.78rem;border:2px solid #9bc8eb;border-radius:12px;background:#fff;color:#17334b;font:inherit}
.memory-controls fieldset{border:0;padding:0;margin:0 0 1rem}
.level-buttons{display:grid;gap:.5rem;margin-top:.55rem}
.level-button{border:2px solid #b9d8ef;border-radius:14px;background:#f3faff;padding:.65rem;color:#174a70;cursor:pointer;text-align:left}
.level-button strong,.level-button span{display:block}.level-button strong{font-size:1rem}.level-button span{font-size:.78rem;line-height:1.25}
.level-button.selected{background:#07549a;border-color:#07549a;color:#fff;box-shadow:0 5px 14px rgba(7,84,154,.25)}
.memory-actions{display:grid;gap:.55rem;margin:1rem 0}.memory-actions .button{width:100%;text-align:center;border:none;cursor:pointer}
.score-panel{display:grid;grid-template-columns:repeat(3,1fr);gap:.45rem}
.score-panel div{text-align:center;background:#eef7ff;border-radius:12px;padding:.55rem .2rem}.score-panel span,.score-panel strong{display:block}.score-panel span{font-size:.72rem;color:#567084}.score-panel strong{color:#063f78;font-size:1.1rem}
.memory-status{min-height:3em;margin:1rem 0 0;padding:.75rem;border-radius:12px;background:#eaf8ef;color:#155b31;font-weight:700;text-align:center}
.memory-play-area{padding:1.1rem;overflow:hidden}
.memory-board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem;max-width:780px;margin:0 auto;perspective:1000px}
.memory-board.pairs-8{grid-template-columns:repeat(4,minmax(0,1fr))}.memory-board.pairs-12{grid-template-columns:repeat(6,minmax(0,1fr))}
.memory-card{position:relative;aspect-ratio:1/1;border:0;background:transparent;padding:0;cursor:pointer;perspective:900px;border-radius:15px}
.memory-card:focus-visible{outline:4px solid #ffb300;outline-offset:3px}
.card-inner{position:absolute;inset:0;transition:transform .48s;transform-style:preserve-3d;border-radius:15px;box-shadow:0 5px 15px rgba(4,63,120,.2)}
.memory-card.is-flipped .card-inner,.memory-card.is-matched .card-inner{transform:rotateY(180deg)}
.card-front,.card-back{position:absolute;inset:0;display:grid;place-items:center;border-radius:15px;overflow:hidden;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.card-front{background:linear-gradient(145deg,#07549a,#0f76bc);border:3px solid #fff;box-shadow:inset 0 0 0 3px #ffd24a;color:#fff}
.card-front::before{content:"⚡";display:grid;place-items:center;width:55%;aspect-ratio:1;border-radius:50%;background:#ffd24a;color:#063f78;font-size:clamp(1.5rem,4vw,3rem);box-shadow:0 4px 0 #d89c00}
.card-back{transform:rotateY(180deg);background:#fff;border:3px solid #07549a}
.card-back img{width:100%;height:100%;object-fit:cover;display:block}
.memory-card.is-matched .card-back{border-color:#18a657;box-shadow:inset 0 0 0 5px rgba(24,166,87,.25)}
.memory-card.is-matched::after{content:"✓";position:absolute;right:5px;top:5px;z-index:4;width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:#18a657;color:#fff;font-weight:900;transform:rotateY(180deg);box-shadow:0 2px 5px #1236}
.play-help{text-align:center;color:#526b7d;margin:1rem .5rem .15rem;line-height:1.55}
.memory-help{width:min(980px,calc(100% - 2rem));margin:1.5rem auto 0;padding:1.3rem 1.6rem}.memory-help h2{color:#063f78}.memory-help li{margin:.45rem 0}
.memory-celebration{animation:celebrate .65s ease 2}@keyframes celebrate{50%{transform:scale(1.012);box-shadow:0 0 0 10px #ffd24a,0 20px 55px rgba(4,63,120,.22)}}
@media(max-width:900px){.memory-board.pairs-12{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:820px){.memory-studio{grid-template-columns:1fr}.memory-controls{position:static}.memory-play-area{padding:.75rem}.memory-board{gap:.45rem}}
@media(max-width:520px){.memory-studio{width:min(100% - 1rem,1180px)}.memory-controls{padding:1rem}.memory-play-area{padding:.55rem}.memory-board,.memory-board.pairs-8,.memory-board.pairs-12{grid-template-columns:repeat(3,minmax(0,1fr));gap:.38rem}.memory-board.pairs-8{grid-template-columns:repeat(4,minmax(0,1fr))}.card-front,.card-back{border-width:2px}.memory-help{width:calc(100% - 1rem);padding:1rem}.memory-card.is-matched::after{width:19px;height:19px;font-size:.75rem}}
@media(prefers-reduced-motion:reduce){.card-inner,.memory-celebration{transition:none;animation:none}}
