*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;width:100%;min-height:100%;font-family:system-ui,-apple-system,"Noto Sans JP",sans-serif;background:#fff7df;color:#4b372d}body{min-height:100dvh}.memory-app{min-height:100dvh;display:flex;flex-direction:column;gap:10px;padding:10px}.memory-top,.memory-footer{display:flex;align-items:center;gap:10px}.memory-top{justify-content:space-between;padding:10px 14px;background:#fff;border:4px solid #ffbd3e;border-radius:22px;box-shadow:0 4px 0 #e59a13}.memory-title{font-size:clamp(22px,6vw,38px);font-weight:1000}.memory-status{font-weight:900}.nav-button,.memory-button{display:inline-flex;align-items:center;justify-content:center;padding:10px 14px;text-decoration:none;color:#fff;font-weight:900;border:0;border-radius:16px;background:#ff7a7a;box-shadow:0 4px 0 #d84c4c}.memory-board{position:relative;flex:1;min-height:0;display:grid;gap:8px;padding:10px;background:#dff4ff center/cover no-repeat;border:4px solid #fff;border-radius:26px;box-shadow:inset 0 0 0 3px #72c8e8,0 5px 15px #0002}.memory-card{position:relative;padding:0;border:0;background:transparent;perspective:900px;min-height:0}.memory-card-inner{position:absolute;inset:0;transition:transform .38s ease;transform-style:preserve-3d}.memory-card.flipped .memory-card-inner,.memory-card.matched .memory-card-inner{transform:rotateY(180deg)}.memory-face{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:18px;backface-visibility:hidden;box-shadow:0 5px 0 #0003,0 4px 12px #0002}.memory-back{background-position:center;background-size:cover;border:3px solid #ffffffdd}.memory-back::after{content:"?";display:grid;place-items:center;width:44%;aspect-ratio:1;color:#fff;font-size:clamp(30px,8vw,54px);font-weight:1000;background:#0005;border:4px solid #fff;border-radius:50%;text-shadow:0 2px 4px #0008}.memory-front{transform:rotateY(180deg);padding:6px;background:#fffffff2;border:3px solid #fff}.memory-front img{width:100%;height:100%;object-fit:contain}.memory-front .emoji{font-size:clamp(42px,14vw,84px)}.memory-card.matched .memory-front{box-shadow:0 0 0 4px #fff,0 0 24px 8px #ffe05e99}.memory-footer{justify-content:space-between}.memory-overlay{position:fixed;inset:0;z-index:50;display:flex;align-items:flex-start;justify-content:center;padding:max(24px,env(safe-area-inset-top)) 16px 24px;overflow:auto;background:#fff4cf}.memory-overlay.hidden{display:none}.memory-panel{width:min(94vw,520px);padding:22px;text-align:center;background:#fff;border:6px solid #ffbd3e;border-radius:30px;box-shadow:0 9px 0 #e59a13}.memory-panel h1{margin:0 0 14px;font-size:clamp(30px,8vw,46px)}.memory-category-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.memory-category{padding:12px 8px;font:inherit;font-weight:900;background:#fff;border:3px solid #ddd;border-radius:15px}.memory-category.selected{background:#fff0c9;border-color:#ff9f1c}.memory-pair-control{margin-top:16px;padding:12px 14px;background:#fff9e8;border:3px solid #ffd36c;border-radius:18px}.memory-pair-control.is-fixed{background:#eef8ff;border-color:#70c8ff}.memory-pair-readout{display:flex;justify-content:space-between;align-items:baseline;font-weight:900}.memory-pair-readout strong{font-size:24px;color:#ef6c00}.memory-pair-range{width:100%;height:34px;margin:4px 0 0;accent-color:#ff9f1c}.memory-pair-range:disabled{opacity:.55}.memory-pair-labels{display:flex;justify-content:space-between;margin-top:-5px;font-size:12px;font-weight:800;color:#806b5d}.memory-start{width:100%;margin-top:18px;padding:14px;font:inherit;font-size:24px;font-weight:1000;color:#fff;background:#58c76f;border:0;border-radius:20px;box-shadow:0 6px 0 #299c43}.memory-note{font-size:12px;color:#795548}.memory-result{font-size:24px;font-weight:1000}@media(min-width:700px){.memory-app{width:min(100%,860px);margin:0 auto;padding:14px}.memory-board{gap:12px}.memory-face{border-radius:22px}.memory-title{font-size:36px}}@media(prefers-reduced-motion:reduce){.memory-card-inner{transition-duration:.01ms}}