@font-face{font-family:Andika;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/andika-latin-400-normal-BTFTIZb-.woff2)format("woff2"),url(/assets/andika-latin-400-normal-BK42By1L.woff)format("woff")}@font-face{font-family:Andika;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/andika-latin-ext-400-normal-D580Nkki.woff2)format("woff2"),url(/assets/andika-latin-ext-400-normal-NXfvB_tZ.woff)format("woff")}@font-face{font-family:Andika;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/andika-latin-700-normal-Dk95f5lc.woff2)format("woff2"),url(/assets/andika-latin-700-normal-CAUSQC6x.woff)format("woff")}@font-face{font-family:Andika;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/andika-latin-ext-700-normal-Ch3SGZaH.woff2)format("woff2"),url(/assets/andika-latin-ext-700-normal-DBt0PRsd.woff)format("woff")}:root{--k:1;--sand:#f6d35c;--sky:#9adbf5;--brown:#4a2e1e;--green:#5fb65a;--coral:#f27a5e;--pink:#f49ac1;--white:#fffdf7;--shadow:#4a2e1e38}*,:before,:after{box-sizing:border-box}html,body{background:var(--sand);height:100%;margin:0;overflow:hidden}body{width:100%;color:var(--brown);touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;font-family:Andika,Trebuchet MS,sans-serif;position:fixed;inset:0}img,svg{-webkit-user-drag:none;-webkit-user-select:none;user-select:none;pointer-events:none;display:block}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:0 0;border:0;margin:0;padding:0}#app{position:absolute;inset:0;overflow:hidden}#backdrop{position:absolute;inset:0}#backdrop img{object-fit:cover;width:100%;height:100%}#stage{width:1080px;height:810px;transform:translate(-50%, -50%) scale(var(--k));transform-origin:50%;touch-action:none;position:absolute;top:50%;left:50%;overflow:hidden}#stage *{touch-action:none}.btn-icon{background:var(--white);width:96px;height:96px;box-shadow:0 5px 0 var(--shadow);border-radius:28px;place-items:center;display:grid;position:absolute}.btn-icon img,.btn-icon svg{object-fit:contain;width:72px;height:72px;transition:transform .1s ease-out}.btn-icon.pressed img,.btn-icon.pressed svg{transform:scale(.88)}.btn-maison{top:28px;left:24px}.btn-repeter{top:28px;right:24px}.btn-parent{border-radius:24px;width:80px;height:80px;bottom:24px;right:24px}.btn-parent img{width:60px;height:60px}.btn-parent .ring{background:conic-gradient(var(--green) calc(var(--p,0) * 1turn), transparent 0);opacity:0;pointer-events:none;border-radius:50%;position:absolute;inset:-8px;-webkit-mask:radial-gradient(circle,#0000 64%,#000 66%);mask:radial-gradient(circle,#0000 64%,#000 66%)}.btn-parent.holding .ring{opacity:1}.btn-parent.invite img{animation:1.6s ease-in-out infinite pulse}.profil-cards{flex-wrap:wrap;place-content:center;gap:24px;min-height:484px;display:flex;position:absolute;top:148px;left:92px;right:92px}.profil-card{background:var(--white);width:200px;height:230px;box-shadow:0 6px 0 var(--shadow);border-radius:36px;flex-direction:column;justify-content:center;align-items:center;gap:4px;display:flex;position:relative}.profil-card img{object-fit:contain;width:150px;height:150px;transition:transform .1s ease-out}.profil-card .card-companion{object-fit:contain;width:92px;height:92px;position:absolute;bottom:38px;right:-18px}.profil-card .card-companion.egg-waiting{width:76px;height:76px;animation:2.4s ease-in-out infinite egg-rock;right:-10px}.profil-card .prenom{font-size:30px;font-weight:700;line-height:1.1}.profil-card.pressed img{transform:scale(.92)}.avatar-large{object-fit:contain;width:320px;height:320px;position:absolute;top:50%;left:50%;transform:translate(-50%,-55%)}.nola-carte{transform-origin:bottom;height:340px;animation:3.2s ease-in-out infinite breathe;position:absolute;bottom:0;right:60px}.overlay{background:#4a2e1e59;place-items:center;display:grid;position:absolute;inset:0}.double-choice{background:var(--white);box-shadow:0 8px 0 var(--shadow);border-radius:48px;gap:48px;padding:40px;display:flex}.double-choice button{width:200px;height:200px;box-shadow:0 6px 0 var(--shadow);background:#fff;border-radius:40px;place-items:center;display:grid}.double-choice button img,.double-choice button svg{object-fit:contain;width:140px;height:140px;transition:transform .1s ease-out}.double-choice button.pressed img,.double-choice button.pressed svg{transform:scale(.9)}#rotate{z-index:50;background:var(--sky);align-content:center;place-items:center;gap:4vh;display:none;position:fixed;inset:0}#rotate img{width:40vw;animation:2.4s ease-in-out infinite tilt}#rotate svg{width:18vw}@media (orientation:portrait){#rotate{display:grid}#stage{visibility:hidden}}#tts-banner{z-index:60;padding:4px 8px;padding-top:max(4px, env(safe-area-inset-top));color:#fff;text-align:center;pointer-events:none;background:#c0392b;font-size:14px;position:fixed;top:0;left:0;right:0}.adult-panel{z-index:40;-webkit-overflow-scrolling:touch;background:var(--white);color:var(--brown);touch-action:pan-y;padding:max(24px, env(safe-area-inset-top)) 32px max(32px, env(safe-area-inset-bottom));font-size:19px;line-height:1.45;position:fixed;inset:0;overflow:auto}.adult-panel h1{margin:0 0 16px;font-size:30px}.adult-panel h2{margin:28px 0 10px;font-size:23px}.adult-panel p{margin:6px 0}.adult-panel ol{padding-left:26px}.adult-panel li{margin:6px 0}.adult-panel .actions{flex-wrap:wrap;gap:12px;margin:16px 0;display:flex}.adult-button{background:var(--green);color:#fff;min-height:52px;box-shadow:0 4px 0 var(--shadow);border-radius:14px;padding:10px 22px;font-size:19px;font-weight:700}.adult-button.secondary{color:var(--brown);border:2px solid var(--brown);background:#fff}.adult-button.danger{background:var(--coral)}.adult-button:active{box-shadow:0 2px 0 var(--shadow);transform:translateY(2px)}.profil-list{flex-direction:column;gap:10px;display:flex}.profil-row{background:#fff5d6;border-radius:16px;align-items:center;gap:16px;padding:10px 14px;display:flex}.profil-row img{object-fit:contain;width:64px;height:64px}.profil-row .name{flex:1;font-weight:700}.form{background:#fff5d6;border-radius:18px;gap:14px;max-width:720px;padding:18px;display:grid}.form label{gap:6px;display:grid}.form input[type=text]{font:inherit;border:2px solid var(--brown);-webkit-user-select:text;user-select:text;background:#fff;border-radius:12px;padding:10px 14px;font-size:22px}.form select{font:inherit;border:2px solid var(--brown);background:#fff;border-radius:10px;padding:8px 10px;font-size:19px}.adult-panel h3{margin:18px 0 6px;font-size:20px}.form .error{color:#c0392b;font-weight:700}.choice-row{flex-wrap:wrap;gap:10px 22px;display:flex}.choice-row label{align-items:center;gap:8px;display:flex}.choice-row input{width:24px;height:24px}.avatar-grid{flex-wrap:wrap;gap:10px;display:flex}.avatar-grid button{background:#fff;border:3px solid #0000;border-radius:18px;place-items:center;width:96px;height:96px;display:grid}.avatar-grid button img{object-fit:contain;width:80px;height:80px}.avatar-grid button.chosen{border-color:var(--green);background:#eaf7e8}.device-state{background:#eef6fb;border-radius:16px;grid-template-columns:max-content 1fr;gap:4px 18px;padding:14px 18px;display:grid}.lock{text-align:center;place-items:center;gap:18px;max-width:420px;margin:10vh auto 0;display:grid}.lock .question{font-size:34px;font-weight:700}.lock .answer{letter-spacing:4px;min-height:48px;font-size:34px}.lock.error .question{animation:.4s ease-in-out shake}.keypad{grid-template-columns:repeat(3,88px);gap:10px;display:grid}.keypad button{border:2px solid var(--brown);background:#fff;border-radius:14px;width:88px;height:72px;font-size:28px;font-weight:700}.keypad button:active{background:#fff5d6}@keyframes breathe{0%,to{transform:scale(1)}50%{transform:scale(1.03)}}@keyframes tilt{0%,to{transform:rotate(0)}50%{transform:rotate(-90deg)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-8px)}75%{transform:translate(8px)}}.game{z-index:1;pointer-events:none;position:absolute;inset:0}.game>*{pointer-events:auto}.btn-maison,.btn-repeter{z-index:5}.overlay{z-index:10}.choices{flex-wrap:wrap;place-content:center;align-items:center;gap:32px;display:flex;position:absolute;inset:190px 40px 150px 200px}.choice{background:var(--white);min-width:150px;min-height:170px;box-shadow:0 6px 0 var(--shadow);border-radius:36px;place-items:center;padding:10px 24px;transition:opacity .3s,box-shadow .3s;display:grid}.choice>*{transition:transform .1s ease-out}.choice.pressed>*{transform:scale(.92)}.choice .letter{font-size:128px;line-height:1}.choice .syllable{font-size:100px;line-height:1}.choice.picture-choice{width:230px;height:230px;padding:12px}.choice .picture{object-fit:contain;width:200px;height:200px}.choices.listening .choice,.slide-scene.listening .slide-card{opacity:.7;filter:none}.choice.hint{box-shadow:0 6px 0 var(--shadow), 0 0 0 6px #f6d35cbf}.choice.shown{box-shadow:0 6px 0 var(--shadow), 0 0 0 10px var(--sand), 0 0 28px 12px #f6d35ce6;animation:1.2s ease-in-out infinite pulse}.choice.dimmed{opacity:.35}.choice.right{box-shadow:0 6px 0 var(--shadow), 0 0 0 8px var(--green)}.choice.shake{animation:.4s ease-in-out shake}.choice.float{animation:4.5s ease-in-out infinite float}.choice.float-1{animation-delay:-1.1s}.choice.float-2{animation-delay:-2.3s}.choice.float-3{animation-delay:-3.4s}.choice.float.hint,.choice.float.shown{animation:1.2s ease-in-out infinite pulse}.btn-oreille{transition:opacity .4s;bottom:24px;right:24px}.btn-oreille.hidden,.hidden{opacity:0;pointer-events:none}.btn-continue{border-radius:36px;width:120px;height:120px;bottom:40px;right:40px}.btn-continue svg{width:96px;height:96px}.slide-scene{position:absolute;inset:0}.slide{width:520px;height:520px;position:absolute;top:190px;left:330px;transform:scaleX(-1)}.slide-card{background:var(--white);width:150px;height:150px;box-shadow:0 6px 0 var(--shadow);touch-action:none;border-radius:36px;place-items:center;margin:-75px 0 0 -75px;display:grid;position:absolute}.slide-card .syllable{font-size:100px;line-height:1}.slide-card.consonant{z-index:3;background:#ffe9e2;top:300px;left:610px}.slide-card.vowel{top:600px;left:790px}.slide-card.consonant.dragging,.slide-card.consonant.armed{box-shadow:0 6px 0 var(--shadow), 0 0 0 8px var(--sand)}.slide-card.consonant.back{transition:transform .3s ease-out}.slide-card.joined{width:220px;box-shadow:0 6px 0 var(--shadow), 0 0 0 8px var(--green);margin-left:-110px}.discovery-letters{align-items:center;gap:60px;display:flex;position:absolute;top:150px;left:230px}.discovery-letter{background:var(--white);min-width:230px;height:280px;box-shadow:0 8px 0 var(--shadow);border-radius:48px;place-items:center;padding:0 30px;font-size:220px;line-height:1;display:grid}button.discovery-letter{font:inherit;color:var(--brown);touch-action:none;font-size:220px;line-height:1}.discovery-letter.retrace{animation:2.4s ease-in-out infinite pulse;position:relative}.discovery-letter.retrace:after{content:"";width:64px;height:64px;box-shadow:0 4px 0 var(--shadow);background:#3cb043 url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'><path d='M10 30 L12 22 L26 8 L32 14 L18 28 Z' fill='%23fffdf7' stroke='%234a2e1e' stroke-width='2' stroke-linejoin='round'/><path d='M10 30 L12 22 L18 28 Z' fill='%23f2c230' stroke='%234a2e1e' stroke-width='2' stroke-linejoin='round'/></svg>") 50%/70% no-repeat;border-radius:50%;position:absolute;bottom:-14px;right:-14px}.discovery-letters.pair .discovery-letter{box-shadow:0 8px 0 var(--shadow), 0 0 0 10px var(--sand)}.discovery-animal,.discovery-gesture{object-fit:contain;width:260px;height:260px;transition:opacity .5s;position:absolute;top:470px}.discovery-animal{left:300px}.discovery-gesture{left:600px}.results{border-collapse:collapse;width:100%;margin:12px 0}.results th,.results td{text-align:left;border-bottom:1px solid #e8dcc0;padding:8px 10px}@keyframes jump{0%{transform:translateY(0)scale(1)}20%{transform:translateY(0)scale(1.08,.9)}50%{transform:translateY(-70px)scale(.95,1.06)}80%{transform:translateY(0)scale(1.06,.94)}to{transform:translateY(0)scale(1)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-14px)}}.nola{transform-origin:bottom;position:absolute}.nola .nola-img{object-fit:contain;width:100%;height:100%}.nola-spots{pointer-events:none;position:absolute;inset:0}.nola-spot{opacity:.85;border-radius:50%;position:absolute;transform:translate(-50%,-50%);box-shadow:inset 0 0 0 2px #4a2e1e40}.nola-spot.new{animation:1.4s ease-out spot-in}.nola.jump{animation:.7s ease-out jump}.nola.is-egg.jump{animation:.5s ease-in-out egg-wobble}.nola.is-egg .nola-img{transform-origin:bottom;transform:scale(.7)}.nola-corner{z-index:2;width:220px;height:220px;bottom:0;left:0}.nola-map,.nola-detente{touch-action:none;width:500px;height:500px;animation:3.2s ease-in-out infinite breathe;bottom:20px;left:290px}.nola-hatch{width:500px;height:500px;bottom:40px;left:290px}.nola-bubble{width:210px;height:210px;animation:2s ease-in-out infinite pulse;position:absolute;top:-20px;right:-150px}.nola-bubble .bubble-bg{object-fit:contain;width:100%;height:100%;position:absolute;inset:0}.nola-bubble .bubble-content{object-fit:contain;width:50%;height:50%;position:absolute;top:18%;left:25%}.basket{z-index:2;position:absolute}.basket img{object-fit:contain;width:100%;height:100%}.basket-corner{width:120px;height:120px;bottom:14px;left:200px}.basket-map,.basket-detente{width:200px;height:200px;bottom:40px;left:40px}.flying-food{object-fit:contain;z-index:20;pointer-events:none;width:100px;height:100px;transition:transform .8s cubic-bezier(.3,-.3,.6,1);position:absolute;top:0;left:0}.activities{flex-direction:column;gap:28px;display:flex;position:absolute;top:160px;right:24px}.activities .activity{border-radius:36px;width:120px;height:120px;position:static}.activities .activity img,.activities .activity svg{width:92px;height:92px}.food-tray{z-index:3;flex-wrap:wrap;gap:24px;width:260px;display:flex;position:absolute;top:150px;left:40px}.care-object{background:var(--white);width:110px;height:110px;box-shadow:0 5px 0 var(--shadow);touch-action:none;z-index:4;border-radius:28px;place-items:center;display:grid}.care-object .food,.care-object img{object-fit:contain;width:88px;height:88px}.dessert-tray{top:220px}.care-object.dessert{width:160px;height:160px;box-shadow:0 5px 0 var(--shadow), 0 0 0 8px #f2c230, 0 0 30px 10px #f2c23099;background:#fff4cc;border-radius:40px;animation:1.6s ease-in-out infinite pulse}.care-object.dessert img{width:128px;height:128px}.care-object.dragging{z-index:30;box-shadow:0 10px 18px var(--shadow)}.care-object.armed{box-shadow:0 5px 0 var(--shadow), 0 0 0 8px var(--sand)}.gourde-map{position:absolute;bottom:60px;right:60px}.end-choice{flex-direction:column;gap:40px;display:flex;position:absolute;top:220px;right:60px}.end-choice .end-button{border-radius:40px;width:150px;height:150px;position:static}.end-choice .end-button img,.end-choice .end-button svg{width:116px;height:116px}.egg-button{place-items:center;width:400px;height:480px;display:grid;position:absolute;top:190px;left:340px}.egg-button .egg{object-fit:contain;width:400px;height:400px;animation:3s ease-in-out infinite egg-rock}.egg-button.wobble .egg{animation:.5s ease-in-out egg-wobble}@keyframes egg-rock{0%,to{transform:rotate(0)}50%{transform:rotate(2deg)}}@keyframes egg-wobble{0%,to{transform:rotate(0)}20%{transform:rotate(-9deg)}40%{transform:rotate(8deg)}60%{transform:rotate(-6deg)}80%{transform:rotate(4deg)}}@keyframes spot-in{0%{transform:translate(-50%,-50%)scale(0)}60%{transform:translate(-50%,-50%)scale(1.5)}to{transform:translate(-50%,-50%)scale(1)}}.trace-board{touch-action:none;position:absolute;inset:0}.trace-board.sand{background:radial-gradient(circle at 20% 30%,#c98a3a2e 0 2px,#0000 3px) 0 0/26px 26px,radial-gradient(circle at 70% 60%,#c98a3a24 0 2px,#0000 3px) 0 0/34px 34px,#f3d98f;border-radius:40px;inset:150px 60px 30px}.trace-model,.trace-canvas{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.trace-board.sand .trace-model,.trace-board.sand .trace-canvas{width:1080px;height:810px;inset:-150px -60px -30px}.trace-canvas{transition:opacity .45s}.trace-canvas.fading{opacity:0}.model-band{fill:none;stroke:#f4ead2;stroke-linecap:round;stroke-linejoin:round}.model-faint{fill:none;stroke:#4a2e1e21;stroke-linecap:round;stroke-linejoin:round}.model-center{fill:none;stroke:#c9b48a;stroke-width:5px;stroke-dasharray:2 16;stroke-linecap:round}.model-start{fill:#3cb043;stroke:#fffdf7;stroke-width:6px}.model-start.blink{transform-box:fill-box;transform-origin:50%;animation:.5s ease-in-out 3 start-blink}.model-arrow{fill:#3cb043}.model-number{fill:var(--brown);font-family:Andika,sans-serif;font-size:40px;font-weight:700}.trace-brush{object-fit:contain;pointer-events:none;z-index:3;width:110px;height:110px;position:absolute;top:0;left:0}#stage.discovering .nola-corner,#stage.discovering .basket-corner{display:none}.nola-listen{width:300px;height:300px;bottom:30px;left:390px}.sound-wave{opacity:0;align-items:center;gap:12px;transition:opacity .4s;display:flex;position:absolute;bottom:190px;left:680px}.sound-wave.active{opacity:1}.sound-wave span{background:var(--coral);border-radius:8px;width:16px;height:60px;animation:1s ease-in-out infinite wave;display:block}.sound-wave span:nth-child(2){height:90px;animation-delay:.2s}.sound-wave span:nth-child(3){animation-delay:.4s}@keyframes wave{0%,to{transform:scaleY(.5)}50%{transform:scaleY(1)}}@keyframes start-blink{0%,to{transform:scale(1)}50%{transform:scale(1.6)}}.memory-grid{grid-template-rows:repeat(2,1fr);gap:36px;display:grid;position:absolute;top:170px;bottom:60px}.memory-grid.cols-3{grid-template-columns:repeat(3,1fr);left:270px;right:110px}.memory-grid.cols-4{grid-template-columns:repeat(4,1fr);gap:30px;left:250px;right:40px}.memory-card{touch-action:none;position:relative}.memory-face{box-shadow:0 6px 0 var(--shadow);border-radius:32px;place-items:center;display:grid;position:absolute;inset:0}.memory-back{background:#fde3d3;transition:transform .21s ease-out .21s;transform:scaleX(1)}.memory-back img{object-fit:contain;width:62%;height:62%}.memory-front{background:var(--white);color:var(--brown);font-family:Andika,sans-serif;font-size:150px;line-height:1;transition:transform .21s ease-in;transform:scaleX(0)}.memory-card.flipped .memory-back{transition:transform .21s ease-in;transform:scaleX(0)}.memory-card.flipped .memory-front{transition:transform .21s ease-out .21s;transform:scaleX(1)}.memory-card.matched .memory-front{box-shadow:0 6px 0 var(--shadow), 0 0 0 8px var(--green);animation:.6s ease-out memory-pair}@keyframes memory-pair{0%{transform:scale(1)}40%{transform:scale(1.1)}to{transform:scale(1)}}
