:root{--color-bg: #fff8ec;--color-card: #ffffff;--color-card-blue: #eaf7ff;--color-border: #bfe3f2;--color-primary: #ffc66b;--color-primary-soft: #ffe3a3;--color-text: #4f4036;--color-text-soft: #6e6055;--color-success: #e8930c;--color-retry: #5a8fa8;--color-accent-pink: #ffb3c6;--color-beige-soft: #f1e7db;--color-beige: #ddd0c2;--radius-card: 28px;--radius-button: 22px;--shadow-card: 0 10px 25px rgba(120, 90, 60, .1);--shadow-button: 0 6px 14px rgba(120, 90, 60, .14);--shadow-pressed: 0 2px 4px rgba(120, 90, 60, .14);--press-down: translateY(3px);--hover-up: translateY(-2px)}*{box-sizing:border-box;margin:0;padding:0;touch-action:manipulation;-webkit-tap-highlight-color:transparent}body{background:radial-gradient(circle at 10% 12%,rgba(191,227,242,.4),transparent 42%),radial-gradient(circle at 90% 15%,rgba(255,179,198,.28),transparent 42%),radial-gradient(circle at 50% 100%,rgba(255,217,138,.32),transparent 48%),var(--color-bg);color:var(--color-text);font-family:Hiragino Maru Gothic ProN,Yu Gothic UI,Meiryo,system-ui,-apple-system,Segoe UI,sans-serif;user-select:none;-webkit-user-select:none;overflow:hidden}.app{max-width:900px;margin:0 auto;padding:clamp(8px,2vh,24px) clamp(16px,4vw,48px);padding-left:max(clamp(16px,4vw,48px),env(safe-area-inset-left));padding-right:max(clamp(16px,4vw,48px),env(safe-area-inset-right));padding-bottom:max(clamp(8px,2vh,24px),env(safe-area-inset-bottom));height:100vh;height:100dvh;display:flex;flex-direction:column;align-items:center;text-align:center;overflow-x:hidden;overflow-y:auto;animation:screen-in .25s ease-out}@keyframes screen-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.home{justify-content:flex-start;gap:clamp(8px,1.6vh,16px);overflow-y:auto;max-width:1000px}.home-mute{position:fixed;top:max(clamp(10px,2vh,20px),env(safe-area-inset-top));right:max(clamp(14px,2.5vw,28px),env(safe-area-inset-right));z-index:20}.home-section-label{font-size:clamp(11px,2.2vmin,14px);font-weight:700;letter-spacing:3px;flex-shrink:0;border-radius:999px;padding:clamp(2px,.6vh,5px) clamp(14px,2vw,22px)}.home-section-label.cat-math{background:#ffd98a73;color:#8a6a35}.home-section-label.cat-lang{background:#ffb3c666;color:#9c5a70}.home-section-label.cat-think{background:#bfe3f28c;color:#4a7d96}.home-header{margin-top:auto;display:flex;flex-direction:column;gap:clamp(2px,.8vh,8px);flex-shrink:0}.title{font-size:clamp(30px,7vmin,46px);letter-spacing:3px;color:var(--color-text);text-shadow:0 3px 0 rgba(255,198,107,.4)}.subtitle{font-size:clamp(13px,2.6vmin,16px);color:var(--color-text-soft);letter-spacing:2px}.mode-buttons{display:flex;flex-wrap:wrap;gap:clamp(10px,2vmin,16px);justify-content:center;max-width:880px}.mode-button{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:clamp(3px,.8vmin,6px);width:clamp(150px,22vmin,180px);min-height:56px;padding:clamp(8px,1.6vmin,14px) 8px;background:var(--color-card);border:3px solid var(--color-border);border-radius:var(--radius-card);cursor:pointer;box-shadow:var(--shadow-card);transition:transform .12s,box-shadow .12s,background .12s;font-family:inherit;color:var(--color-text)}.mode-button:active{transform:var(--press-down);box-shadow:var(--shadow-pressed)}.mode-icon{font-size:clamp(24px,5vmin,34px);line-height:1.1}.mode-icon-text{font-weight:700;color:var(--color-success)}.mode-name{font-size:clamp(13px,2.6vmin,17px);font-weight:700;white-space:nowrap;max-width:100%}.mode-desc{font-size:clamp(10px,2vmin,12px);color:var(--color-text-soft)}@media(max-height:480px){.mode-desc{display:none}}.mode-clears{position:absolute;top:6px;right:8px;font-size:clamp(10px,2vmin,12px);font-weight:700;color:var(--color-success);background:#ffe3a3bf;border-radius:999px;padding:2px 7px}.home-coming-soon{display:flex;flex-direction:column;gap:4px;font-size:clamp(13px,2.6vmin,16px);color:var(--color-text-soft);border-top:2px dashed rgba(191,227,242,.9);padding-top:clamp(8px,1.6vh,16px);width:min(100%,880px)}.home-coming-note{font-size:clamp(11px,2.2vmin,13px)}.home-parent-link{align-self:center;margin:clamp(2px,1vh,10px) 0 clamp(6px,1.4vh,12px);font-family:inherit;font-size:clamp(13px,2.8vmin,16px);font-weight:700;color:var(--color-text);background:var(--color-primary-soft);border:2px solid var(--color-primary);border-radius:999px;min-height:50px;flex-shrink:0;padding:8px 22px;max-width:100%;cursor:pointer}.home-parent-link:active{transform:var(--press-down)}.home-parent-link:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px}.home-credit{margin-top:auto;padding-top:clamp(6px,1.5vh,12px);font-size:clamp(11px,2.2vmin,13px);color:var(--color-text-soft);max-width:100%}@media(min-width:700px){body:has(.home){overflow-x:hidden;overflow-y:auto}.home{position:relative;height:auto;min-height:100dvh;overflow:visible;max-width:1120px;padding-left:max(clamp(24px,3vw,40px),env(safe-area-inset-left));padding-right:max(clamp(24px,3vw,40px),env(safe-area-inset-right));gap:clamp(10px,1.4vw,18px)}.mode-buttons{max-width:1040px;gap:clamp(14px,1.6vw,24px)}.mode-button{width:clamp(184px,15vw,216px)}.home-coming-soon,.utility-row{width:min(100%,1040px)}}.info-title{margin:clamp(8px,1.6vh,16px) 0}.info-card{width:100%;max-width:720px;background:var(--color-card);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:clamp(16px,3vh,28px) clamp(16px,4vw,32px);margin-bottom:clamp(12px,2vh,24px);text-align:left;overflow-wrap:break-word}.info-section+.info-section{margin-top:clamp(14px,2.6vh,22px);border-top:2px dashed rgba(191,227,242,.7);padding-top:clamp(12px,2.2vh,18px)}.info-section h2{font-size:clamp(15px,3vmin,18px);color:var(--color-text);border-left:5px solid var(--color-primary);padding-left:10px;margin-bottom:clamp(6px,1.2vh,10px)}.info-section ul{list-style:none;display:flex;flex-direction:column;gap:clamp(6px,1.2vh,10px)}.info-section li{font-size:clamp(13px,2.7vmin,15px);line-height:1.7;color:var(--color-text-soft);padding-left:1.1em;position:relative}.info-section li:before{content:"・";position:absolute;left:0;color:var(--color-primary);font-weight:700}.info-section strong{color:var(--color-text)}.info-sublist{margin-top:6px;display:flex;flex-direction:column;gap:4px}.info-sublist li{font-size:clamp(12px,2.6vmin,14px)}.info-sublist li:before{content:"-"}.info-credits-button{margin-top:clamp(8px,1.6vh,12px);align-self:flex-start;font-size:clamp(14px,3vmin,17px);font-weight:700;color:var(--color-text);background:var(--color-primary-soft);border:3px solid var(--color-primary);border-radius:14px;padding:10px 16px;cursor:pointer;box-shadow:var(--shadow-button);max-width:100%}.info-credits-button:active{transform:var(--press-down)}.info-bgm-note{margin-top:clamp(10px,2vh,16px);font-size:clamp(12px,2.7vmin,15px);color:var(--color-text-soft);line-height:1.6;max-width:100%;overflow-wrap:break-word}.credits-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;background:#3c322873;display:flex;align-items:center;justify-content:center;padding:clamp(12px,4vw,32px);box-sizing:border-box}.credits-modal{width:min(92vw,520px);max-height:84vh;overflow-y:auto;box-sizing:border-box;background:var(--color-card);border:3px solid var(--color-primary);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:clamp(14px,3vh,24px) clamp(14px,4vw,24px);text-align:left;overflow-wrap:break-word;animation:pop .3s ease-out}.credits-head{display:flex;align-items:center;justify-content:space-between;gap:10px;position:sticky;top:0}.credits-title{font-size:clamp(16px,3.4vmin,20px);color:var(--color-text)}.credits-close{flex-shrink:0;font-size:clamp(16px,3.4vmin,20px);line-height:1;width:40px;height:40px;border-radius:50%;border:2px solid var(--color-primary);background:var(--color-card);color:var(--color-text);cursor:pointer}.credits-close:active{transform:var(--press-down)}.credits-lead{font-size:clamp(12px,2.6vmin,14px);color:var(--color-text-soft);line-height:1.7;margin:clamp(6px,1.4vh,12px) 0}.credit-list{list-style:none;display:flex;flex-direction:column;gap:clamp(8px,1.6vh,12px)}.credit-item{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;font-size:clamp(13px,2.7vmin,15px);line-height:1.6;color:var(--color-text-soft);border-bottom:1px dashed rgba(191,227,242,.7);padding-bottom:clamp(6px,1.2vh,10px)}.credit-animal{font-weight:700;color:var(--color-text);min-width:4em}.credit-meta{flex:1 1 auto;min-width:0}.credit-link{flex-shrink:0;color:var(--color-text);font-weight:700;text-decoration:underline}.sound-prompt{position:absolute;z-index:5;font-size:clamp(13px,2.6vmin,15px);font-weight:700;color:var(--color-text);background:var(--color-primary-soft);border:2px solid var(--color-primary);border-radius:999px;min-height:44px;padding:8px 16px;cursor:pointer;font-family:inherit;box-shadow:var(--shadow-button);white-space:nowrap;animation:prompt-glow 2s ease-in-out infinite}.sound-prompt:before{content:"";position:absolute;top:-7px;right:16px;width:12px;height:12px;background:var(--color-primary-soft);border-left:2px solid var(--color-primary);border-top:2px solid var(--color-primary);transform:rotate(45deg)}.sound-prompt:active{transform:var(--press-down)}@keyframes prompt-glow{0%,to{box-shadow:var(--shadow-button)}50%{box-shadow:0 0 0 6px #ffc66b66,var(--shadow-button)}}.home-sound-prompt{position:fixed;z-index:20;top:calc(max(clamp(10px,2vh,20px),env(safe-area-inset-top)) + 52px);right:max(clamp(14px,2.5vw,28px),env(safe-area-inset-right))}.topbar-right{position:relative}.topbar .sound-prompt{top:52px;right:0}.topbar{width:100%;min-height:48px;flex-shrink:0;display:flex;justify-content:space-between;align-items:center;gap:12px}.topbar-right{display:flex;align-items:center;gap:12px}.home-button{font-size:clamp(16px,2.6vmin,20px);font-weight:700;color:var(--color-text);background:var(--color-card);border:3px solid var(--color-border);border-radius:16px;min-height:44px;padding:8px 16px;cursor:pointer;box-shadow:var(--shadow-button);font-family:inherit;transition:transform .12s,background .12s;white-space:nowrap}.home-button:active{transform:var(--press-down);box-shadow:var(--shadow-pressed)}.star-badge{display:inline-flex;align-items:center;font-size:clamp(14px,2.4vmin,20px);font-weight:700;background:var(--color-card);border:3px solid var(--color-primary);border-radius:16px;padding:7px 10px;letter-spacing:1px;white-space:nowrap;box-shadow:var(--shadow-button);overflow:hidden;max-width:45vw;text-overflow:clip}.star-mark{line-height:1}.star-first{color:var(--color-primary)}.star-retry{color:var(--color-success)}.star-empty{color:var(--color-beige)}.mute-button{font-size:20px;background:var(--color-card);border:3px solid var(--color-border);border-radius:16px;width:44px;height:44px;flex-shrink:0;cursor:pointer;font-family:inherit;box-shadow:var(--shadow-button);transition:transform .12s,background .12s}.mute-button:active{transform:var(--press-down)}.card{width:100%;background:var(--color-card-blue);border-radius:var(--radius-card);padding:clamp(12px,3vh,28px);margin-top:clamp(8px,2vh,20px);flex-shrink:0;box-shadow:inset 0 2px 8px #785a3c0d}.apples{display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(10px,3vmin,28px);min-height:clamp(60px,15vmin,100px);align-items:center}.apple{font-size:clamp(44px,12vmin,80px);line-height:1;animation:pop .3s ease-out backwards;cursor:pointer;transition:transform .1s}.apple:active{transform:scale(.9)}.apples-many{gap:clamp(8px,2.2vmin,20px)}.apples-many .apple{font-size:clamp(32px,9vmin,60px)}.question{font-size:clamp(24px,6vmin,40px);margin:clamp(10px,2.4vh,24px) 0;flex-shrink:0;letter-spacing:2px}.tappable:after{content:" 🔈";font-size:.5em;opacity:.5;vertical-align:middle}.has-speak-button:after{content:none}.tappable{cursor:pointer}.buttons{display:flex;flex-wrap:wrap;gap:clamp(12px,3.4vmin,28px);justify-content:center;flex-shrink:0}.num-button,.color-button,.shape-button,.size-button,.pattern-option,.hira-button,.animal-button,.weekday-button{background:var(--color-card);border:4px solid var(--color-border);border-radius:var(--radius-button);cursor:pointer;box-shadow:var(--shadow-button);transition:transform .12s,box-shadow .12s,background .12s;font-family:inherit;color:var(--color-text)}.num-button:active:enabled,.color-button:active:enabled,.shape-button:active:enabled,.size-button:active:enabled,.pattern-option:active:enabled,.hira-button:active:enabled,.animal-button:active:enabled,.weekday-button:active:enabled{transform:var(--press-down);box-shadow:var(--shadow-pressed)}.num-button:disabled,.color-button:disabled,.shape-button:disabled,.size-button:disabled,.pattern-option:disabled,.hira-button:disabled,.animal-button:disabled,.weekday-button:disabled{opacity:.55;cursor:default}.num-button.correct-choice,.color-button.correct-choice,.shape-button.correct-choice,.size-button.correct-choice,.pattern-option.correct-choice,.hira-button.correct-choice,.animal-button.correct-choice,.weekday-button.correct-choice{opacity:1;border-color:var(--color-primary);box-shadow:0 0 0 4px #ffc66b59,var(--shadow-button);animation:pop .5s ease-out}@keyframes pop{0%{transform:scale(1)}40%{transform:scale(1.08)}to{transform:scale(1)}}.num-button{width:clamp(68px,17vmin,110px);height:clamp(68px,17vmin,110px);font-size:clamp(34px,8.5vmin,56px);font-weight:700}.num-many{gap:clamp(6px,min(1.5vh,.9vw),12px);flex-wrap:nowrap}.num-many .num-button{width:clamp(52px,min(10.5vh,7.2vw),78px);height:clamp(52px,min(10.5vh,7.2vw),78px);font-size:clamp(26px,min(5.5vh,3.8vw),40px)}.color-swatch{width:clamp(72px,18vmin,130px);height:clamp(72px,18vmin,130px);border-radius:50%;margin:0 auto;border:5px solid var(--color-beige-soft);box-shadow:var(--shadow-button)}.color-name{font-size:clamp(22px,5.5vmin,34px);font-weight:700;margin-top:clamp(6px,1.5vh,14px)}.color-card{cursor:pointer}.color-name{margin-bottom:clamp(2px,.8vh,8px)}.color-button{width:clamp(64px,17vmin,110px);height:clamp(64px,17vmin,110px);border-radius:50%;border:5px solid var(--color-beige-soft)}.shape-button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(4px,1vh,10px);width:clamp(96px,23vmin,150px);padding:clamp(10px,2vh,18px) 8px}.shape-svg{width:clamp(52px,13vmin,88px);height:clamp(52px,13vmin,88px)}.size-buttons{gap:clamp(16px,6vmin,90px)}.size-button{display:flex;align-items:center;justify-content:center;width:clamp(130px,34vmin,240px);height:clamp(130px,32vmin,220px)}.size-emoji-big{font-size:clamp(84px,22vmin,150px);line-height:1}.size-emoji-small{font-size:clamp(40px,10vmin,70px);line-height:1}.size-easy .size-emoji-big{font-size:clamp(96px,25vmin,165px)}.size-easy .size-emoji-small{font-size:clamp(32px,8vmin,55px)}.size-hard .size-emoji-big{font-size:clamp(72px,18vmin,118px)}.size-hard .size-emoji-small{font-size:clamp(60px,15vmin,100px)}.compare-button{padding:10px}.compare-emojis{display:grid;grid-template-columns:repeat(3,auto);gap:4px 6px;justify-content:center;align-content:center;font-size:clamp(24px,6vmin,44px);line-height:1.1;max-width:100%}.compare-emojis.compare-many{font-size:clamp(18px,4.4vmin,30px)}.num-button.order-done{opacity:.3}.hira-button{display:flex;align-items:center;justify-content:center;width:clamp(96px,24vmin,150px);height:clamp(96px,24vmin,150px);font-size:clamp(58px,15vmin,88px);font-weight:700;line-height:1}.hira-button.hira-small{font-size:clamp(40px,10vmin,62px);letter-spacing:-2px}.alpha-button{letter-spacing:0}.animal-button{display:flex;flex-direction:column;align-items:center;gap:clamp(2px,.8vh,8px);width:clamp(104px,19vh,150px);padding:clamp(10px,2vh,18px) 8px}.trace-area{display:flex;justify-content:center;flex-shrink:1;min-height:0}.trace-svg{width:clamp(200px,42vh,320px);height:auto;background:var(--color-card);border-radius:var(--radius-card);box-shadow:var(--shadow-card);touch-action:none;cursor:pointer}.trace-dot{fill:var(--color-beige)}.trace-dot-done{fill:var(--color-primary)}.trace-dot-startguide{fill:var(--color-success);opacity:.75}.trace-dot-start{fill:var(--color-success);transform-box:fill-box;transform-origin:center;animation:trace-pulse 1s ease-in-out infinite}.trace-dot-target{fill:var(--color-retry);transform-box:fill-box;transform-origin:center;animation:trace-pulse 1s ease-in-out infinite}@keyframes trace-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.3)}}.trace-retry{font-size:clamp(14px,2.2vh,17px);font-weight:700;color:var(--color-text-soft);background:var(--color-card);border:2px solid var(--color-border);border-radius:999px;padding:4px 16px;margin-top:clamp(4px,1vh,10px);cursor:pointer;font-family:inherit;flex-shrink:0}.trace-retry:hover{background:var(--color-card-blue)}.order-hira-row{display:flex;flex-wrap:nowrap;justify-content:center;align-items:center;gap:clamp(4px,1.5vw,12px);margin:clamp(8px,2vh,18px) 0;flex-shrink:0}.order-hira-cell{display:flex;align-items:center;justify-content:center;width:clamp(44px,14vw,72px);height:clamp(52px,16vw,84px);font-size:clamp(30px,9vw,56px);font-weight:700;color:var(--color-text);line-height:1}.order-hira-cell.blank{border:3px dashed var(--color-border);border-radius:14px;background:var(--color-card-blue);color:var(--color-primary)}.order-hira-cell.blank.filled{border-style:solid;border-color:var(--color-primary);color:var(--color-text);animation:pop .5s ease-out}.weekday-row{display:flex;flex-wrap:nowrap;justify-content:center;align-items:center;gap:clamp(4px,1.5vw,12px);margin:clamp(8px,2vh,18px) 0;flex-shrink:0}.weekday-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:clamp(84px,26vw,120px);height:clamp(66px,20vw,96px);border-radius:14px;background:var(--color-card);border:3px solid var(--color-border)}.weekday-cell.blank{border-style:dashed;background:var(--color-card-blue)}.weekday-cell.blank.filled{border-style:solid;border-color:var(--color-primary);animation:pop .5s ease-out}.weekday-kanji{font-size:clamp(15px,4vw,22px);font-weight:700;color:var(--color-text-soft);line-height:1}.weekday-kana{font-size:clamp(15px,4.4vw,24px);font-weight:700;color:var(--color-text);line-height:1.1}.weekday-button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:clamp(84px,26vw,126px);padding:clamp(8px,1.8vh,14px) 8px}.animal-emoji{font-size:clamp(48px,9vh,72px);line-height:1}.animal-name{font-size:clamp(18px,3vh,24px);font-weight:700}.math-equation{font-size:clamp(32px,6vh,48px);font-weight:700;letter-spacing:4px;margin-bottom:clamp(6px,1.5vh,14px)}.math-visual{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:clamp(8px,2vh,20px);line-height:1.15;max-width:100%}.math-group{display:inline-flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:clamp(4px,1.4vmin,12px);max-width:100%}.math-emoji{font-size:clamp(30px,6vh,50px);line-height:1}.math-op{font-size:clamp(26px,4.5vh,38px);font-weight:700;color:var(--color-text-soft)}.math-taken{opacity:.3;filter:grayscale(.5)}.math-visual-many{gap:clamp(4px,1.2vh,12px)}.math-visual-many .math-emoji{font-size:clamp(22px,4.2vh,38px)}.math-visual-many .math-group{gap:clamp(3px,.9vmin,8px)}.pattern-row{display:flex;flex-wrap:wrap;gap:clamp(4px,1.2vmin,12px);justify-content:center;align-items:center;line-height:1.1;max-width:100%}.pattern-cell{font-size:clamp(26px,7vmin,44px);background:var(--color-card);border-radius:14px;padding:clamp(4px,1vmin,10px) clamp(6px,1.4vmin,12px);box-shadow:var(--shadow-button);line-height:1}.pattern-question{color:var(--color-retry);font-weight:700;background:var(--color-primary-soft);animation:pattern-pulse 1.4s ease-in-out infinite}@keyframes pattern-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}.pattern-option{display:flex;align-items:center;justify-content:center;width:clamp(88px,22vmin,130px);padding:clamp(8px,1.8vmin,14px) 8px}.pattern-option-emoji{font-size:clamp(40px,10vmin,66px);line-height:1}.num-button.shake,.color-button.shake,.shape-button.shake,.size-button.shake,.pattern-option.shake{animation:shake .4s ease-in-out}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-8px)}75%{transform:translate(8px)}}.speak-button{display:inline-flex;align-items:center;justify-content:center;gap:clamp(6px,1.6vw,12px);font-size:clamp(18px,4.4vmin,26px);font-weight:700;color:var(--color-text);background:var(--color-primary);border:none;border-radius:20px;min-height:56px;min-width:56px;padding:clamp(10px,1.6vh,14px) clamp(20px,4vh,34px);margin-bottom:clamp(10px,2.5vh,24px);cursor:pointer;box-shadow:var(--shadow-button);transition:transform .12s,background .12s;font-family:inherit;flex-shrink:0}.replay-audio-icon{font-size:clamp(28px,5.2vmin,32px);line-height:1}.replay-audio-label{line-height:1}.speak-button:disabled{opacity:.45;cursor:default}.speak-button:active{transform:var(--press-down);box-shadow:var(--shadow-pressed)}.feedback{position:relative;min-height:clamp(78px,18vmin,150px);margin-top:clamp(4px,1.6vh,18px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(8px,1.5vh,14px);flex-shrink:0}.correct-msg{font-size:clamp(26px,6.4vmin,42px);color:var(--color-success);font-weight:700;letter-spacing:2px;animation:pop .4s ease-out}.retry-msg{font-size:clamp(22px,5.6vmin,34px);color:var(--color-retry);font-weight:700}.app:has(.goal-panel) .card,.app:has(.goal-panel) .question,.app:has(.goal-panel) .buttons,.app:has(.goal-panel) .speak-button,.app:has(.goal-panel) .trace-area,.app:has(.goal-panel) .trace-retry,.app:has(.goal-panel) .hint{display:none}.app:has(.goal-panel) .feedback{margin:auto 0}.goal-panel{display:flex;flex-direction:column;align-items:center;gap:clamp(4px,1.2vh,12px);background:linear-gradient(180deg,#fffdf5,#ffefc9);border:3px solid var(--color-primary);border-radius:var(--radius-card);padding:clamp(12px,2.4vh,24px) clamp(16px,5vw,48px);box-shadow:var(--shadow-card);animation:pop .5s ease-out;max-width:100%}.goal-marks{font-size:clamp(20px,5vmin,34px);letter-spacing:2px;max-width:100%;flex-wrap:wrap;justify-content:center;overflow:visible;white-space:normal}.goal-marks-note{font-size:clamp(13px,3.2vmin,18px);color:var(--color-text-soft)}.goal-buttons{display:flex;flex-wrap:wrap;gap:clamp(8px,1.6vh,14px);justify-content:center}.next-button{font-size:clamp(22px,5.6vmin,32px);font-weight:700;color:var(--color-text);background:var(--color-primary);border:none;border-radius:var(--radius-button);min-height:48px;padding:clamp(10px,2vh,16px) clamp(24px,6vmin,48px);cursor:pointer;box-shadow:var(--shadow-button);transition:transform .12s,background .12s;font-family:inherit}.next-button:active{transform:var(--press-down);box-shadow:var(--shadow-pressed)}.goal-home{background:var(--color-card);border:3px solid var(--color-primary);font-size:clamp(16px,4.2vmin,24px);padding:clamp(8px,1.6vh,12px) clamp(16px,5vmin,32px)}.sparkles{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:visible}.sparkles span{position:absolute;bottom:0;font-size:32px;opacity:0;animation:float-up 1.2s ease-out forwards}.sparkles span:nth-child(1){left:10%;animation-delay:0s}.sparkles span:nth-child(2){left:25%;animation-delay:.15s}.sparkles span:nth-child(3){left:45%;font-size:44px;animation-delay:.05s}.sparkles span:nth-child(4){left:62%;animation-delay:.2s}.sparkles span:nth-child(5){left:78%;animation-delay:.1s}.sparkles span:nth-child(6){left:90%;animation-delay:.25s}@keyframes float-up{0%{opacity:0;transform:translateY(20px) scale(.6)}20%{opacity:1}to{opacity:0;transform:translateY(-90px) scale(1.1)}}.sticker-note{font-size:clamp(16px,4vmin,24px);font-weight:700;color:var(--color-text);display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px 10px}.sticker-note-count{color:var(--color-retry);font-weight:700}.sticker-big{display:inline-block;font-size:clamp(36px,9vmin,56px);line-height:1;filter:drop-shadow(0 4px 6px rgba(120,90,60,.2));animation:pop .6s ease-out}.hint{margin-top:auto;padding-top:8px;font-size:clamp(13px,2.8vmin,18px);color:var(--color-text-soft);flex-shrink:0}.hint-sub{font-size:13px;margin-top:2px}.error-screen{gap:clamp(10px,2.5vh,20px)}.error-screen>:first-child{margin-top:auto}.error-screen>:last-child{margin-bottom:auto}.error-emoji{font-size:clamp(56px,14vmin,90px);line-height:1}.error-title{font-size:clamp(22px,5.6vmin,36px);color:var(--color-text)}.error-note{font-size:clamp(14px,3vmin,18px);color:var(--color-text-soft);max-width:560px}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:999px}::-webkit-scrollbar-track{background:transparent}.utility-row{width:min(100%,880px);border-top:2px dashed rgba(191,227,242,.9);padding-top:clamp(8px,1.6vh,16px)}.sticker-mode-button{background:var(--color-primary-soft);border-color:var(--color-primary)}.settings-mode-button{background:#f7f2ea;border-color:var(--color-beige)}.bgm-player-mode-button{background:var(--color-primary-soft);border-color:var(--color-primary)}.bgm-player-mode-locked{background:#f2efe9;border-color:var(--color-beige);filter:grayscale(.25)}.bgm-lock-note{width:min(100%,880px);margin:0;text-align:center;font-size:clamp(13px,3vmin,16px);line-height:1.5;color:var(--color-text-soft)}.sticker-page{gap:clamp(8px,2vh,16px)}.sticker-title{margin:clamp(4px,1.5vh,16px) 0}.sticker-card{width:100%;background:var(--color-card);background-image:radial-gradient(rgba(191,227,242,.35) 2px,transparent 2.5px);background-size:26px 26px;border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:clamp(14px,3vh,28px) clamp(12px,3vw,28px)}.sticker-collect-hint{font-size:clamp(12px,2.7vmin,15px);color:var(--color-text-soft);line-height:1.55;margin:0 0 clamp(8px,1.6vh,14px);max-width:100%}.sticker-total{display:inline-block;font-size:clamp(14px,3vmin,18px);font-weight:700;color:var(--color-text);background:var(--color-primary-soft);border-radius:999px;padding:4px 20px;margin-bottom:clamp(10px,2vh,16px)}.sticker-section{margin-bottom:clamp(14px,2.8vh,24px)}.sticker-section-title{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:clamp(14px,3vmin,18px);font-weight:700;color:var(--color-text);text-align:left;margin-bottom:clamp(6px,1.2vh,10px);border-left:5px solid var(--color-primary);padding-left:12px}.sticker-section-count{flex-shrink:0;font-size:clamp(13px,2.8vmin,16px);color:var(--color-text-soft)}.sticker-slots{display:flex;flex-wrap:wrap;gap:clamp(6px,2vmin,14px);justify-content:flex-start}.sticker-slot{position:relative;width:clamp(46px,14vmin,68px);height:clamp(46px,14vmin,68px);display:flex;align-items:center;justify-content:center;border-radius:16px;font-size:clamp(26px,7vmin,40px);line-height:1;box-sizing:border-box}.sticker-count-badge{position:absolute;right:2px;bottom:2px;min-width:20px;height:18px;padding:0 4px;display:flex;align-items:center;justify-content:center;border-radius:999px;background:var(--color-retry);color:#fff;font-size:clamp(11px,3vmin,14px);font-weight:700;line-height:1;box-sizing:border-box;box-shadow:0 1px 3px #0000004d;pointer-events:none}.sticker-slot-got{background:var(--color-card-blue);box-shadow:var(--shadow-button);filter:drop-shadow(0 3px 4px rgba(120,90,60,.16));animation:pop .35s ease-out}.sticker-slot-empty{background:var(--color-beige-soft, #eee);border:2px dashed rgba(120,90,60,.25);color:#785a3c73;font-weight:700}.sticker-reward{width:100%;max-width:520px;box-sizing:border-box;margin-top:clamp(8px,2vh,16px);background:var(--color-card);border:2px solid var(--color-border);border-radius:16px;padding:clamp(8px,1.6vh,14px) clamp(12px,3vw,18px);display:flex;flex-direction:column;align-items:center;gap:clamp(4px,1vh,8px)}.sticker-reward-done{border-color:var(--color-primary);background:linear-gradient(180deg,#fffdf5,#fff2cf)}.sticker-reward-title{font-size:clamp(13px,2.8vmin,16px);font-weight:700;color:var(--color-text)}.sticker-reward-text{font-size:clamp(12px,2.6vmin,14px);color:var(--color-text-soft);line-height:1.55}.sticker-reward-remain{font-size:clamp(13px,2.8vmin,15px);font-weight:700;color:var(--color-text)}.sticker-reward-button{font-family:inherit;font-size:clamp(14px,3vmin,17px);font-weight:700;color:var(--color-text);background:var(--color-primary-soft);border:2px solid var(--color-primary);border-radius:999px;min-height:44px;padding:8px 20px;max-width:100%;cursor:pointer}.sticker-reward-button:active{transform:var(--press-down)}.sticker-reward-button:disabled{cursor:default;opacity:.7;filter:grayscale(.3);min-height:40px;font-size:clamp(13px,2.8vmin,15px);padding:6px 16px}.bgm-player{width:100%;max-width:480px;box-sizing:border-box;display:flex;flex-direction:column;gap:clamp(10px,2vh,16px);background:var(--color-card);border:3px solid var(--color-card-blue);border-radius:20px;padding:clamp(14px,3vw,22px);box-shadow:var(--shadow-button)}.bgm-now{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 10px;min-width:0}.bgm-now-index{flex-shrink:0;font-size:clamp(13px,3vmin,16px);font-weight:700;color:var(--color-text-soft)}.bgm-now-name{flex:1 1 auto;min-width:0;font-size:clamp(18px,4.4vmin,24px);font-weight:700;color:var(--color-text);overflow-wrap:anywhere}.bgm-time{font-size:clamp(14px,3.4vmin,18px);font-variant-numeric:tabular-nums;color:var(--color-text-soft)}.bgm-seek{width:100%;height:32px;margin:0;cursor:pointer;accent-color:var(--color-primary)}.bgm-seek:disabled{opacity:.5;cursor:default}.bgm-transport{display:flex;align-items:stretch;gap:clamp(8px,2vw,14px)}.bgm-tp-button{font-family:inherit;font-size:clamp(15px,3.4vmin,19px);font-weight:700;color:var(--color-text);background:var(--color-card);border:2px solid var(--color-primary);border-radius:999px;min-height:52px;min-width:52px;padding:8px 12px;cursor:pointer;box-shadow:var(--shadow-button)}.bgm-tp-main{flex:1 1 auto;background:var(--color-primary-soft)}.bgm-tp-button:active{transform:var(--press-down)}.bgm-tp-button:disabled{opacity:.5;cursor:default}.bgm-modes{display:flex;flex-wrap:wrap;gap:clamp(8px,2vw,12px)}.bgm-mode-button{flex:1 1 auto;font-family:inherit;font-size:clamp(13px,3vmin,16px);font-weight:700;color:var(--color-text);background:var(--color-card);border:2px solid var(--color-primary);border-radius:999px;min-height:50px;padding:8px 14px;cursor:pointer;box-shadow:var(--shadow-button)}.bgm-mode-button:active{transform:var(--press-down)}.bgm-mode-button:disabled{opacity:.45;cursor:default}.bgm-mode-on{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-text)}.bgm-select-row{display:flex;flex-direction:column;gap:6px;min-width:0}.bgm-select-label{font-size:clamp(13px,3vmin,16px);font-weight:700;color:var(--color-text-soft)}.bgm-select{width:100%;box-sizing:border-box;font-family:inherit;font-size:clamp(14px,3.2vmin,17px);color:var(--color-text);background:var(--color-card);border:2px solid var(--color-primary);border-radius:12px;min-height:50px;padding:8px 12px;cursor:pointer}.bgm-player-note{font-size:clamp(12px,2.8vmin,15px);color:var(--color-text-soft);margin-top:8px}.stats{display:flex;flex-wrap:wrap;gap:8px 10px;justify-content:center;font-size:clamp(12px,2.6vmin,16px);color:var(--color-text-soft);flex-shrink:0}.stat{white-space:nowrap;background:var(--color-card);border:2px solid rgba(191,227,242,.7);border-radius:999px;padding:4px 14px}.reset-button{font-size:13px;color:var(--color-text-soft);background:transparent;border:1px solid rgba(138,122,109,.35);border-radius:10px;min-height:32px;padding:4px 12px;cursor:pointer;font-family:inherit}.reset-yes{border-color:var(--color-retry);color:var(--color-retry)}.info-data-manage{border-top:1px dashed rgba(138,122,109,.3);padding-top:12px}.reset-holder,.reset-final-confirm{margin-top:10px}.reset-hold-hint,.reset-final-text{font-size:14px;line-height:1.6;color:var(--color-text-soft);margin:0 0 10px}.reset-final-text strong{color:var(--color-retry)}.reset-hold-button{position:relative;overflow:hidden;display:inline-flex;flex-direction:column;align-items:center;gap:6px;min-width:200px;padding:8px 16px 10px;touch-action:none;user-select:none;-webkit-user-select:none}.reset-hold-button.reset-holding{border-color:var(--color-retry);color:var(--color-retry)}.reset-hold-bar{display:block;width:100%;height:6px;border-radius:999px;background:#8a7a6d33;overflow:hidden}.reset-hold-fill{display:block;height:100%;border-radius:999px;background:var(--color-retry);transition:width 60ms linear}.reset-final-actions{display:flex;flex-wrap:wrap;gap:10px}.reset-done-text{font-size:15px;color:var(--color-text);margin-top:10px}.settings-note{font-size:clamp(14px,2.8vmin,18px);color:var(--color-text-soft);margin-top:-6px}.settings-card{display:flex;flex-direction:column;justify-content:safe center;gap:clamp(10px,2.2vh,22px);text-align:center}.settings-row{display:grid;grid-template-columns:clamp(104px,24vw,168px) 1fr;align-items:center;column-gap:clamp(8px,2vw,20px);row-gap:4px}.settings-row+.settings-row{border-top:2px dashed rgba(191,227,242,.7);padding-top:clamp(8px,1.8vh,16px)}.settings-row-label{font-size:clamp(13px,2.8vmin,18px);color:var(--color-text);text-align:right;line-height:1.3}.settings-row-options{display:flex;flex-wrap:wrap;gap:clamp(6px,1.2vh,10px);justify-content:flex-start}.option-pill{font-size:clamp(13px,2.8vmin,17px);font-weight:700;color:var(--color-text);background:var(--color-card);border:3px solid var(--color-border);border-radius:999px;min-height:40px;padding:clamp(6px,1.2vh,10px) clamp(12px,2vw,20px);cursor:pointer;box-shadow:var(--shadow-button);transition:transform .12s,background .12s,border-color .12s;font-family:inherit;white-space:nowrap}.option-pill:active{transform:var(--press-down);box-shadow:var(--shadow-pressed)}.option-pill.selected{border-color:var(--color-primary);background:var(--color-primary-soft)}.settings-row-desc{grid-column:2;font-size:clamp(11px,2.3vmin,14px);color:var(--color-text-soft);text-align:left}.settings-hint{font-size:clamp(11px,2.4vmin,14px);color:var(--color-text-soft)}.settings-version{font-size:12px;color:#8a7a6d99;margin-top:clamp(4px,1vh,10px)}@media(max-width:640px){.settings-row{grid-template-columns:1fr}.settings-row-label{text-align:left}.settings-row-desc{grid-column:1}}@media(hover:hover)and (pointer:fine){.mode-button:hover{transform:var(--hover-up);background:var(--color-card-blue);box-shadow:0 14px 28px #785a3c24}.home-button:hover,.mute-button:hover{background:var(--color-card-blue);transform:var(--hover-up)}.num-button:hover:enabled,.shape-button:hover:enabled,.size-button:hover:enabled,.pattern-option:hover:enabled,.hira-button:hover:enabled{background:var(--color-card-blue);transform:var(--hover-up)}.color-button:hover:enabled{transform:scale(1.06)}.speak-button:hover:enabled{background:var(--color-primary-soft);transform:var(--hover-up)}.next-button:hover{background:var(--color-primary-soft);transform:var(--hover-up)}.goal-home:hover{background:var(--color-primary-soft)}.option-pill:hover{transform:var(--hover-up);background:var(--color-card-blue)}.option-pill.selected:hover{background:var(--color-primary-soft)}.reset-button:hover{background:#8a7a6d14}.sticker-mode-button:hover{background:var(--color-primary)}.settings-mode-button:hover{background:#efe6d9}}@media(max-width:640px){.app{padding-top:clamp(8px,1.6vh,16px)}.mode-button{width:clamp(150px,46vw,180px)}.buttons{gap:clamp(10px,3.4vw,20px)}.num-button{width:clamp(64px,23vw,96px);height:clamp(64px,23vw,96px);font-size:clamp(32px,11vw,48px)}.num-many{flex-wrap:wrap;gap:clamp(8px,2.4vw,12px)}.num-many .num-button{width:clamp(52px,16vw,72px);height:clamp(52px,16vw,72px);font-size:clamp(26px,8vw,36px)}.color-button{width:clamp(60px,20vw,96px);height:clamp(60px,20vw,96px)}.color-swatch{width:clamp(64px,22vw,110px);height:clamp(64px,22vw,110px)}.shape-button{width:clamp(88px,27vw,130px)}.hira-button{width:clamp(96px,33vw,140px);height:clamp(96px,33vw,140px);font-size:clamp(56px,20vw,84px)}.hira-button.hira-small{font-size:clamp(38px,13vw,58px)}.pattern-option{width:clamp(84px,29vw,120px)}.pattern-option-emoji{font-size:clamp(38px,13vw,60px)}.pattern-cell{font-size:clamp(24px,8vw,40px)}.shape-svg{width:clamp(48px,14vw,72px);height:clamp(48px,14vw,72px)}.size-buttons{gap:clamp(10px,4vw,40px)}.size-button{width:clamp(120px,40vw,200px);height:clamp(120px,40vw,190px)}.size-emoji-big{font-size:clamp(76px,26vw,130px)}.size-easy .size-emoji-big{font-size:clamp(86px,30vw,150px)}.size-hard .size-emoji-big{font-size:clamp(64px,22vw,110px)}.goal-buttons{flex-direction:column;align-items:stretch}}body.assist-on .buttons{gap:clamp(16px,4vmin,34px)}body.assist-on .num-button{width:clamp(76px,19vmin,124px);height:clamp(76px,19vmin,124px);font-size:clamp(38px,9.5vmin,62px)}body.assist-on .num-many{gap:clamp(6px,min(1.6vh,1vw),14px)}body.assist-on .num-many .num-button{width:clamp(56px,min(11.5vh,7.9vw),86px);height:clamp(56px,min(11.5vh,7.9vw),86px);font-size:clamp(28px,min(6vh,4vw),44px)}body.assist-on .color-button{width:clamp(76px,20vmin,124px);height:clamp(76px,20vmin,124px)}body.assist-on .hira-button{width:clamp(112px,27vmin,168px);height:clamp(112px,27vmin,168px);font-size:clamp(68px,17vmin,100px)}body.assist-on .hira-button.hira-small{font-size:clamp(48px,12vmin,70px)}body.assist-on .shape-button{width:clamp(108px,26vmin,168px)}body.assist-on .shape-svg{width:clamp(60px,15vmin,100px);height:clamp(60px,15vmin,100px)}body.assist-on .size-button{width:clamp(140px,37vmin,265px);height:clamp(140px,34vmin,240px)}body.assist-on .next-button{font-size:clamp(24px,6vmin,36px);padding:clamp(12px,2.4vh,18px) clamp(28px,8vmin,54px)}@media(max-width:640px){body.assist-on .buttons{gap:clamp(12px,3.6vw,22px)}body.assist-on .num-button{width:clamp(68px,25vw,104px);height:clamp(68px,25vw,104px);font-size:clamp(34px,12vw,52px)}body.assist-on .num-many{flex-wrap:wrap;gap:clamp(8px,2.4vw,12px)}body.assist-on .num-many .num-button{width:clamp(54px,17vw,76px);height:clamp(54px,17vw,76px);font-size:clamp(27px,8.5vw,38px)}body.assist-on .color-button{width:clamp(64px,22vw,104px);height:clamp(64px,22vw,104px)}body.assist-on .shape-button{width:clamp(92px,29vw,140px)}body.assist-on .size-button{width:clamp(126px,42vw,210px);height:clamp(126px,42vw,200px)}}.key-focus{box-shadow:0 0 0 6px #5a8fa88c,var(--shadow-button)!important;transform:var(--hover-up)}.assist-pill{min-height:48px;min-width:84px}button:focus-visible{outline:4px solid var(--color-retry);outline-offset:2px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
