:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans JP,sans-serif;color:#342d3c;background:#fff8ef;font-synthesis:none;--coral:#ff6f61;--ink:#342d3c;--paper:#fff;--cream:#fff8ef;--mint:#65cfab;--shadow:0 12px 36px #583d321c}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#app{margin:0;min-height:100%;overscroll-behavior:none}body{background:radial-gradient(circle at top,#fff1cb 0,#fff8ef 28%,#f5f0ff);touch-action:manipulation}button,select,input{font:inherit}button{min-height:44px}.shell{width:min(100%,540px);min-height:100vh;margin:auto;padding:calc(16px + env(safe-area-inset-top)) 15px calc(92px + env(safe-area-inset-bottom))}.brand,.game-head,.page-head{display:flex;align-items:center;gap:11px;margin-bottom:16px}.brand .logo{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:#fff;box-shadow:var(--shadow);font-size:23px}.brand b,.brand small,.game-head b,.game-head small{display:block}.brand small,.game-head small{font-size:10px;letter-spacing:1.4px;color:#8d7f8d}.streak{margin-left:auto;padding:8px 11px;border-radius:999px;background:#fff0d2;font-size:12px;font-weight:800}.hero,.card{border:1px solid #fff;background:#ffffffec;border-radius:25px;box-shadow:var(--shadow);overflow:hidden}.hero .date{padding:13px 16px;background:#fff0d8;font-size:12px;font-weight:900;color:#7c614a}.hero>img{display:block;width:100%;aspect-ratio:1.44;object-fit:cover}.hero-copy{padding:16px 17px 8px}.hero-copy h1{margin:7px 0 5px;font-size:25px}.hero-copy p{margin:0 0 8px;color:#786f7d;font-size:13px}.status,.eyebrow{display:inline-block;color:#b85145;background:#ffe5df;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:900}.button{display:block;width:calc(100% - 30px);margin:12px 15px;border:0;border-radius:15px;padding:14px;font-weight:900;cursor:pointer}.button.primary{color:#fff;background:linear-gradient(135deg,#ff7267,#ff9c54);box-shadow:0 6px 16px #ff6f6140}.button.secondary{color:#53485c;background:#eee7f4}.button.ghost{color:#6e626e;background:#fff;border:1px solid #e6dfe7}.button.hint{width:auto;margin:0 auto;background:#fff0b8;color:#634b00}.button:disabled{opacity:.45}.mini{display:grid;grid-template-columns:1fr 1fr 1fr;margin-top:13px;padding:15px;background:#ffffffb8;border-radius:20px;gap:8px;text-align:center}.mini b{grid-column:1/-1;text-align:left}.mini span{padding:10px 3px;border-radius:12px;background:#fff;font-size:11px;font-weight:800}.nav{position:fixed;z-index:30;left:50%;bottom:0;transform:translate(-50%);display:grid;grid-template-columns:repeat(4,1fr);width:min(540px,100%);padding:8px 8px calc(8px + env(safe-area-inset-bottom));background:#fffffff2;border-top:1px solid #eadfda;backdrop-filter:blur(12px)}.nav button{border:0;background:transparent;font-size:21px;color:#584f5d}.nav span{display:block;font-size:9px;font-weight:800}.tutorial{margin-top:5vh;padding:25px 13px;text-align:center}.tutorial h1{margin:10px}.tutorial p{font-size:13px;color:#776c7d}.rule{padding:12px;background:#fff5df;border-radius:12px;font-weight:800}.pair{display:grid;gap:8px}.scene{position:relative;display:block;width:100%;padding:0;border:4px solid #fff;border-radius:17px;overflow:hidden;background:#ddd;box-shadow:0 7px 18px #4a33401f;aspect-ratio:1.44;touch-action:manipulation}.scene img{display:block;width:100%;height:100%;object-fit:cover;pointer-events:none}.scene>span{position:absolute;z-index:2;top:6px;left:7px;padding:3px 8px;border-radius:999px;color:#fff;background:#302c39bf;font-size:9px;font-weight:900}.tutorial-pair{margin-top:18px}.game-head{position:sticky;z-index:5;top:0;padding:6px 0;background:#fff8eff0;backdrop-filter:blur(9px)}.game-head>button{width:42px;border:0;border-radius:13px;background:#fff;font-size:27px}.game-head>div:nth-child(2){flex:1}.timer{display:grid;place-items:center;width:56px;height:56px;border:5px solid #ffd25a;border-radius:50%;background:#fff;font-size:19px;font-weight:900}.game-progress{display:flex;align-items:center;gap:12px}.game-progress>div{flex:1;height:9px;overflow:hidden;border-radius:99px;background:#e8ddd5}.game-progress i{display:block;width:100%;height:100%;background:linear-gradient(90deg,var(--mint),#ffd25a,var(--coral));transition:width .1s}.game-progress b{font-size:17px}.instruction{text-align:center;margin:8px 0;color:#766e7b;font-size:11px;font-weight:800}.game-pair{grid-template-columns:1fr;margin-bottom:13px}.correct{position:absolute;z-index:5;width:13%;aspect-ratio:1;border:4px solid #ff4053;border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 3px #ffffff9c;animation:pop .25s}.marks{position:absolute;inset:0;pointer-events:none}.wrong{position:fixed;z-index:100;color:#ff4053;font-size:37px;font-style:normal;font-weight:900;transform:translate(-50%,-50%);animation:wrong .5s forwards;pointer-events:none}.hint-glow{position:absolute;z-index:8;width:16%;aspect-ratio:1;border:5px solid #ffd43b;border-radius:50%;transform:translate(-50%,-50%);animation:pulse .5s alternate 4;pointer-events:none}.overlay{position:fixed;z-index:20;inset:0;display:grid;place-items:center;background:#302b3da8}.overlay.hidden{display:none}.count{display:grid;place-items:center;width:115px;height:115px;border-radius:50%;background:#fff;color:var(--coral);font-size:64px;box-shadow:var(--shadow)}.page-head{display:block}.page-head h1{margin:6px 0}.page-head p{margin:0;color:#786f7e;font-size:12px}.album-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.album-card{padding:7px;border:1px solid #fff;border-radius:16px;background:#ffffffad;color:#706876;text-align:left;filter:grayscale(.9);opacity:.62}.album-card.open{filter:none;opacity:1;cursor:pointer}.album-card img{width:100%;aspect-ratio:1.44;object-fit:cover;border-radius:11px}.album-card b,.album-card span{display:block;margin:3px}.album-card span{font-size:10px}.settings,.qa{padding:16px}.settings label{display:flex;justify-content:space-between;align-items:center;min-height:58px;border-bottom:1px solid #eee}.settings input{width:24px;height:24px}.settings p,.qa p{font-size:12px;color:#786f7e}.qa label{display:grid;gap:8px;font-weight:900}.qa select{width:100%;min-height:48px;border:1px solid #ddd0da;border-radius:12px;padding:8px;background:#fff}.event-list{max-height:310px;overflow:auto;padding-left:20px}.event-list li{margin:7px 0;font-size:11px}.event-list small{display:block;color:#918691}.result{text-align:center;padding:30px 10px}.confetti{color:#ff9471;font-size:24px;letter-spacing:4px}.medal{display:grid;place-items:center;width:82px;height:82px;margin:17px auto;border-radius:50%;background:linear-gradient(135deg,#62d5b1,#9ae6cf);color:#fff;font-size:49px}.result h1{margin:8px}.result p{color:#756b7b}.unlock{margin:17px;padding:13px;background:#fff0d6;border-radius:14px}.dialog-wrap{position:fixed;z-index:80;inset:0;display:grid;place-items:center;padding:20px;background:#302b3dbd}.dialog{width:min(400px,100%);padding:23px 12px;border-radius:24px;background:#fff;text-align:center;box-shadow:var(--shadow)}.dialog h2{margin:5px}.dialog p{color:#746a79}.dialog-actions .button{width:calc(100% - 20px);margin:10px}.ad-mock{display:grid;place-items:center;height:190px;margin:18px;border-radius:18px;background:linear-gradient(145deg,#463f69,#8f77bf);color:#fff}.ad-mock b{font-size:42px}.ad-mock span{font-size:11px}@keyframes pop{0%{transform:translate(-50%,-50%) scale(.2)}}@keyframes wrong{to{opacity:0;transform:translate(-50%,-50%) scale(1.7)}}@keyframes pulse{0%{opacity:.25;transform:translate(-50%,-50%) scale(.7)}to{opacity:1;transform:translate(-50%,-50%) scale(1.15)}}@media(min-width:700px){.shell,.nav{width:min(920px,100%)}.game-pair,.tutorial-pair{grid-template-columns:1fr 1fr}.album-grid{grid-template-columns:repeat(4,1fr)}}@media(max-height:620px)and (max-width:699px){.shell{padding-top:7px}.game-head{margin-bottom:5px}.game-head .timer{width:48px;height:48px}.instruction{margin:3px}.game-pair{gap:4px}.scene{border-width:3px}.game-actions .button{padding:10px}}
