:root{--bg:#fff4e0;--bg-2:#ffe9c7;--card:#fff;--ink:#4a3b32;--ink-soft:#8a7466;--accent:#ffb74d;--accent-deep:#f4a22b;--sky:#b3e5fc;--mint:#b9e8c9;--pink:#ffc9d6;--lilac:#dcd0f5;--good:#7ccf9a;--good-deep:#4eb676;--warn:#ffd180;--radius:22px;--tap:64px;--shadow:0 4px 0 #785a3c2e;--font:"Hiragino Maru Gothic ProN", "BIZ UDPGothic", "Yu Gothic UI", "Meiryo", "Noto Sans JP", system-ui, sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0}body{background:var(--bg-2);color:var(--ink);font-family:var(--font);overscroll-behavior:none;touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;font-weight:700;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer}.app{background:var(--bg);width:100%;max-width:520px;height:100dvh;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom);flex-direction:column;margin:0 auto;display:flex;position:relative;overflow:hidden}.screen{flex-direction:column;flex:1;gap:10px;min-height:0;padding:10px 14px 14px;animation:.25s ease-out fadeIn;display:flex}.reduce-motion .screen{animation:none}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.screen.scroll{touch-action:pan-y;overflow-y:auto}.center{text-align:center;justify-content:center;align-items:center}h1,h2,h3,p{margin:0}.btn{min-height:var(--tap);min-width:var(--tap);border-radius:var(--radius);background:var(--accent);box-shadow:var(--shadow);border:0;justify-content:center;align-items:center;gap:8px;padding:10px 22px;font-size:22px;font-weight:800;transition:transform 80ms;display:inline-flex}.btn:active{transform:translateY(3px);box-shadow:0 1px #785a3c2e}.btn.big{min-height:80px;padding:12px 30px;font-size:28px}.btn.good{background:var(--good)}.btn.sky{background:var(--sky)}.btn.pink{background:var(--pink)}.btn.lilac{background:var(--lilac)}.btn.ghost{background:#ffffffb3}.btn.small{min-height:56px;padding:6px 14px;font-size:18px}.btn:disabled{opacity:.45;cursor:default}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:12px}.talk{align-items:center;gap:8px;display:flex}.bubble{box-shadow:var(--shadow);background:#fff;border-radius:20px;flex:1;align-items:center;gap:10px;min-height:70px;padding:12px 16px;font-size:24px;line-height:1.35;display:flex;position:relative}.bubble:before{content:"";border:9px solid #0000;border-left:0;border-right-color:#fff;margin-top:-9px;position:absolute;top:50%;left:-10px}.bubble .icon{font-size:34px}.topbar{align-items:center;gap:10px;display:flex}.dots{flex:1;gap:6px;display:flex}.dots i{background:#0000001a;border-radius:8px;flex:1;height:14px;transition:background .3s}.dots i.on{background:var(--good)}.dots i.now{background:var(--accent)}.pill{box-shadow:var(--shadow);white-space:nowrap;background:#fff;border-radius:999px;flex:none;padding:6px 12px;font-size:16px}.stage{flex:1;justify-content:center;align-items:center;min-height:0;display:flex}.stage .card{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;width:100%;min-height:150px;display:flex}.choices{gap:12px;display:grid}.choice{border-radius:var(--radius);min-height:96px;box-shadow:var(--shadow);background:#fff;border:4px solid #0000;justify-content:center;align-items:center;padding:6px;font-size:34px;font-weight:800;display:flex;position:relative}.choice:active{transform:translateY(3px)}.choice.correct{border-color:var(--good-deep);background:#e6f8ec}.choice.wrong{opacity:.5;background:#eee;border-color:#ccc;animation:.3s nudge}.reduce-motion .choice.wrong{animation:none}.choice.hint{border-color:var(--accent-deep);animation:1.6s ease-in-out infinite breathe}.reduce-motion .choice.hint{animation:none}.choice .mark{font-size:28px;position:absolute;top:4px;right:8px}@keyframes nudge{25%{transform:translate(-6px)}75%{transform:translate(6px)}}@keyframes breathe{50%{transform:scale(1.04)}}.big-text{letter-spacing:.06em;font-size:56px;font-weight:900}.mid-text{font-size:40px;font-weight:900}.emoji-xl{font-size:92px;line-height:1}.emoji-lg{font-size:56px;line-height:1}.emoji-md{font-size:44px;line-height:1}.confetti{pointer-events:none;z-index:50;position:absolute;inset:0;overflow:hidden}.confetti span{font-size:26px;animation:1.6s ease-in forwards fall;position:absolute;top:-30px}.reduce-motion .confetti span{opacity:.9;animation:none;top:40%}@keyframes fall{to{opacity:.8;transform:translateY(105dvh)rotate(260deg)}}.nav{gap:8px;display:flex}.nav .btn{flex-direction:column;flex:1;gap:0;font-size:18px;line-height:1.1}.nav .btn span:first-child{font-size:28px}.sheet{z-index:40;background:#3c281466;justify-content:center;align-items:center;padding:24px;display:flex;position:absolute;inset:0}.sheet .card{text-align:center;flex-direction:column;align-items:center;gap:14px;width:100%;max-height:100%;padding:20px;display:flex;overflow:auto}.muted{color:var(--ink-soft)}.row{align-items:center;gap:10px;display:flex}.grow{flex:1}@media (orientation:landscape) and (height<=480px){.app{max-width:100%}.screen{padding:6px 10px}.bubble{min-height:48px;padding:6px 12px;font-size:18px}.choice{min-height:64px}.emoji-xl{font-size:64px}}.ring{width:150px;height:150px}.keypad{grid-template-columns:repeat(3,1fr);gap:8px;width:100%;display:grid}.keypad .btn{background:#fff;min-height:56px;font-size:24px}.bar{background:#eee;border-radius:8px;flex:1;height:16px;overflow:hidden}.bar>i{background:var(--good);border-radius:8px;height:100%;display:block}.switch-row{justify-content:space-between;align-items:center;gap:10px;width:100%;font-size:18px;display:flex}.seg{gap:6px;display:flex}.seg button{background:#f4ede3;border:3px solid #0000;border-radius:14px;min-height:48px;padding:4px 14px;font-size:18px}.seg button.on{background:var(--accent);border-color:var(--accent-deep)}.parent-body{text-align:left;flex-direction:column;gap:12px;width:100%;font-size:16px;display:flex}.parent-body h3{margin-top:4px;font-size:18px}details.about{background:#fff8ee;border-radius:14px;padding:0 12px}details.about+details.about{margin-top:8px}details.about summary{cursor:pointer;align-items:center;min-height:52px;font-size:16px;font-weight:800;display:flex}.about-body{flex-direction:column;gap:10px;padding-bottom:12px;font-size:15px;font-weight:600;line-height:1.6;display:flex}.about-block h4{color:#e8743b;margin:0 0 4px;font-size:15px}.about-block ul{margin:0;padding-left:1.2em}.about-block li+li{margin-top:4px}.about-table{border-collapse:collapse;width:100%;font-size:14px;line-height:1.5}.about-table th,.about-table td{vertical-align:top;text-align:left;border:1px solid #ecdcc4;padding:6px 8px}.about-table th{background:#ffe9c7}:root{--bg:#f1f9e8;--bg-2:#dff0cf;--accent:#ffb74d;--good:#7ccf9a}.title-logo{color:#3f9b6a;text-shadow:0 3px #fff;font-size:44px;font-weight:900;line-height:1.15}.title-sub{color:var(--ink-soft);font-size:22px}.bob{animation:3.2s ease-in-out infinite bob}.reduce-motion .bob{animation:none}@keyframes bob{50%{transform:translateY(-6px)}}.game{gap:8px;padding-top:8px;padding-bottom:10px}.gtop{align-items:center;gap:8px;display:flex}.gtop .btn.small{min-width:56px;min-height:48px;padding:4px 12px}.gtitle{flex:1;justify-content:center;align-items:center;gap:8px;font-size:22px;display:flex}.gtitle .pill{padding:6px 14px;font-size:20px}.board-wrap{min-height:0;box-shadow:var(--shadow);background:#e7f6d8;border-radius:24px;flex:1;justify-content:center;align-items:center;padding:8px;display:flex;position:relative}.board{width:100%;height:100%;display:block}.poko-pos{transition:transform calc(var(--step,.5s) * .7) ease-in-out}.reduce-motion .poko-pos{transition:none}.poko-walk{animation:pwalk calc(var(--step,.5s) * .7) ease-in-out}.poko-hop{animation:phop calc(var(--step,.5s) * .9) ease-in-out}.poko-bump{animation:.55s ease-in-out pbump}.poko-goal{animation:.7s ease-in-out infinite pgoal}.reduce-motion .poko-walk,.reduce-motion .poko-hop,.reduce-motion .poko-bump,.reduce-motion .poko-goal{animation:none}@keyframes pwalk{50%{transform:translateY(-5px)}}@keyframes phop{50%{transform:translateY(-28px)}}@keyframes pbump{35%{transform:translate(var(--bump,0px, 0px))}}@keyframes pgoal{50%{transform:translateY(-10px)}}.spin,.orbit{transform-box:fill-box;transform-origin:50%;animation:1.2s linear infinite spin}.reduce-motion .spin,.reduce-motion .orbit{animation:none}@keyframes spin{to{transform:rotate(360deg)}}.ripple{transform-box:fill-box;transform-origin:50%;animation:1.4s ease-out infinite ripple}.reduce-motion .ripple{animation:none}@keyframes ripple{0%{opacity:.9;transform:scale(.7)}to{opacity:0;transform:scale(1.12)}}.drop{animation:.9s ease-out forwards drop}.reduce-motion .drop{animation:none}@keyframes drop{0%{opacity:1;transform:translate(0)}to{transform:translate(var(--dx,0px), -26px);opacity:0}}.stars-overlay{pointer-events:none;justify-content:center;gap:6px;display:flex;position:absolute;top:8px;left:0;right:0}.stars-overlay svg{filter:drop-shadow(0 3px #785a3c40)}.sticker-pop{font-size:54px;line-height:1;animation:.5s ease-out pop;position:absolute;bottom:10px;right:12px}.reduce-motion .sticker-pop{animation:none}@keyframes pop{0%{transform:scale(.2)rotate(-30deg)}70%{transform:scale(1.25)rotate(8deg)}to{transform:scale(1)rotate(0)}}.runbar{align-items:stretch;gap:10px;min-height:72px;display:flex}.runbar .btn{min-height:72px}.runbar .btn.big{flex:1;font-size:30px}.runbar .btn.retry{flex:none;min-width:84px;padding:8px 18px;font-size:34px}.slots{justify-content:center;gap:8px;display:grid}.slot{width:100%;min-width:var(--slot-min,56px);aspect-ratio:1;max-width:68px;min-height:var(--slot-min,56px);background:#ffffffb3;border:3px dashed #b9c9a8;border-radius:16px;justify-content:center;align-items:center;padding:0;display:flex;position:relative}.slot.filled{box-shadow:var(--shadow);border-style:solid;border-color:#4a3b322e}.slot.sel{border:4px solid var(--accent-deep);background:#fff8e1;animation:1.6s ease-in-out infinite breathe}.slot.filled.sel{background:inherit}.slot.active{border:4px solid var(--good-deep);transform:translateY(-4px)scale(1.06);box-shadow:0 0 0 4px #7ccf9a73}.reduce-motion .slot.sel{animation:none}.slot .no{color:var(--ink-soft);font-size:12px;position:absolute;top:1px;left:5px}.slots.locked .slot{opacity:.9}.palette{gap:8px;display:grid}.pbtn{min-height:60px;box-shadow:var(--shadow);border:0;border-radius:18px;justify-content:center;align-items:center;padding:0;display:flex;position:relative}.pbtn:active{transform:translateY(3px);box-shadow:0 1px #785a3c2e}.pbtn:disabled{opacity:.4}.hand{pointer-events:none;z-index:5;filter:drop-shadow(0 2px #0003);font-size:36px;line-height:1;animation:1s ease-in-out infinite tapme;position:absolute;bottom:-16px;right:4px}.hand.up{top:-34px;bottom:auto}.reduce-motion .hand{animation:none}@keyframes tapme{50%{transform:translateY(-8px)}}.glow{box-shadow:0 0 0 5px #ffb74dcc, var(--shadow)}.hintbtn.pulse{background:#fff3b0;animation:1.4s ease-in-out infinite breathe}.reduce-motion .hintbtn.pulse{animation:none}.hintbtn.on{background:#ffe082}.tabs{gap:8px;display:flex}.tab{min-height:64px;box-shadow:var(--shadow);border:4px solid #0000;border-radius:20px;flex:1;padding:0;font-size:30px;position:relative}.tab.on{border-color:var(--ink);transform:translateY(-2px)}.tab:disabled{opacity:.4}.tiles{flex:1;grid-template-columns:repeat(2,1fr);grid-auto-rows:1fr;gap:12px;min-height:0;display:grid}.tile{box-shadow:var(--shadow);background:#fff;border:0;border-radius:22px;flex-direction:column;justify-content:center;align-items:center;gap:2px;min-height:90px;padding:4px;display:flex;position:relative}.tile:active{transform:translateY(3px)}.tile .num{color:var(--ink-soft);font-size:22px;font-weight:900;position:absolute;top:6px;left:12px}.tile .big-emoji{font-size:54px;line-height:1}.tile.next{border:5px solid var(--accent-deep);animation:1.6s ease-in-out infinite breathe}.reduce-motion .tile.next{animation:none}.tile.locked{opacity:.7;background:#eceff1}.starrow{gap:2px;display:flex}@media (height<=720px){.game{--slot-min:48px;gap:6px;padding-top:6px;padding-bottom:8px}.gtop .btn.small{min-height:44px}.board-wrap{border-radius:18px;padding:4px}.runbar,.runbar .btn{min-height:56px}.runbar .btn.big{font-size:26px}.slots,.palette{gap:6px}.pbtn{min-height:52px}.pbtn svg{width:36px;height:36px}.slot svg{width:34px;height:34px}}
