:root{--bg: #fff7e0;--ink: #33261d;--accent: #ffb703;--accent2: #fb8500;--ok: #2a9d8f;--blue: #219ebc;--pink: #ef476f;--soft: #ffe8a8;--font: ui-rounded, "SF Pro Rounded", "Arial Rounded MT Bold", "Avenir Next", "Nunito", system-ui, sans-serif;--safe-t: env(safe-area-inset-top, 0px);--safe-b: env(safe-area-inset-bottom, 0px);--safe-l: env(safe-area-inset-left, 0px);--safe-r: env(safe-area-inset-right, 0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%;overflow:hidden;overscroll-behavior:none;background:var(--bg);color:var(--ink);font-family:var(--font)}body{position:fixed;inset:0;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:manipulation}#app{position:absolute;inset:0;padding:calc(var(--safe-t) + 10px) calc(var(--safe-r) + 14px) calc(var(--safe-b) + 10px) calc(var(--safe-l) + 14px)}button{font-family:inherit;color:inherit;border:0;cursor:pointer;touch-action:manipulation}.screen{height:100%;display:flex;flex-direction:column;align-items:center;gap:2vmin}.screen.enter{animation:fade .3s ease}@keyframes fade{0%{opacity:0;transform:scale(.98)}}body:before{content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle at 10% 15%,#ffd16655 0 9vmin,transparent 9.2vmin),radial-gradient(circle at 92% 80%,#8ecae655 0 14vmin,transparent 14.2vmin),radial-gradient(circle at 85% 12%,#ef476f22 0 6vmin,transparent 6.2vmin)}.icon-btn{width:15vmin;height:15vmin;min-width:76px;min-height:76px;border-radius:28%;font-size:8vmin;background:#fff;box-shadow:0 .8vmin #e9c46a,0 1.4vmin 2.4vmin #0001;display:grid;place-items:center;transition:transform .1s}.icon-btn:active,.tile:active,.play-btn:active,.start-btn:active{transform:translateY(.6vmin) scale(.97)}.icon-btn.small{width:10vmin;height:10vmin;min-width:64px;min-height:64px;font-size:5vmin}.icon-btn.big{width:20vmin;height:20vmin;font-size:11vmin}.icon-btn.go{background:var(--ok);box-shadow:0 .8vmin #1d7068}.icon-btn.locked{opacity:.55}.start{justify-content:center;gap:4vmin}.logo{display:flex;gap:2vmin;font-size:16vmin;font-weight:900}.logo-l{display:inline-block;animation:bob 2s ease-in-out infinite;text-shadow:0 1vmin 0 #0002}.l0{color:var(--pink)}.l1{color:var(--blue);animation-delay:.2s}.l2{color:var(--accent2);animation-delay:.4s}.start-btn{font-size:8vmin;font-weight:900;padding:3vmin 8vmin;border-radius:99px;background:var(--ok);color:#fff;box-shadow:0 1.2vmin #1d7068;display:flex;align-items:center;gap:3vmin;animation:pulse 1.6s ease-in-out infinite}.start-icon{font-size:7vmin}@keyframes pulse{50%{transform:scale(1.06)}}@keyframes bob{50%{transform:translateY(-1.5vmin)}}.guide{position:relative;display:flex;align-items:center;gap:2vmin}.guide-face{font-size:18vmin;line-height:1;animation:bob 2.4s ease-in-out infinite;filter:drop-shadow(0 1vmin 1vmin #0002)}.guide.big .guide-face{font-size:26vmin}.guide.small{position:fixed;left:calc(var(--safe-l) + 1.5vmin);bottom:calc(var(--safe-b) + 1vmin);pointer-events:none}.guide.small .guide-face{font-size:11vmin}.guide.jump .guide-face{animation:jump .6s ease}@keyframes jump{30%{transform:translateY(-5vmin) rotate(-10deg) scale(1.15)}60%{transform:translateY(0) rotate(8deg)}}.bubble{background:#fff;border-radius:3vmin;padding:1.5vmin 2.5vmin;font-size:3.5vmin;box-shadow:0 .6vmin 1.4vmin #0002}.bubble:empty{display:none}.picker{justify-content:center}.picker-title{font-size:12vmin}.guides{display:grid;grid-template-columns:repeat(3,auto);gap:3vmin}.guide-pick{font-size:15vmin;width:24vmin;height:24vmin;border-radius:30%;background:#fff;box-shadow:0 1vmin #e9c46a}.guide-pick:active{transform:scale(.95)}.home{justify-content:space-between}.home-top{width:100%;display:flex;justify-content:space-between;align-items:center}.stars-count{font-size:5vmin;font-weight:900;background:#fff;padding:1vmin 3vmin;border-radius:99px;box-shadow:0 .5vmin #e9c46a}.home-center{display:flex;align-items:center;gap:6vmin}.play-btn{width:30vmin;height:30vmin;border-radius:50%;font-size:14vmin;color:#fff;background:radial-gradient(circle at 35% 30%,#48cae4,var(--blue));box-shadow:0 1.6vmin #126782,0 2vmin 4vmin #0003;animation:pulse 1.8s ease-in-out infinite;padding-left:3vmin}.home-row{display:flex;gap:5vmin}.home-games{display:flex;gap:3vmin;padding-bottom:1vmin}.gate-btn{position:relative;width:64px;height:64px;border-radius:50%;font-size:26px;background:#fff8;opacity:.7}.gate-ring{position:absolute;inset:0;border-radius:50%;background:conic-gradient(var(--accent2) 0%,transparent 0%)}.gate-btn.holding .gate-ring{animation:ring 3s linear forwards}@property --p{syntax: "<percentage>"; inherits: false; initial-value: 0%;}@keyframes ring{0%{--p: 0%}to{--p: 100%}}.gate-btn.holding .gate-ring{background:conic-gradient(#fb850088 var(--p),transparent var(--p))}.topbar{width:100%;display:flex;justify-content:space-between;align-items:center}.dots{display:flex;gap:1.2vmin}.dot{width:2.6vmin;height:2.6vmin;border-radius:50%;background:#0001}.dot.on{background:var(--accent);box-shadow:0 0 0 .4vmin #fff}.game-area{flex:1;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3vmin;min-height:0}.game-title{font-size:4.5vmin;font-weight:800;opacity:.75}.tiles{display:flex;gap:3.5vmin;flex-wrap:wrap;justify-content:center}.tile{width:20vmin;height:20vmin;min-width:96px;min-height:96px;border-radius:4vmin;font-size:13vmin;font-weight:900;background:#fff;box-shadow:0 1vmin #e9c46a,0 1.6vmin 3vmin #0001;display:grid;place-items:center;transition:transform .15s,opacity .3s;color:var(--blue)}.tile.wide{width:auto;padding:0 4vmin;min-width:22vmin;font-size:10vmin}.tile.vowel{color:var(--pink)}.tile.fixed{color:var(--blue)}.tile.slot{background:#fff8;border:.8vmin dashed #e9c46a;box-shadow:none;color:var(--pink)}.tile.right{background:#c7f9cc;box-shadow:0 1vmin 0 var(--ok);animation:jump .6s}.tile.dim{opacity:.3;pointer-events:none}.tile.used{opacity:.25;pointer-events:none}.shake{animation:shake .4s}@keyframes shake{20%,60%{transform:translate(-2vmin)}40%,80%{transform:translate(2vmin)}}.pop{animation:popIn .4s ease}@keyframes popIn{0%{transform:scale(.4)}70%{transform:scale(1.2)}}.pic-row{display:flex;align-items:center;gap:5vmin}.picture{font-size:20vmin;line-height:1;background:#fff;border-radius:5vmin;padding:2vmin 3vmin;box-shadow:0 1vmin 2vmin #0001}.picture.big{font-size:26vmin}.picture.small{font-size:10vmin;padding:1vmin 2vmin}.word{font-size:9vmin;font-weight:900;letter-spacing:.5vmin}.word.small{font-size:5vmin}.word .first{color:var(--pink);display:inline-block}.word .hidden-first{color:#fff;background:var(--accent);border-radius:2vmin;padding:0 1.5vmin;margin-right:.5vmin}.word.glow .first{animation:glow 1s ease-in-out 2}@keyframes glow{50%{transform:scale(1.4);text-shadow:0 0 3vmin #ef476f88}}.syl-row{display:flex;align-items:center;gap:2.5vmin}.plus{font-size:8vmin;font-weight:900;opacity:.5}.syl-result{font-size:13vmin;font-weight:900;color:var(--accent2);min-width:24vmin;text-align:center}.trace-wrap{display:flex;align-items:center;gap:4vmin;flex:1;min-height:0;width:100%;justify-content:center}.trace-svg{height:100%;max-height:72vmin;aspect-ratio:1;background:#fff;border-radius:5vmin;box-shadow:0 1vmin 3vmin #0002;touch-action:none;transition:background .3s}.trace-svg.off{background:#fff0f0}.trace-svg.complete{background:#e9fbe9}.trace-pic{display:flex;flex-direction:column;align-items:center;gap:2vmin}.ghost-stroke{fill:none;stroke:#ece4d4;stroke-width:15;stroke-linecap:round;stroke-linejoin:round}.guide-stroke{fill:none;stroke:#8ecae6;stroke-width:2.2;stroke-dasharray:3 4;stroke-linecap:round}.arrow{fill:none;stroke:var(--blue);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.start-dot{fill:#2ec27e;stroke:#fff;stroke-width:1.5}.start-num{fill:#fff;font-size:8px;font-weight:900;text-anchor:middle;font-family:var(--font)}.done-stroke{fill:none;stroke:var(--ok);stroke-width:11;stroke-linecap:round;stroke-linejoin:round;animation:popIn .3s}.ink{fill:none;stroke:var(--pink);stroke-width:7;stroke-linecap:round;stroke-linejoin:round;opacity:.85}.follow{fill:var(--accent);stroke:#fff;stroke-width:1.5;filter:drop-shadow(0 0 2px #0004)}.follow.pulse{animation:popIn .5s 2;transform-box:fill-box;transform-origin:center}.card{display:flex;align-items:center;gap:6vmin;background:#fff;border-radius:6vmin;padding:4vmin 6vmin;box-shadow:0 1.5vmin 4vmin #0002}.card-left,.card-right{display:flex;flex-direction:column;align-items:center;gap:2vmin}.card-letter{background:none;padding:0;width:42vmin;height:42vmin}.letter-svg{width:100%;height:100%}.stroke-ink{fill:none;stroke:var(--blue);stroke-width:13;stroke-linecap:round;stroke-linejoin:round}.stroke-ink.draw{stroke-dasharray:1;stroke-dashoffset:1;animation:draw .7s ease forwards}@keyframes draw{to{stroke-dashoffset:0}}.card-lower{font-size:12vmin;font-weight:800;color:var(--accent2);line-height:1}.card-name{font-size:6vmin;font-weight:800;opacity:.7}.card-actions{display:flex;gap:3vmin;margin-top:1vmin}.letter-grid,.album{flex:1;display:grid;grid-template-columns:repeat(auto-fill,minmax(max(13vmin,84px),1fr));gap:2.5vmin;width:100%;align-content:center;overflow-y:auto;padding:1vmin}.grid-letter{aspect-ratio:1;border-radius:3vmin;font-size:8vmin;font-weight:900;background:#fff;color:var(--blue);box-shadow:0 .8vmin #e9c46a;position:relative}.grid-letter.locked{color:#0002;background:#fff8;box-shadow:none}.grid-letter.mastered{background:#c7f9cc}.grid-letter.foreign{border:.5vmin dashed #8ecae6}.mini-star{position:absolute;top:-1vmin;right:-1vmin;font-size:4vmin}.sticker{aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,#ffe8a8);box-shadow:0 .8vmin #e9c46a,inset 0 0 0 .8vmin #fff;position:relative;display:grid;place-items:center;min-width:84px}.sticker.empty{background:#0000000a;box-shadow:inset 0 0 0 .6vmin #0001}.st-emoji{font-size:7vmin}.st-letter{position:absolute;right:4%;bottom:2%;font-size:4.5vmin;font-weight:900;color:var(--pink);text-shadow:0 0 .6vmin #fff,0 0 .6vmin #fff}.sticker.big{width:40vmin}.sticker.big .st-emoji{font-size:22vmin}.sticker.big .st-letter{font-size:12vmin}.album-count{font-size:5vmin;font-weight:900}.overlay{position:fixed;inset:0;background:#0005;display:grid;place-items:center;z-index:10;animation:fade .3s}.sticker-pop{display:flex;flex-direction:column;align-items:center;animation:popIn .6s}.overlay-title{font-size:12vmin}.end{justify-content:center;gap:4vmin}.end-stars{font-size:7vmin;letter-spacing:1vmin}.end-learned{display:flex;gap:3vmin}.end-learned .sticker{width:20vmin}.burst{position:fixed;z-index:20;font-size:5vmin;pointer-events:none;transform:translate(-50%,-50%);animation:burst .9s ease-out forwards}@keyframes burst{to{transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) scale(.4);opacity:0}}.parents{align-items:stretch;overflow-y:auto;-webkit-user-select:text;user-select:text;font-family:system-ui,sans-serif;font-size:16px}.p-head{display:flex;align-items:center;gap:16px}.p-head h1{margin:0;font-size:24px}.p-close,.p-btn{font-size:16px;padding:12px 18px;border-radius:12px;background:#fff;box-shadow:0 2px 6px #0002;margin:4px 8px 4px 0}.p-btn.danger{color:#b00020}.p-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:24px;padding-bottom:24px}.p-grid section{background:#fff;border-radius:16px;padding:16px 20px}.p-table{width:100%;border-collapse:collapse;font-size:14px}.p-table th,.p-table td{padding:4px 6px;border-bottom:1px solid #0001;text-align:left}.p-table tr.ok{background:#e9fbe9}.p-table tr.muted{opacity:.45}.p-letter{font-weight:900;font-size:18px}.p-level{color:var(--accent2);letter-spacing:2px}.p-toggle{display:flex;gap:10px;align-items:center;padding:8px 0}.p-toggle input{width:22px;height:22px}.p-field{display:flex;flex-direction:column;gap:6px;padding:8px 0}.p-field select{font-size:16px;padding:8px}.p-help{font-size:14px;opacity:.8;line-height:1.45}@media(orientation:portrait){.home-center{flex-direction:column}.card{flex-direction:column;padding:4vmin}.trace-wrap{flex-direction:column}.trace-svg{max-height:60vh;width:90vw;height:auto}.trace-pic{flex-direction:row}}@media(prefers-reduced-motion:reduce){*{animation-duration:.01s!important}}.home .bubble{font-size:5vmin;font-weight:900}.toast{position:fixed;top:calc(var(--safe-t) + 12vmin);left:50%;transform:translate(-50%);z-index:30;background:#fff;color:var(--ok);font-size:6vmin;font-weight:900;padding:1.5vmin 4vmin;border-radius:99px;box-shadow:0 1vmin 2.4vmin #0002;pointer-events:none;animation:toast 1.8s ease forwards;white-space:nowrap}@keyframes toast{0%{opacity:0;transform:translate(-50%,2vmin) scale(.8)}15%,80%{opacity:1;transform:translate(-50%) scale(1)}to{opacity:0}}.name-entry{justify-content:center;gap:3vmin;font-family:system-ui,sans-serif;text-align:center}.ne-title{font-size:5vmin;font-weight:800}.ne-sub{font-size:2.6vmin;opacity:.75;max-width:80vw}.ne-sub.small{font-size:2.2vmin}.name-input{font:900 8vmin var(--font);text-align:center;width:min(80vw,640px);padding:2vmin 3vmin;border-radius:4vmin;border:.8vmin solid #e9c46a;background:#fff;color:var(--blue);outline:none;-webkit-user-select:text;user-select:text}.name-input:focus{border-color:var(--accent2)}.ne-actions{display:flex;gap:3vmin}.ne-btn{font-size:4.5vmin;font-weight:800;padding:2vmin 5vmin;border-radius:99px;background:#fff;box-shadow:0 .8vmin #e9c46a}.ne-btn.ok{background:var(--ok);color:#fff;box-shadow:0 .8vmin #1d7068}.name-letters{display:flex;flex-wrap:wrap;justify-content:center;gap:1.6vmin;max-width:96vw}.name-letter{min-width:13vmin;height:17vmin;padding:0 1.5vmin;border-radius:3vmin;font-size:12vmin;font-weight:900;background:#fff;box-shadow:0 .8vmin #e9c46a;color:var(--blue)}.name-letter.todo{color:#0003;background:#fff9;box-shadow:0 .8vmin #0001}.name-letter.hl{color:#fff;background:var(--pink);box-shadow:0 .8vmin #b5304f;animation:glow 1s ease-in-out 3}.name-gap{width:5vmin}.name-card{display:flex;flex-direction:column;align-items:center;gap:3vmin;background:#fff;border-radius:6vmin;padding:3vmin 5vmin;box-shadow:0 1.5vmin 4vmin #0002}.name-big-letter{font-size:22vmin;font-weight:900;color:var(--pink);line-height:1}.name-card .name-letter{height:14vmin;font-size:10vmin;min-width:10vmin}.card-actions .guide .guide-face{font-size:12vmin}.p-input{font-size:18px;padding:10px 12px;border-radius:10px;border:1px solid #0003;width:100%;max-width:320px;-webkit-user-select:text;user-select:text}body.listening .game-area button,body.listening .game-area .trace-svg,body.listening .game-area .tile,body.listening .game-area .name-letter{filter:grayscale(.55) brightness(.97);opacity:.6;transition:opacity .25s,filter .25s;animation-play-state:paused!important;cursor:default}body.listening .game-area button:active,body.listening .game-area .tile:active{transform:none!important}body.listening .game-area .tile.right{opacity:1;filter:none}body.listening .guide .guide-face{animation-duration:1.2s}.game-area.your-turn button,.game-area.your-turn .tile,.game-area.your-turn .trace-svg,.game-area.your-turn .name-letter{animation:popIn .45s ease}.guide.shh .guide-face{animation:shhNod 1s ease}.guide.shh:after{content:"🤫";position:absolute;top:-4vmin;right:-5vmin;font-size:8vmin;animation:popIn .4s ease}@keyframes shhNod{30%{transform:rotate(-8deg) scale(.95)}60%{transform:rotate(6deg)}}.shh-bubble{position:fixed;z-index:25;font-size:9vmin;pointer-events:none;transform:translate(-50%,-110%);animation:shhFloat 1.1s ease forwards}@keyframes shhFloat{0%{opacity:0;transform:translate(-50%,-80%) scale(.6)}20%{opacity:1;transform:translate(-50%,-110%) scale(1)}to{opacity:0;transform:translate(-50%,-160%)}}.calm{margin:10px 0 4px;padding:10px 12px;background:#f4fbf6;border-radius:12px}.calm h3{margin:0 0 6px;font-size:16px}.calm-line{display:grid;grid-template-columns:130px 1fr auto;gap:10px;align-items:center;padding:4px 0;font-size:14px}.calm-bar{height:10px;background:#0001;border-radius:99px;overflow:hidden}.calm-bar span{display:block;height:100%;background:var(--ok);border-radius:99px}.mode-row{flex:1;display:flex;gap:5vmin;align-items:center;justify-content:center;flex-wrap:wrap}.mode-card{width:38vmin;min-height:40vmin;border-radius:6vmin;background:#fff;box-shadow:0 1.2vmin #e9c46a,0 2vmin 4vmin #0001;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2vmin;padding:3vmin}.mode-card:active{transform:translateY(.6vmin)}.mode-card.locked{background:#fff9}.mode-icon{font-size:12vmin}.mode-label{font-size:5vmin;font-weight:900}.mode-progress{display:flex;align-items:center;gap:2vmin;width:100%;font-size:4vmin}.mode-progress .calm-bar{flex:1;height:2.2vmin}.mode-hint{font-size:2.8vmin;opacity:.75;text-align:center}.train-scroll{overflow-x:auto;justify-content:center;align-items:stretch;scrollbar-width:none}.train-scroll::-webkit-scrollbar{display:none}.train{display:flex;align-items:flex-end;gap:1.6vmin;padding:8vmin 45vw 4vmin;width:max-content;position:relative}.train:after{content:"";position:absolute;left:0;right:0;bottom:2.6vmin;height:1vmin;background:repeating-linear-gradient(90deg,#8d6e63 0 3vmin,transparent 3vmin 4.5vmin)}.train.short{padding:4vmin 2vmin}.loco{font-size:22vmin;line-height:1;transform:scaleX(1);margin-right:1vmin}.wagon{position:relative;width:17vmin;height:17vmin;border-radius:2.5vmin 2.5vmin 1.2vmin 1.2vmin;display:grid;place-items:center;margin-bottom:3vmin;box-shadow:inset 0 -1.4vmin #0002;transition:transform .2s,opacity .2s,filter .2s}.wagon-letter{font-size:11vmin;font-weight:900;color:#fff;text-shadow:0 .5vmin 0 #0003}.wheel{position:absolute;bottom:-2.6vmin;width:5vmin;height:5vmin;border-radius:50%;background:#444;border:1vmin solid #999}.w1{left:2vmin}.w2{right:2vmin}.wagon.c0{background:#ef476f}.wagon.c1{background:#ffb703}.wagon.c2{background:#06d6a0}.wagon.c3{background:#219ebc}.wagon.c4{background:#8338ec}.wagon.c5{background:#fb8500}.wagon.pale{filter:saturate(.25) brightness(1.25);opacity:.7}.wagon.on{animation:wagonBounce .5s ease;filter:none;opacity:1;box-shadow:0 0 0 1vmin #fff,0 0 5vmin 2vmin #ffd166,inset 0 -1.4vmin #0002;transform:translateY(-2vmin) scale(1.12);z-index:2}@keyframes wagonBounce{0%{transform:translateY(0) scale(1)}40%{transform:translateY(-5vmin) scale(1.18)}to{transform:translateY(-2vmin) scale(1.12)}}.wagon.gap{background:#fff;border:1vmin dashed #e9c46a}.wagon.gap .wagon-letter{color:var(--accent2);text-shadow:none;animation:pulse 1.4s infinite}.wagon.learned-flash{animation:wagonBounce .6s ease}.song-controls{display:flex;gap:3vmin;align-items:center;padding-bottom:1vmin}.song-controls .icon-btn.sel{background:#ffe8a8;box-shadow:0 .8vmin 0 var(--accent2)}.sticker.special{background:radial-gradient(circle at 35% 30%,#fff,#c3f0ff);box-shadow:0 .8vmin #8ecae6,inset 0 0 0 .8vmin #fff,0 0 3vmin #ffd166}.chi .train{justify-content:center}.tile.hint-glow,.tile.vowel.hint-glow{box-shadow:0 0 0 6px #ffd6408c,0 0 28px 8px #ffd64099;animation:hintglow 1.6s ease-in-out infinite}@keyframes hintglow{50%{box-shadow:0 0 0 10px #ffd64059,0 0 40px 14px #ffd64073}}.update-banner{position:fixed;top:max(10px,env(safe-area-inset-top));left:50%;transform:translate(-50%);z-index:50;display:flex;gap:14px;align-items:center;background:#fff;border-radius:18px;padding:8px 10px 8px 18px;box-shadow:0 6px 20px #0000002e;font:600 17px system-ui,sans-serif;color:#333}.update-banner .p-btn{margin:0}.p-app,.p-backup{background:#f6f8ff;border-radius:14px;padding:4px 14px 10px;margin-bottom:14px}.p-offline{font-weight:600;color:#8a6d00}.p-offline.ok{color:#1b7f3b}.p-update{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.p-update span:first-child:not(.p-muted){font-weight:600}.p-muted{color:#888;font-size:14px}.p-reminder{background:#fff4cc;border-radius:10px;padding:8px 12px;margin:6px 0;font-weight:600}.p-actions{display:flex;gap:10px;flex-wrap:wrap}.p-btn.primary{background:#3d7cf5;color:#fff}.p-dialog-wrap{z-index:60}.p-dialog{background:#fff;border-radius:18px;padding:18px 22px;max-width:460px;width:90%;text-align:left;font-family:system-ui,sans-serif;color:#222}.p-warn{color:#a33;font-size:15px}.screen.parents~.update-banner,body:has(.screen.parents) .update-banner{display:none}.p-credits a{color:#3d7cf5}.progress-stroke{fill:none;stroke:#2ec27e;stroke-width:7;stroke-linecap:round;stroke-linejoin:round;opacity:.85}.start-dot{animation:startPulse 1.6s ease-in-out infinite;transform-box:fill-box;transform-origin:center}.start-dot.pulse{animation:popIn .5s 2}@keyframes startPulse{0%,to{transform:scale(1)}50%{transform:scale(1.18)}}.trace-svg.off{background:#fff6e8;transition:background .3s}.tr-chips{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}.tr-chip{font:800 18px var(--font);width:40px;height:40px;border-radius:10px;border:2px solid #ccd;background:#fff}.tr-chip.on{background:#2ec27e;color:#fff;border-color:#2ec27e}.tr-row{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}.tr-item{margin:0;text-align:center;flex:0 0 auto}.tr-item figcaption{font-size:11px;color:#667;max-width:96px}.tr-thumb{width:84px;height:84px;background:#fff;border-radius:10px;border:1px solid #dde}.tr-ghost{fill:none;stroke:#e3e7ef;stroke-width:10;stroke-linecap:round;stroke-linejoin:round}.tr-ink{fill:none;stroke:#e5487a;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round}.mascot{width:20vmin;aspect-ratio:212 / 248;display:inline-block;flex:0 0 auto}.mascot svg{width:100%;height:100%;overflow:visible;display:block;filter:drop-shadow(0 .8vmin .8vmin #0001)}.mascot.big{width:30vmin}.mascot.small{width:13vmin}.mascot.huge{width:40vmin}.mascot *{transform-box:view-box}.mascot .m-all{transform-origin:100px 236px}.mascot .head{transform-origin:100px 160px}.mascot .eyes{transform-origin:100px 112px;animation:blink 4.2s infinite}.mascot .ear-l{transform-origin:70px 76px}.mascot .ear-r{transform-origin:130px 76px}.mascot .arm-l{transform-origin:66px 176px;transition:transform .3s}.mascot .arm-r{transform-origin:134px 176px;transition:transform .3s}.mascot .holding .arm-l{transform:translate(14px,-6px)}.mascot .holding .arm-r{transform:translate(-14px,-6px)}.mascot .mouth-o,.mascot .sparkles,.mascot .heart{opacity:0}.mascot .sparkles,.mascot .heart{transform-origin:100px 100px;transition:opacity .3s}.mascot.m-idle .m-all,.mascot.m-listen .m-all{animation:mBreath 2.6s ease-in-out infinite}.mascot.m-idle .ear-r{animation:earWiggle 5s ease-in-out infinite}body.speaking .mascot .mouth-o{animation:mTalk .32s steps(1) infinite}body.speaking .mascot .mouth-c{animation:mTalkC .32s steps(1) infinite}body.speaking .mascot .head{animation:mNod .64s ease-in-out infinite}.mascot.m-celebrate .m-all{animation:mJump .7s ease-in-out 3}.mascot.m-celebrate .arm-l{transform:rotate(118deg)}.mascot.m-celebrate .arm-r{transform:rotate(-118deg)}.mascot.m-celebrate .sparkles{opacity:1;animation:spin 2s linear infinite}.mascot.m-encourage .head{transform:rotate(-8deg);transition:transform .3s}.mascot.m-encourage .arm-r{animation:mWave .6s ease-in-out 3}.mascot.m-encourage .heart{opacity:1;animation:mFloat 1.6s ease-in-out infinite}.mascot.m-listen .ear-l{transform:rotate(8deg);transition:transform .3s}.mascot.m-listen .ear-r{transform:rotate(-10deg);transition:transform .3s}.mascot.m-listen .head{transform:rotate(5deg);transition:transform .3s}@keyframes blink{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.1)}}@keyframes mBreath{0%,to{transform:scale(1)}50%{transform:scale(1.02,.985)}}@keyframes earWiggle{0%,80%,to{transform:rotate(0)}85%{transform:rotate(8deg)}90%{transform:rotate(-4deg)}}@keyframes mTalk{0%{opacity:1}50%{opacity:0}}@keyframes mTalkC{0%{opacity:0}50%{opacity:1}}@keyframes mNod{0%,to{transform:rotate(0)}50%{transform:rotate(2deg) translateY(1px)}}@keyframes mJump{0%,to{transform:translateY(0) scale(1)}15%{transform:translateY(0) scale(1.05,.92)}50%{transform:translateY(-22px) scale(.97,1.04)}}@keyframes mWave{0%,to{transform:rotate(0)}50%{transform:rotate(-60deg)}}@keyframes mFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.guide .mascot+.bubble{align-self:center}.guide.small .mascot{width:13vmin}.guide.big .mascot{width:32vmin}@media(prefers-reduced-motion:reduce){.mascot *,.mascot .m-all{animation:none!important}}.guide-face.mascot-face{font-size:0;animation:none;filter:none}.guide.jump .guide-face.mascot-face{animation:none}.twin-top{display:flex;align-items:center;gap:3vmin}.twin-compare{display:flex;align-items:center;gap:2vmin}.twin-card{background:#fff;border-radius:4vmin;padding:1.5vmin 2vmin .5vmin;box-shadow:0 1vmin 2vmin #0001;text-align:center}.twin-svg{width:22vmin;height:23vmin;display:block}.twin-seg{fill:none;stroke:var(--blue);stroke-width:9;stroke-linecap:round;stroke-linejoin:round;transition:stroke .4s}.twin-seg.r-braccio{stroke:#8ecae6}.twin-seg.r-pancia{stroke:var(--pink)}.twin-compare.show-diff .twin-seg.r-diff{stroke:var(--accent2);animation:diffPulse 1s ease-in-out 3}.twin-compare.show-diff .twin-seg.r-pancia{animation:diffPulse 1s ease-in-out 2}.twin-compare.explaining .twin-card{animation:bob 1.4s ease-in-out infinite}.twin-name{font-size:3.4vmin;font-weight:800;opacity:.7}.twin-vs{font-size:8vmin;font-weight:900;color:var(--accent2)}.twin-tiles .tile{width:15vmin;height:15vmin;font-size:11vmin}.twin-tile.lower{font-family:Nunito,Arial Rounded MT Bold,system-ui,sans-serif}@keyframes diffPulse{0%,to{stroke-width:9}50%{stroke-width:14}}.hunt-scene{position:relative;width:min(92vw,150vh);aspect-ratio:16 / 9.4;border-radius:4vmin;overflow:hidden;box-shadow:0 1vmin 3vmin #0002}.hunt-bg{position:absolute;inset:0;width:100%;height:100%}.hunt-item{position:absolute;transform:translate(-50%,-50%) rotate(var(--r, 0deg));font-size:9.5vmin;line-height:1;background:#ffffffb0;border-radius:50%;width:15vmin;height:15vmin;display:grid;place-items:center;box-shadow:0 .8vmin 1.4vmin #0002;transition:transform .2s,background .2s}.hunt-item:active{transform:translate(-50%,-50%) scale(.94)}.hunt-item.found{background:#c7f9cc;box-shadow:0 0 0 1vmin var(--ok),0 .8vmin 1.4vmin #0002;animation:jumpC .6s}.hunt-item.shake{animation:shakeC .45s}.hunt-count{display:flex;gap:2vmin;font-size:6vmin}.hunt-slot{width:9vmin;height:9vmin;border-radius:50%;background:#fff;display:grid;place-items:center;color:#ccc;font-size:6vmin}.hunt-slot.on{background:#c7f9cc}@keyframes jumpC{0%,to{transform:translate(-50%,-50%)}50%{transform:translate(-50%,-65%) scale(1.1)}}@keyframes shakeC{0%,to{transform:translate(-50%,-50%)}25%{transform:translate(-58%,-50%)}75%{transform:translate(-42%,-50%)}}.teach-row{display:flex;align-items:center;gap:4vmin}.teach-bunny{background:none;padding:0}.teach-board{background:#2f5d50;border:1.6vmin solid #a8743e;border-radius:3vmin;padding:2vmin 3vmin;display:flex;align-items:center;gap:2vmin;box-shadow:0 1vmin 2vmin #0002}.teach-board .letter-svg{width:24vmin;height:24vmin}.teach-board .stroke-ink{stroke:#fff}.teach-pic{font-size:12vmin}.teach-mic{display:flex;flex-direction:column;align-items:center;gap:2vmin}.mic-btn{font-size:10vmin;width:20vmin;height:20vmin;border-radius:50%;background:#fff;box-shadow:0 1vmin 0 var(--pink),0 1.6vmin 3vmin #0001}.mic-btn.on{background:#ffe1e8;animation:pulse 1s infinite}.mic-btn.off{opacity:.5}.mic-meter{display:flex;gap:.8vmin;align-items:flex-end;height:6vmin}.mic-meter span{width:1.6vmin;height:30%;background:#e3d6c3;border-radius:1vmin;transition:height .08s,background .08s}.mic-meter span:nth-child(2),.mic-meter span:nth-child(6){height:50%}.mic-meter span:nth-child(3),.mic-meter span:nth-child(5){height:75%}.mic-meter span:nth-child(4){height:100%}.mic-meter span.on{background:var(--ok)}.teach-note{font-size:2.6vmin;opacity:.6}.p-novita summary{font-weight:800;cursor:pointer;margin:.6em 0}.p-novita ul{margin:0;padding-left:1.2em}.p-novita li{margin:.2em 0}.rv-row{display:flex;gap:.8em;align-items:baseline;flex-wrap:wrap;margin:.35em 0}.rv-label{min-width:7.5em;font-weight:700}.rv-item{display:inline-flex;align-items:baseline;gap:.25em;margin-right:.6em}.rv-item small{opacity:.65}.rv-chip{display:inline-grid;place-items:center;min-width:1.8em;height:1.8em;border-radius:.5em;background:#eef2f7;font-weight:900;margin:0 .15em}.rv-chip.weak{background:#ffe1d0;color:#b4541b}.rv-chip.sure{background:#d5f5e3;color:#1e7a4c}.mode-badge{font-weight:900;letter-spacing:.3em;color:var(--pink);background:#fff;border-radius:3vmin;padding:.6vmin 2.4vmin;font-size:3.6vmin}.home-games{gap:2.2vmin;flex-wrap:wrap;justify-content:center}.home-games .icon-btn{width:11.5vmin;height:11.5vmin;min-width:64px;min-height:64px;font-size:6.4vmin}.icon-btn.mode-vowels{display:flex;flex-wrap:wrap;align-content:center;justify-content:center;gap:0 .4vmin;font-size:3.6vmin;font-weight:900;line-height:1.05;padding:0 1vmin}.mode-vowels .mv-a{color:var(--pink)}.mode-vowels .mv-e{color:var(--blue)}.mode-vowels .mv-i{color:var(--accent2)}.mode-vowels .mv-o{color:var(--ok)}.mode-vowels .mv-u{color:#8338ec}.screen.mode-vocali{background:linear-gradient(#fff7e0,#ffeef3)}.guide-pick .guide{pointer-events:none}.guide-pick .mascot{width:16vmin}.sticker-pop .mascot{margin-bottom:-2vmin}.screen.game:has(.twin-top,.teach-row)>.guide.small{display:none}.home .guide .mascot{width:27vmin}.mascot .braid{transform-origin:62px 132px}.mascot.m-idle .braid{animation:braidSway 3.6s ease-in-out infinite}body.speaking .mascot .braid{animation:braidSway 1.3s ease-in-out infinite}.mascot.m-celebrate .braid{transform:rotate(-10deg);transition:transform .3s}.mascot .flakes{opacity:.8;transform-origin:100px 116px;animation:twinkle 3s ease-in-out infinite}.mascot .snow{opacity:0}.mascot.m-celebrate .snow{opacity:1}.mascot.m-celebrate .snow>*{animation:snowFall 1.6s linear infinite}.mascot.m-celebrate .snow>:nth-child(2){animation-delay:-.4s}.mascot.m-celebrate .snow>:nth-child(3){animation-delay:-.8s}.mascot.m-celebrate .snow>:nth-child(4){animation-delay:-1.2s}.mascot.m-celebrate .snow>:nth-child(5){animation-delay:-.6s}.mascot.m-celebrate .snow>:nth-child(6){animation-delay:-1s}.mascot.m-celebrate .tiara{animation:glint .7s ease-in-out 3;transform-origin:100px 56px}@keyframes braidSway{50%{transform:rotate(5deg)}}@keyframes twinkle{50%{opacity:.35}}@keyframes snowFall{0%{transform:translateY(-14px);opacity:0}20%{opacity:1}to{transform:translateY(70px);opacity:0}}@keyframes glint{50%{transform:scale(1.12)}}
