.ipy-memory{box-sizing:border-box;max-width:920px;margin:24px auto;padding:28px;border:1px solid #5f6368;border-radius:18px;background:#111315;color:#fff;font-family:inherit;line-height:1.5}
.ipy-memory *{box-sizing:border-box}
.ipy-memory__header{display:flex;gap:24px;align-items:flex-start;justify-content:space-between}
.ipy-memory__eyebrow{margin:0 0 4px;color:#fff;font-size:.95rem;font-weight:700}
.ipy-memory h2{margin:0;font-size:clamp(1.55rem,3vw,2.25rem);line-height:1.2;color:#fff}
.ipy-memory__intro{margin:10px 0 0;color:#f2f2f2;font-size:1rem}
.ipy-memory__stats{display:grid;grid-template-columns:repeat(3,minmax(82px,1fr));gap:8px;min-width:300px}
.ipy-memory__stats div{padding:10px 12px;border:1px solid #64686d;border-radius:12px;background:#1a1d20;text-align:center}
.ipy-memory__stats span{display:block;color:#e8e8e8;font-size:.78rem}.ipy-memory__stats strong{display:block;margin-top:2px;color:#fff;font-size:1.15rem}
.ipy-memory__howto{margin:18px 0 0;border:1px solid #64686d;border-radius:12px;background:#1a1d20;color:#fff}.ipy-memory__howto summary{padding:11px 14px;cursor:pointer;font-weight:800;color:#fff}.ipy-memory__howto summary:focus-visible{outline:3px solid #fff;outline-offset:2px;border-radius:8px}.ipy-memory__howto-content{padding:0 14px 10px}.ipy-memory__howto-content p{margin:7px 0;color:#f2f2f2;font-size:.95rem}.ipy-memory__howto-content p:last-child{margin-bottom:2px}
.ipy-memory__status{margin:22px 0 14px;padding:12px 14px;border-left:4px solid #fff;background:#1a1d20;color:#fff;font-weight:600}
.ipy-memory__board{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.ipy-memory__card{position:relative;min-width:0;aspect-ratio:1/1;border:2px solid #777b80;border-radius:14px;background:#202327;color:#fff;cursor:pointer;font:inherit;font-weight:800;padding:8px;transition:transform .12s ease,border-color .12s ease,background .12s ease}
.ipy-memory__card:hover{border-color:#fff;background:#292d31}.ipy-memory__card:focus-visible{outline:3px solid #fff;outline-offset:3px}
.ipy-memory__card[aria-pressed="true"],.ipy-memory__card.is-matched{background:#30353a;border-color:#fff}
.ipy-memory__card.is-matched{cursor:default}.ipy-memory__card-face{display:flex;align-items:center;justify-content:center;height:100%;text-align:center;font-size:clamp(.9rem,2.4vw,1.2rem);word-break:break-word}
.ipy-memory__card-front{font-size:clamp(1.5rem,4vw,2.2rem)}
.ipy-memory__card-back{display:none;flex-direction:column;gap:5px;padding:3px}.ipy-memory__card-back img{display:block;width:100%;height:78%;object-fit:contain;border-radius:9px}.ipy-memory__caption{display:block;font-size:clamp(.68rem,1.6vw,.9rem);line-height:1.1;color:#fff}.ipy-memory__card[aria-pressed="true"] .ipy-memory__card-front,.ipy-memory__card.is-matched .ipy-memory__card-front{display:none}.ipy-memory__card[aria-pressed="true"] .ipy-memory__card-back,.ipy-memory__card.is-matched .ipy-memory__card-back{display:flex}
.ipy-memory__actions{display:flex;justify-content:center;margin-top:18px}.ipy-memory__button{min-height:48px;padding:10px 24px;border:2px solid #fff;border-radius:10px;background:#fff;color:#111315;cursor:pointer;font:inherit;font-weight:800}.ipy-memory__button:hover{background:#e8e8e8}.ipy-memory__button:focus-visible{outline:3px solid #fff;outline-offset:3px}
.ipy-memory__result{margin-top:18px;padding:18px;border:1px solid #777b80;border-radius:14px;background:#1a1d20}.ipy-memory__result h3{margin:0 0 6px;color:#fff}.ipy-memory__result p{margin:4px 0;color:#f2f2f2}.ipy-memory__best{font-weight:700}
.ipy-memory__card:disabled{opacity:1}
@media (max-width:700px){.ipy-memory{padding:18px}.ipy-memory__header{display:block}.ipy-memory__stats{min-width:0;margin-top:16px}.ipy-memory__board{gap:8px}.ipy-memory__card{border-radius:10px;padding:5px}}
@media (max-width:430px){.ipy-memory__stats{grid-template-columns:1fr 1fr 1fr}.ipy-memory__stats div{padding:8px 5px}.ipy-memory__stats strong{font-size:1rem}.ipy-memory__howto{margin:18px 0 0;border:1px solid #64686d;border-radius:12px;background:#1a1d20;color:#fff}.ipy-memory__howto summary{padding:11px 14px;cursor:pointer;font-weight:800;color:#fff}.ipy-memory__howto summary:focus-visible{outline:3px solid #fff;outline-offset:2px;border-radius:8px}.ipy-memory__howto-content{padding:0 14px 10px}.ipy-memory__howto-content p{margin:7px 0;color:#f2f2f2;font-size:.95rem}.ipy-memory__howto-content p:last-child{margin-bottom:2px}
.ipy-memory__status{font-size:.92rem}.ipy-memory__board{gap:6px}}
@media (prefers-reduced-motion:reduce){.ipy-memory__card{transition:none}}
