:root{--ink:#34454a;--ivory:#fff9ef;--paper:#fff;--muted:#8a979b;--line:#e6dccb;--correct:#4fa66a;--prompt:#4c9f9b;--gold:#e8b94f;--pad:max(16px, 2.4vmin)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{overscroll-behavior:none;height:100%;margin:0;overflow:hidden}body{background:var(--ivory);color:var(--ink);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-text-size-adjust:100%;font-family:Nunito,ui-rounded,Avenir Next,system-ui,sans-serif}button{font:inherit;color:inherit;-webkit-touch-callout:none}img{-webkit-user-drag:none;-webkit-user-select:none;user-select:none}.fi-screen{padding:max(var(--pad), env(safe-area-inset-top)) max(var(--pad), env(safe-area-inset-right)) max(var(--pad), env(safe-area-inset-bottom)) max(var(--pad), env(safe-area-inset-left));background:radial-gradient(ellipse at 50% 18%, var(--glow) 0 30%, transparent 70%), var(--ivory);touch-action:none;grid-template-rows:auto auto minmax(0,1fr) auto;justify-items:center;display:grid;position:fixed;inset:0}.fi-adult{width:100%;color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;font-size:15px;font-weight:700;display:flex}.fi-adult-left,.fi-adult-right{align-items:center;gap:12px;display:flex}.fi-count{font-variant-numeric:tabular-nums;gap:14px;margin:0;display:flex}.fi-count strong{font-weight:800}.fi-adult-button{border:1.5px solid var(--line);background:var(--control-fill);min-width:64px;min-height:44px;color:var(--muted);white-space:nowrap;cursor:pointer;touch-action:manipulation;border-radius:12px;padding:8px 14px;font-size:14px;font-weight:700;position:relative;overflow:hidden}.fi-adult-button:disabled{opacity:.45}.fi-level{white-space:nowrap}.fi-level strong{color:var(--ink);font-weight:800}.fi-reset{isolation:isolate}.fi-reset-fill{z-index:-1;background:var(--hold-fill);transform-origin:0;position:absolute;inset:0;transform:scaleX(0)}.fi-reset[data-holding=true] .fi-reset-fill{transition:transform 1s linear;transform:scaleX(1)}.fi-listen{justify-content:center;margin:clamp(10px,2vmin,20px) 0 clamp(6px,1.4vmin,14px);display:flex}.fi-say{background:var(--prompt);box-shadow:0 7px 0 var(--prompt-deep);color:#fff;cursor:pointer;touch-action:manipulation;border:0;border-radius:999px;justify-content:center;align-items:center;gap:14px;width:clamp(72px,11vmin,104px);height:clamp(72px,11vmin,104px);display:inline-flex}.fi-say:active{box-shadow:0 2px 0 var(--prompt-deep);transform:translateY(5px)}.fi-say:focus-visible{outline:6px solid var(--gold);outline-offset:6px}.fi-speaker{fill:#fff;stroke:#fff;stroke-width:4px;stroke-linecap:round;stroke-linejoin:round;width:52%;max-width:52px;height:auto}.fi-array{width:100%;height:100%;position:relative}.fi-choice{padding:calc(var(--size) * .06);border:4px solid var(--card-line);background:var(--paper);box-shadow:0 8px 0 var(--card-ledge), 0 12px 22px var(--drop);cursor:pointer;touch-action:none;border-radius:14%;outline:none;grid-template:minmax(0,1fr)/minmax(0,1fr);place-items:stretch stretch;margin:0;transition:transform .11s cubic-bezier(.2,.8,.2,1),box-shadow .11s,opacity .2s,border-color .15s;display:grid;position:absolute}.fi-choice img{object-fit:contain;pointer-events:none;width:100%;height:100%;min-height:0;display:block}.fi-choice[data-pressed=true]{box-shadow:0 3px 0 var(--card-ledge), 0 6px 12px var(--drop);transform:translateY(6px)scale(.96)}.fi-choice:focus-visible{outline:6px solid var(--gold);outline-offset:6px}.fi-choice[data-state=correct]{z-index:1;border-color:var(--correct);box-shadow:0 0 0 8px #4fa66a47, 0 8px 0 var(--correct-ledge);animation:.52s cubic-bezier(.3,1.6,.5,1) fi-bounce}.fi-choice[data-state=wrong]{opacity:.4;animation:.42s ease-in-out fi-shake}.fi-screen[data-phase=prompt] .fi-choice[data-state=wrong],.fi-screen[data-phase=prompt] .fi-choice[data-state=idle]{opacity:.4}.fi-choice[data-state=prompt]{z-index:1;border-color:var(--prompt);animation:1.1s ease-in-out infinite fi-pulse}.fi-burst{pointer-events:none;width:36%;animation:.6s cubic-bezier(.3,1.6,.5,1) both fi-pop;position:absolute;top:-12%;right:-10%}.fi-star{width:100%;height:auto;display:block}.fi-star path{fill:var(--gold);stroke:var(--ink);stroke-width:6px;stroke-linejoin:round}.fi-progress{gap:10px;margin:calc(8px + clamp(10px,2vmin,20px)) 0 0;display:flex}.fi-progress span{background:var(--track);border-radius:50%;width:14px;height:14px;transition:background .2s}.fi-progress span[data-filled=true]{background:var(--gold)}.fi-done{text-align:center;flex-direction:column;grid-row:2/-1;justify-content:center;align-items:center;display:flex}.fi-stars{gap:clamp(8px,2vmin,20px);margin-bottom:clamp(8px,2vmin,20px);display:flex}.fi-stars .fi-star{width:clamp(80px,14vmin,150px);animation:.6s cubic-bezier(.3,1.6,.5,1) both fi-pop}.fi-stars .fi-star:nth-child(2){width:clamp(100px,18vmin,190px);animation-delay:.12s}.fi-stars .fi-star:nth-child(3){animation-delay:.24s}.fi-done h1{margin:0;font-size:clamp(56px,10vmin,110px);font-weight:800;line-height:1.05}.fi-round-score{color:var(--muted);margin:10px 0 clamp(20px,4vmin,40px);font-size:18px;font-weight:700}.fi-play-again{background:var(--prompt);min-width:260px;min-height:88px;box-shadow:0 8px 0 var(--prompt-deep);color:#fff;cursor:pointer;touch-action:manipulation;border:0;border-radius:999px;padding:0 44px;font-size:clamp(28px,4.4vmin,40px);font-weight:800}.fi-play-again:active{box-shadow:0 2px 0 var(--prompt-deep);transform:translateY(6px)}.fi-done-links{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:clamp(18px,3vmin,28px);display:flex}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.fi-log-backdrop{z-index:10;background:var(--backdrop);touch-action:none;justify-content:flex-end;display:flex;position:fixed;inset:0}.fi-log{width:min(460px,100vw);height:100%;padding:max(20px, env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) max(20px, env(safe-area-inset-bottom)) 20px;background:var(--paper);flex-direction:column;animation:.18s ease-out fi-slide-in;display:flex;box-shadow:-10px 0 30px #34454a29}.fi-log-header{border-bottom:1.5px solid var(--line);justify-content:space-between;align-items:flex-start;gap:16px;padding-bottom:14px;display:flex}.fi-log-header h2{margin:0;font-size:26px;font-weight:800}.fi-log-header p{color:var(--muted);margin:4px 0 0;font-size:15px;font-weight:700}.fi-log-empty{color:var(--muted);text-align:center;margin:28px 0;font-size:17px;font-weight:700}.fi-log-list{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y;flex:1;margin:0;padding:0;list-style:none;overflow-y:auto}.fi-log-row{border-bottom:1px solid var(--row-line);grid-template-columns:28px 48px 1fr auto;grid-template-areas:"number picture word result""number picture meta meta";align-items:center;column-gap:12px;padding:12px 4px;display:grid}.fi-log-number{color:var(--muted);text-align:right;grid-area:number;font-size:14px;font-weight:700}.fi-log-row img{background:var(--ivory);object-fit:contain;border-radius:10px;grid-area:picture;width:48px;height:48px}.fi-log-word{grid-area:word;font-size:20px;font-weight:800}.fi-log-result{flex-direction:column;grid-area:result;align-items:flex-end;font-size:16px;font-weight:800;display:flex}.fi-log-result small{color:var(--muted);font-size:13px;font-weight:700}.fi-log-row[data-result=correct] .fi-log-result{color:var(--text-correct)}.fi-log-row[data-result=incorrect] .fi-log-result{color:var(--text-incorrect)}.fi-log-row[data-result=skipped] .fi-log-result{color:var(--muted)}.fi-log-meta{color:var(--muted);grid-area:meta;font-size:13px;font-weight:600}@media (width<=760px){.fi-adult-left{flex-wrap:wrap}.fi-adult-button{padding:8px 10px;font-size:13px}}@keyframes fi-bounce{0%{transform:scale(1)}40%{transform:scale(1.07)}to{transform:scale(1)}}@keyframes fi-shake{0%,to{transform:translate(0)}20%{transform:translate(-10px)}40%{transform:translate(9px)}60%{transform:translate(-6px)}80%{transform:translate(4px)}}@keyframes fi-pulse{0%,to{box-shadow:0 0 0 0 #4c9f9b59, 0 8px 0 var(--prompt-ledge);transform:scale(1)}50%{box-shadow:0 0 0 14px #4c9f9b33, 0 8px 0 var(--prompt-ledge);transform:scale(1.04)}}@keyframes fi-pop{0%{opacity:0;transform:scale(.3)rotate(-20deg)}to{opacity:1;transform:none}}@keyframes fi-slide-in{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.fi-choice,.fi-choice[data-state],.fi-burst,.fi-stars .fi-star,.fi-log{transition:none;animation:none!important}.fi-choice[data-state=prompt]{box-shadow:0 0 0 10px #4c9f9b47, 0 8px 0 var(--prompt-ledge)}}.mi-sample{flex-direction:column;align-items:center;gap:clamp(4px,.8vmin,8px);margin:clamp(8px,1.6vmin,16px) 0 clamp(10px,2vmin,20px);display:flex}.mi-sample img{border:4px solid var(--panel-line);background:var(--paper);width:clamp(110px,19vmin,210px);height:clamp(110px,19vmin,210px);box-shadow:0 8px 0 var(--panel-ledge);object-fit:contain;border-radius:clamp(28px,4vmin,44px);padding:clamp(8px,1.4vmin,16px);animation:.24s ease-out aba-rise-in;display:block}.mi-hint{color:var(--muted);margin:0;font-size:14px;font-weight:700}@media (prefers-reduced-motion:reduce){.mi-sample img{animation:none}}.si-screen{grid-template-rows:auto minmax(0,1fr) auto}.si-stage{grid-template-rows:minmax(0,1fr) auto;gap:clamp(12px,2.4vmin,28px);width:100%;min-height:0;padding-top:clamp(8px,1.6vmin,16px);display:grid}.si-item-area{flex-direction:column;justify-content:center;align-items:center;gap:clamp(6px,1vmin,10px);min-height:0;display:flex}.si-item{--size:clamp(130px, 26vmin, 250px);z-index:2;width:var(--size);height:var(--size);padding:calc(var(--size) * .06);border:4px solid var(--card-line);background:var(--paper);box-shadow:0 8px 0 var(--card-ledge), 0 12px 22px var(--drop);cursor:grab;touch-action:none;border-radius:14%;transition:translate .24s cubic-bezier(.2,.8,.2,1),scale .16s,box-shadow .16s;animation:.24s ease-out aba-rise-in;position:relative}.si-item img{object-fit:contain;pointer-events:none;width:100%;height:100%;display:block}.si-item[data-dragging=true]{cursor:grabbing;box-shadow:0 14px 0 var(--card-ledge), 0 22px 36px var(--drop);transition:scale .16s,box-shadow .16s;scale:1.05}.si-item[data-flying=true]{opacity:0;transition:translate .38s cubic-bezier(.3,.9,.4,1),scale .38s ease-in,opacity .2s ease-in .22s;scale:.3}.si-bins{justify-content:center;gap:clamp(12px,3vmin,32px);width:100%;display:flex}.si-bin{border:4px solid var(--panel-line);background:var(--prompt-wash);min-width:0;max-width:380px;min-height:clamp(190px,31vmin,300px);box-shadow:0 8px 0 var(--panel-ledge), 0 12px 22px var(--drop);cursor:pointer;touch-action:none;border-radius:clamp(24px,3.6vmin,40px);outline:none;flex:1 1 0;grid-template-rows:auto auto 1fr;place-items:start center;gap:clamp(6px,1vmin,12px);padding:clamp(12px,2vmin,20px) clamp(10px,1.6vmin,16px);transition:transform .11s cubic-bezier(.2,.8,.2,1),box-shadow .11s,border-color .15s,opacity .2s,scale .15s;display:grid;position:relative}.si-example{border:3px solid var(--card-line);background:var(--paper);border-radius:16%;width:clamp(84px,15vmin,150px);height:clamp(84px,15vmin,150px);padding:6%;display:block}.si-example img,.si-pile img{object-fit:contain;pointer-events:none;width:100%;height:100%;display:block}.si-label{text-align:center;overflow-wrap:anywhere;font-size:clamp(16px,2.4vmin,24px);font-weight:800;line-height:1.15}.si-screen[data-labels=words] .si-bin{grid-template-rows:minmax(0,1fr) auto;align-items:center}.si-screen[data-labels=words] .si-label{font-size:clamp(28px,5vmin,52px)}.si-pile{flex-wrap:wrap;justify-content:center;gap:4px;min-height:clamp(36px,5.4vmin,52px);display:flex}.si-pile img{border:2px solid var(--card-line);background:var(--paper);border-radius:10px;width:clamp(36px,5.4vmin,52px);height:clamp(36px,5.4vmin,52px);padding:3px;animation:.32s cubic-bezier(.3,1.6,.5,1) both fi-pop}.si-bin[data-pressed=true]{box-shadow:0 3px 0 var(--panel-ledge), 0 6px 12px var(--drop);transform:translateY(6px)scale(.98)}.si-bin:focus-visible{outline:6px solid var(--gold);outline-offset:6px}.si-bin[data-over=true]{border-color:var(--prompt);scale:1.03}.si-bin[data-state=correct]{border-color:var(--correct);box-shadow:0 0 0 8px #4fa66a47, 0 8px 0 var(--correct-ledge)}.si-bin[data-state=wrong]{animation:.42s ease-in-out fi-shake}.si-screen[data-phase=prompt] .si-bin[data-state=wrong],.si-screen[data-phase=prompt] .si-bin[data-state=idle]{opacity:.45}.si-bin[data-state=prompt]{border-color:var(--prompt);animation:1.1s ease-in-out infinite fi-pulse}.si-bin .fi-burst{width:clamp(48px,8vmin,80px);top:-8%;right:-4%}@media (prefers-reduced-motion:reduce){.si-item,.si-item[data-flying=true],.si-pile img,.si-bin{transition:none;animation:none}}
