@font-face{font-family:Gluten;src:url(../fonts/gluten.woff2) format("woff2");font-weight:100 900;font-display:swap}@font-face{font-family:"Baloo 2";src:url(../fonts/baloo2.woff2) format("woff2");font-weight:400 800;font-display:swap}:root{--papier: #fbf3e4;--papier-2: #f3e6cd;--papier-3: #e4d2ae;--blanc-papier: #fffaf0;--creme: #fff6e6;--encre: #4a3a2e;--encre-2: rgba(74, 58, 46, .72);--trait: rgba(74, 58, 46, .3);--voile: rgba(74, 58, 46, .12);--terre-pale: #f6d9cc;--terre-clair: #e08a63;--terre: #c96a43;--terre-ombre: #8f4526;--mer-pale: #d4ecf4;--mer-clair: #55afd0;--mer: #2f8fb5;--mer-ombre: #1b5f80;--mousse-pale: #dfead3;--mousse-clair: #9bbf86;--mousse: #7fa36b;--mousse-ombre: #5e8550;--soleil-pale: #fbe3a6;--soleil-clair: #f7cc6a;--soleil: #f2b636;--soleil-ombre: #c98e1e;--rose-pale: #f9d6de;--rose-clair: #ee93a7;--rose: #e46f8a;--rose-ombre: #b84c66;--brume-pale: #e3e8ea;--brume-clair: #b7c3ca;--brume: #9aa9b4;--brume-ombre: #6f7f8c;--lavande-pale: #e6def3;--lavande-clair: #b4a5d8;--lavande: #9c88c9;--lavande-ombre: #6a5a9a;--ecume: #7fd3e0;--verrou-pale: #ece2cf;--verrou: #d8ccb6;--verrou-ombre: #b8a383;--verrou-encre: #8a7a66;--action: var(--terre);--action-ombre: var(--terre-ombre);--info: var(--mer);--info-ombre: var(--mer-ombre);--ok: var(--mousse);--ok-ombre: var(--mousse-ombre);--recompense: var(--soleil);--recompense-ombre: var(--soleil-ombre);--charme: var(--rose);--f-titre: "Gluten", "Baloo 2", ui-rounded, system-ui, sans-serif;--f-texte: "Baloo 2", ui-rounded, "SF Pro Rounded", system-ui, sans-serif;--t-xxl: 32px;--t-xl: 26px;--t-l: 21px;--t-m: 17px;--t-s: 15px;--t-xs: 12px;--r-carte: 20px 13px 22px 12px / 13px 21px 12px 19px;--r-bouton: 19px 14px 21px 13px / 14px 20px 13px 19px;--r-petit: 12px 9px 13px 10px;--r-rond: 50% 46% 52% 47% / 48% 52% 47% 51%;--epaisseur: 5px;--sig: cubic-bezier(.3, 1.6, .5, 1);--brush: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 14' preserveAspectRatio='none'><filter id='r'><feTurbulence baseFrequency='0.9 0.08' numOctaves='2' seed='2'/><feDisplacementMap in='SourceGraphic' scale='5'/></filter><path filter='url(%23r)' d='M4 8 C40 3 90 4 130 5 S185 6 196 7 L195 10 C150 12 90 9 50 11 S10 12 5 11 Z' fill='%23F2B636' fill-opacity='0.75'/></svg>");--grain: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.35  0 0 0 0 0.27  0 0 0 0 0.2  0 0 0 0.09 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");--fibres: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='f'><feTurbulence type='fractalNoise' baseFrequency='0.012 0.2' numOctaves='2' seed='4'/><feColorMatrix values='0 0 0 0 0.4  0 0 0 0 0.3  0 0 0 0 0.2  0 0 0 -1.4 0.9'/></filter><rect width='100%' height='100%' filter='url(%23f)' opacity='0.12'/></svg>");--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%;overflow:hidden;background:var(--papier);color:var(--encre);font-family:var(--f-texte);font-weight:600;touch-action:none;user-select:none;-webkit-user-select:none;overscroll-behavior:none;-webkit-touch-callout:none;-webkit-text-size-adjust:100%;position:fixed;inset:0}button{font-family:var(--f-texte);touch-action:manipulation;-webkit-touch-callout:none}img{-webkit-user-drag:none;-webkit-touch-callout:none}#scene{position:fixed;inset:0;display:block;touch-action:none}#ui{position:fixed;inset:0;pointer-events:none}#ui>*{pointer-events:none}#ui>.screen,#ui>.bubble,#ui>.toast,#ui>.sheet-wrap{pointer-events:auto}.layer{position:absolute;inset:0;pointer-events:none}.layer>*{pointer-events:auto}.hidden{display:none!important}.paper{position:relative;isolation:isolate;background:none;border:0;border-radius:18px}.paper:before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background-color:var(--papier);background-image:var(--grain),var(--fibres);border:1.5px solid rgba(74,58,46,.32);border-radius:20px 13px 22px 12px/13px 21px 12px 19px;box-shadow:3px 4px 0 -1px var(--papier-2),3px 4px 0 .5px #4a3a2e38,0 9px 16px -10px #4a3a2e73;filter:url(#deckle-soft)}.sheet.paper{background-color:var(--papier);background-image:var(--grain),var(--fibres);border-top:1.5px solid rgba(74,58,46,.3)}.sheet.paper:before{display:none}.btn{--c1: var(--terre-clair);--c2: var(--terre);--edge: var(--terre-ombre);--ink: var(--creme);position:relative;isolation:isolate;min-height:56px;min-width:56px;padding:0 26px;display:inline-flex;align-items:center;justify-content:center;gap:10px;font-family:var(--f-titre);font-weight:700;font-size:21px;letter-spacing:.3px;line-height:1;color:var(--ink);background:none;border:0;border-radius:18px;text-shadow:0 2px 0 var(--edge);cursor:pointer;transition:transform .12s var(--sig),filter .2s}.btn:before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background-color:var(--c2);background-image:radial-gradient(ellipse 60% 70% at 28% 22%,color-mix(in srgb,var(--c1) 85%,#fff 15%),transparent 70%),var(--grain);border:2px solid var(--edge);border-radius:19px 14px 21px 13px/14px 20px 13px 19px;box-shadow:0 5px 0 var(--edge),0 9px 12px -8px #4a3a2e8c,inset 0 0 0 2px color-mix(in srgb,var(--c2) 70%,var(--edge) 30%),inset 0 -7px 10px -6px color-mix(in srgb,var(--edge) 60%,transparent);filter:url(#deckle);transition:box-shadow .12s,transform .12s var(--sig)}.btn:after{content:"";position:absolute;left:14px;top:7px;width:22px;height:6px;border-radius:6px 3px 5px 2px;background:#fff6e68c;transform:rotate(-6deg);pointer-events:none;filter:url(#deckle)}.btn.round:after,.btn.small:after{left:9px;top:6px;width:12px;height:5px}.btn>*{position:relative}.btn:active,.btn.pressed{transform:translateY(5px) scale(1.02,.97)}.btn:active:before,.btn.pressed:before{box-shadow:0 0 0 var(--edge),0 3px 6px -4px #4a3a2e80,inset 0 0 0 2px color-mix(in srgb,var(--c2) 70%,var(--edge) 30%),inset 0 -4px 8px -6px color-mix(in srgb,var(--edge) 60%,transparent)}.btn.blue{--c1: var(--mer-clair);--c2: var(--mer);--edge: var(--mer-ombre)}.btn.light{--c1: var(--blanc-papier);--c2: var(--papier-2);--edge: var(--verrou-ombre);--ink: var(--encre);text-shadow:0 1.5px 0 rgba(255,250,240,.9)}.btn.light:after{background:#fffc}.btn.round{padding:0;width:56px;border-radius:50%}.btn.round:before{border-radius:50% 46% 52% 47%/48% 52% 47% 51%}.btn.small{min-height:46px;min-width:46px;font-size:17px;padding:0 16px}.btn.small.round{width:46px}.btn[disabled]{filter:grayscale(.7) brightness(.95);opacity:.6;pointer-events:none}.btn svg{width:25px;height:25px;flex:none;filter:drop-shadow(0 2px 0 var(--edge))}.btn.light svg{filter:none}.btn small{font-family:var(--f-texte);text-shadow:none}.btn.squash{animation:squash .42s var(--sig)}@keyframes squash{0%{transform:scale(1)}30%{transform:scale(1.12,.86)}60%{transform:scale(.95,1.06)}to{transform:scale(1)}}.shake{animation:shake .42s var(--sig)}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-9px)}40%{transform:translate(8px)}60%{transform:translate(-5px)}80%{transform:translate(3px)}}.ico{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round}.pop{animation:pop .5s var(--sig) backwards;animation-delay:var(--d, 0ms)}@keyframes pop{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}.fade-out{animation:fadeOut .3s ease-in both}@keyframes fadeOut{to{opacity:0;transform:scale(.85)}}.title-wrap{position:relative;text-align:center;margin-top:calc(96px + var(--safe-top))}.title-blob{position:absolute;left:50%;top:46%;width:340px;height:150px;transform:translate(-50%,-50%) rotate(-3deg);pointer-events:none;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 340 150'><filter id='w' x='-10%25' y='-10%25' width='120%25' height='120%25'><feTurbulence type='fractalNoise' baseFrequency='0.022' numOctaves='3' seed='11'/><feDisplacementMap in='SourceGraphic' scale='26'/></filter><g filter='url(%23w)'><path d='M40 82 C30 40 110 22 170 34 C230 44 300 30 306 78 C312 118 240 128 170 120 C100 112 50 126 40 82Z' fill='%23FBE3A6' fill-opacity='0.7'/><path d='M150 60 C190 28 280 40 292 72 C300 98 250 108 205 100 C165 94 128 84 150 60Z' fill='%23F2B636' fill-opacity='0.35'/></g></svg>") center / contain no-repeat}.title{position:relative;font-family:var(--f-titre);font-weight:800;line-height:.95;font-size:62px;letter-spacing:-.5px;color:var(--creme)}.title .line{display:block;white-space:nowrap}.title .l{display:inline-block;-webkit-text-stroke:3px var(--encre);paint-order:stroke fill;text-shadow:0 3px 0 var(--mer),0 6px 0 var(--mer-ombre),0 8px 0 var(--encre);animation:wave 2.6s ease-in-out infinite;animation-delay:calc(var(--i) * .13s)}.title .l:nth-child(odd){rotate:-2.5deg}.title .l:nth-child(2n){rotate:2deg}.title .small-l{font-size:34px}@keyframes wave{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.tagline{position:relative;display:inline-block;margin-top:14px;padding:3px 14px 2px;font-family:var(--f-titre);font-weight:600;font-size:15px;color:var(--creme);letter-spacing:.4px;transform:rotate(-2deg);isolation:isolate}.tagline:before{content:"";position:absolute;inset:0;z-index:-1;background:var(--terre);border-radius:3px;filter:url(#deckle);box-shadow:2px 3px 0 var(--terre-ombre)}.tagline i{font-style:normal;opacity:.6;margin:0 5px}.menu{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;pointer-events:none}.menu>*{pointer-events:auto}.menu .spacer{flex:1;pointer-events:none}.menu-buttons{display:flex;flex-direction:column;gap:14px;width:min(320px,calc(100% - 48px));margin-bottom:calc(28px + var(--safe-bottom))}.menu-buttons .btn{width:100%}.menu-row{display:flex;gap:12px}.menu-row .btn{flex:1}.stat-row{display:flex;gap:10px;justify-content:center;margin-top:14px}.chip{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;font-weight:800;font-size:15px}.chip svg{width:20px;height:20px}.chip .flame{color:var(--terre)}.record{text-align:center;padding:10px 22px;margin-top:12px}.record b{display:block;font-size:40px;line-height:1;color:var(--terre)}.record span{font-size:13px;font-weight:700;opacity:.75}.topcorner{position:absolute;top:calc(12px + var(--safe-top));right:12px}.screen{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;padding:calc(16px + var(--safe-top)) calc(16px + var(--safe-right)) calc(20px + var(--safe-bottom)) calc(16px + var(--safe-left));gap:14px;overflow-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y;background:#fbf3e4d1}.screen h2{margin:6px 0 4px;font-size:30px;font-weight:900}.level-card{width:min(380px,100%);padding:16px 18px;display:flex;align-items:center;gap:14px;cursor:pointer;transition:transform .15s var(--sig)}.level-card:active{transform:scale(.97)}.level-card .num{flex:none;width:54px;height:54px;display:grid;place-items:center;font-size:26px;font-weight:900;color:var(--creme);background:var(--mer);border:2px solid var(--mer-ombre);border-radius:46% 54% 50% 50%/52% 46% 54% 48%;box-shadow:0 4px 0 var(--mer-ombre)}.level-card.locked{opacity:.55;filter:grayscale(.6)}.level-card .info{flex:1}.level-card .name{font-weight:900;font-size:20px}.level-card .sub{font-size:13px;opacity:.75;font-weight:600;margin-top:2px}.stars{display:flex;gap:2px;color:var(--soleil)}.stars svg{width:22px;height:22px}.stars .off{color:#4a3a2e40}.hud{position:absolute;top:calc(10px + var(--safe-top));left:calc(8px + var(--safe-left));right:calc(8px + var(--safe-right));display:flex;align-items:center;gap:6px;pointer-events:none}.hud>*{pointer-events:auto}.hud .box{padding:4px 9px;min-height:46px;display:flex;align-items:center;gap:6px;font-weight:800}.hud .round-label{font-size:14px;line-height:1.1;white-space:nowrap;flex-direction:column;align-items:flex-start;justify-content:center;gap:3px}.round-label .dots{display:flex;gap:3px}.round-label .dots i{width:9px;height:9px;border-radius:50%;background:#4a3a2e2e;position:relative}.round-label .dots i.done{background:var(--mousse)}.round-label .dots i.on{background:var(--mer);box-shadow:0 0 0 2px #2f8fb54d}.round-label .dots i.cp:after{content:"";position:absolute;left:3px;top:-7px;width:2px;height:8px;background:var(--terre);border-radius:1px}.round-label .dots i.cp:before{content:"";position:absolute;left:5px;top:-7px;width:5px;height:4px;background:var(--terre);border-radius:0 2px 2px 0}.hearts{display:flex;gap:2px;color:var(--terre)}.hearts svg{width:19px;height:19px;transition:transform .4s var(--sig)}.hearts .lost{color:#4a3a2e40;transform:scale(.8)}.hud .score{font-size:18px;font-variant-numeric:tabular-nums}.hud .grow{flex:1}.hud2{position:absolute;top:calc(64px + var(--safe-top));left:calc(8px + var(--safe-left));right:calc(8px + var(--safe-right));display:flex;gap:8px;align-items:flex-start;pointer-events:none}.timer{position:relative;flex:none;width:62px;height:62px;pointer-events:none}.timer svg{width:100%;height:100%;overflow:visible}.timer .num{position:absolute;inset:0;display:grid;place-items:center;font-weight:900;font-size:22px;font-variant-numeric:tabular-nums}.timer.urgent .num{color:var(--terre);animation:beat .5s var(--sig) infinite}@keyframes beat{50%{transform:scale(1.15)}}.twist-tag{position:absolute;left:50%;top:calc(150px + var(--safe-top));translate:-50% 0;padding:4px 12px;font-weight:800;font-size:14px;display:flex;gap:6px;align-items:center;white-space:nowrap}.twist-tag svg{width:18px;height:18px}.objective{flex:1;min-width:0;padding:7px 12px 8px;pointer-events:none}.objective.pulse{animation:objPulse .5s var(--sig)}@keyframes objPulse{0%{transform:scale(.94)}60%{transform:scale(1.02)}to{transform:scale(1)}}.obj-steps{display:flex;align-items:center;gap:4px;font-size:11px;font-weight:800;opacity:.85;margin-bottom:4px;white-space:nowrap;overflow:hidden}.obj-steps span{display:inline-flex;align-items:center;gap:3px;opacity:.5}.obj-steps span.on{opacity:1;color:var(--mer-ombre)}.obj-steps span.done{opacity:.75;color:var(--mousse-ombre)}.obj-steps b{display:inline-grid;place-items:center;width:16px;height:16px;border-radius:50%;font-size:10px;background:#4a3a2e1f}.obj-steps span.on b{background:var(--mer);color:var(--creme)}.obj-steps span.done b{background:var(--mousse);color:var(--creme)}.obj-steps i{flex:none;width:10px;height:2px;background:#4a3a2e33;border-radius:1px}.obj-line{display:flex;align-items:center;gap:8px}.obj-text{flex:1;min-width:0;display:flex;align-items:center;gap:6px;font-weight:800;font-size:15px;line-height:1.2}.obj-text svg{flex:none;width:20px;height:20px;color:var(--terre)}.obj-count{flex:none;padding:3px 9px;font-weight:900;font-size:16px;border-radius:10px 8px 11px 9px;background:var(--papier-2);border:1.5px solid rgba(74,58,46,.25);font-variant-numeric:tabular-nums}.obj-count.full{background:var(--mousse);border-color:var(--mousse-ombre);color:var(--creme)}.obj-count.squash{animation:squash .42s var(--sig)}.obj-bar{height:6px;border-radius:4px;background:#4a3a2e1f;margin-top:6px;overflow:hidden}.obj-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--mer),var(--mousse));transform-origin:left;transition:transform .35s var(--sig);border-radius:4px}.dock{position:absolute;left:0;right:0;bottom:0;padding:0 calc(10px + var(--safe-right)) calc(10px + var(--safe-bottom)) calc(10px + var(--safe-left));display:flex;flex-direction:column;gap:10px;align-items:center;pointer-events:none}.dock>*{pointer-events:auto}.dock-actions{display:flex;gap:10px;align-items:center;justify-content:center;width:100%}.bar{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;padding:10px 10px 12px;max-width:min(100%,470px)}.bar.many .slot{width:54px;height:58px}.bar.many .slot img{width:54px;height:54px}.bar::-webkit-scrollbar{display:none}.bar:empty{display:none}.slot{position:relative;flex:none;width:66px;height:70px;padding:0;cursor:grab;display:grid;place-items:center;background-color:var(--blanc-papier);background-image:var(--grain);border:1.5px solid rgba(74,58,46,.3);border-radius:16px 12px 18px 11px/12px 17px 11px 16px;box-shadow:0 4px 0 var(--papier-3),0 8px 14px -8px #5b463666;transition:transform .25s var(--sig),background-color .2s,box-shadow .2s;touch-action:none}.slot img{width:64px;height:64px;pointer-events:none;-webkit-user-drag:none}.slot.sel{background-color:var(--mer-pale);border-color:var(--mer-ombre);transform:translateY(-9px);box-shadow:0 6px 0 var(--mer-ombre),0 14px 18px -8px #1f6a888c}.slot .count{position:absolute;top:-7px;right:-7px;min-width:24px;height:24px;padding:0 6px;display:grid;place-items:center;border-radius:12px 10px 13px 11px;background:var(--terre);border:1.5px solid var(--terre-ombre);color:var(--creme);font-weight:900;font-size:13px;box-shadow:0 2px 0 var(--terre-ombre)}.slot .dot{position:absolute;bottom:4px;left:50%;width:12px;height:12px;transform:translate(-50%);border-radius:50%;border:1.5px solid rgba(74,58,46,.5)}.slot.taken{animation:slotOut .25s ease-in both}@keyframes slotOut{to{transform:scale(.6);opacity:0}}.bubble{position:absolute;left:0;right:0;margin-inline:auto;width:fit-content;max-width:min(340px,calc(100% - 32px));z-index:20;padding:14px 16px 12px;font-weight:700;font-size:16px;line-height:1.35}.bubble .who{position:absolute;top:-13px;left:14px;padding:2px 10px;font-size:13px;font-weight:900;color:var(--creme);background:var(--terre);border:1.5px solid var(--terre-ombre);border-radius:10px 8px 11px 7px;box-shadow:0 2px 0 var(--terre-ombre)}.bubble:after{content:"";position:absolute;bottom:-11px;left:34px;width:20px;height:20px;background:var(--papier);border-right:1.5px solid rgba(74,58,46,.3);border-bottom:1.5px solid rgba(74,58,46,.3);transform:rotate(45deg) skew(8deg,8deg);border-radius:0 0 6px}.bubble.tail-up:after{bottom:auto;top:-11px;transform:rotate(225deg)}.bubble .tap{display:block;margin-top:6px;font-size:12px;opacity:.6;text-align:right}.name-tag{position:absolute;padding:3px 10px;font-weight:900;font-size:13px;transform:translate(-50%,-100%);white-space:nowrap;pointer-events:none}.name-tag:after{content:"";position:absolute;left:50%;bottom:-7px;width:10px;height:10px;margin-left:-5px;background:var(--papier);border-right:1.5px solid rgba(74,58,46,.3);border-bottom:1.5px solid rgba(74,58,46,.3);transform:rotate(45deg)}.center{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:calc(16px + var(--safe-top)) 16px calc(16px + var(--safe-bottom));pointer-events:none;overflow-y:auto}.center>*{pointer-events:auto}.card{width:min(360px,calc(100vw - 32px));flex:none;margin:auto;padding:22px 18px 18px;text-align:center}.card h3{margin:0 0 8px;font-size:26px;font-weight:900}.card p{margin:6px 0;font-weight:600}.card .big{font-size:56px;font-weight:900;line-height:1;font-variant-numeric:tabular-nums}.card .big.ok{color:var(--mousse)}.card .big.ko{color:var(--terre)}.card .rows{margin:12px 0;display:grid;gap:4px;font-weight:700;font-size:15px}.card .rows div{display:flex;justify-content:space-between}.card .actions .btn:not(.round){padding:0 16px}.card .actions{display:flex;gap:8px;justify-content:center;margin-top:16px;flex-wrap:nowrap}.attrs{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:10px 0}.attr{display:inline-flex;gap:6px;align-items:center;padding:6px 10px;font-weight:800;font-size:14px;border-radius:12px 9px 13px 10px;background:var(--papier-2);border:1.5px solid rgba(74,58,46,.25)}.attr svg{width:18px;height:18px}.attr.new{background:var(--mer-pale);border-color:var(--mer-ombre)}.newpiece img{width:110px;height:110px}.end-stars{display:flex;justify-content:center;gap:8px;margin:6px 0 10px}.end-stars svg{width:58px;height:58px;color:#4a3a2e33}.end-stars .on svg{color:var(--soleil)}.end-stars .on{display:inline-block;animation:starIn .7s var(--sig) both;animation-delay:var(--d);filter:drop-shadow(0 3px 0 var(--soleil-ombre))}@keyframes starIn{0%{transform:scale(0) rotate(-200deg);opacity:0}to{transform:scale(1) rotate(0);opacity:1}}.fly{position:fixed;width:44px;height:44px;z-index:50;pointer-events:none;transition:transform .9s cubic-bezier(.5,-.4,.6,1),opacity .9s}.confetti{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:40}.confetti i{position:absolute;top:-20px;width:10px;height:14px;border-radius:3px 5px 2px 4px;animation:fall linear forwards}@keyframes fall{to{transform:translate(var(--dx),110vh) rotate(var(--r))}}.toast{position:absolute;left:0;right:0;margin-inline:auto;width:fit-content;max-width:calc(100% - 32px);top:calc(150px + var(--safe-top));padding:10px 18px;font-weight:800;text-align:center;z-index:35;display:flex;align-items:center;gap:8px}.toast svg{width:22px;height:22px;flex:none;color:var(--terre)}.float-label{position:absolute;transform:translate(-50%,-100%);font-weight:900;font-size:18px;pointer-events:none;animation:floatUp 1.1s var(--sig) forwards;-webkit-text-stroke:4px var(--papier);paint-order:stroke fill}.float-label.parfait{color:var(--soleil-ombre)}.float-label.presque{color:var(--brume-ombre)}.float-label.rate{color:var(--terre)}.float-label.charme{color:var(--rose);font-size:16px;white-space:nowrap}@keyframes floatUp{0%{opacity:0;transform:translate(-50%,-60%) scale(.6)}25%{opacity:1;transform:translate(-50%,-110%) scale(1.1)}to{opacity:0;transform:translate(-50%,-220%) scale(1)}}.btn.choice{min-width:62px;padding:0 14px;font-size:22px}.hand{position:absolute;width:64px;height:64px;pointer-events:none;z-index:30;transition:left .9s cubic-bezier(.45,0,.3,1),top .9s cubic-bezier(.45,0,.3,1),opacity .3s;filter:drop-shadow(0 4px 2px rgba(74,58,46,.3))}.hand.tap svg{animation:tapHand .9s var(--sig) infinite}@keyframes tapHand{0%,to{transform:scale(1)}40%{transform:scale(.82) translateY(4px)}}.worlds{width:min(400px,100%);display:flex;flex-direction:column;gap:16px;padding-bottom:12px}.world{padding:14px 14px 16px;position:relative;--ep: var(--terre);--ep-ombre: var(--terre-ombre);--ep-pale: var(--soleil-pale)}.world:after{content:"";position:absolute;left:6px;right:6px;top:6px;height:52px;z-index:-1;pointer-events:none;background:var(--ep-pale);opacity:.8;border-radius:15px 10px 4px 3px/10px 15px 3px 4px;filter:url(#deckle-soft)}.world>*{position:relative}.world.w-moyenage{--ep: var(--terre);--ep-ombre: var(--terre-ombre);--ep-pale: var(--soleil-pale)}.world.w-moderne{--ep: var(--mer);--ep-ombre: var(--mer-ombre);--ep-pale: var(--mer-pale)}.world.w-futur{--ep: var(--lavande);--ep-ombre: var(--lavande-ombre);--ep-pale: var(--lavande-pale)}.world.locked{filter:grayscale(.7);opacity:.6}.world-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}.world-head .wnum{flex:none;width:34px;height:34px;display:grid;place-items:center;border-radius:50%;font-weight:900;color:var(--creme);background:var(--terre);border:2px solid var(--terre-ombre)}.world-head .wnum{background:var(--ep);border-color:var(--ep-ombre);box-shadow:0 3px 0 var(--ep-ombre)}.world-head h3{margin:0;font-size:21px;font-weight:900;line-height:1.05}.world-head small{display:block;font-size:12px;font-weight:700;opacity:.7}.world-head .wstars{margin-left:auto;display:flex;align-items:center;gap:3px;font-weight:900;font-size:14px}.world-head .wstars svg{width:18px;height:18px;color:var(--soleil)}.path{display:flex;align-items:flex-start;justify-content:space-between;gap:4px;position:relative;padding:0 6px}.path:before{content:"";position:absolute;left:40px;right:40px;top:31px;border-top:3px dashed rgba(74,58,46,.25)}.node{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;gap:5px;text-align:center;cursor:pointer}.node .disc{width:62px;height:62px;display:grid;place-items:center;font-size:24px;font-weight:900;color:var(--creme);background:var(--mer);border:2.5px solid var(--mer-ombre);border-radius:48% 52% 50% 50%/52% 46% 54% 48%;box-shadow:0 5px 0 var(--mer-ombre);transition:transform .15s var(--sig)}.node:active .disc{transform:translateY(4px);box-shadow:0 1px 0 var(--mer-ombre)}.node.done .disc{background:var(--mousse);border-color:var(--mousse-ombre);box-shadow:0 5px 0 var(--mousse-ombre)}.node.next .disc{background:var(--terre);border-color:var(--terre-ombre);box-shadow:0 5px 0 var(--terre-ombre);animation:bob 1.6s ease-in-out infinite}@keyframes bob{50%{transform:translateY(-5px)}}.node.locked .disc{background:var(--verrou);border-color:var(--verrou-ombre);box-shadow:0 5px 0 var(--verrou-ombre);color:var(--verrou-encre)}.node .disc svg{width:26px;height:26px}.node .nname{font-weight:900;font-size:13px;line-height:1.1}.node .stars svg{width:15px;height:15px}.node .cpflag{position:absolute;top:-6px;right:8px;width:24px;height:24px;display:grid;place-items:center;border-radius:50%;background:var(--papier);border:1.5px solid var(--terre-ombre);color:var(--terre)}.node .cpflag svg{width:15px;height:15px}.soon{text-align:center;padding:16px;font-weight:800;opacity:.7}.howto{text-align:left}.howto h3{text-align:center}.howto .stepline{display:flex;gap:12px;align-items:center;margin:12px 0}.howto .stepnum{flex:none;width:44px;height:44px;display:grid;place-items:center;border-radius:50%;font-weight:900;font-size:20px;color:var(--creme);background:var(--mer);border:2px solid var(--mer-ombre);box-shadow:0 3px 0 var(--mer-ombre)}.howto .stepline:nth-of-type(2) .stepnum{background:var(--brume);border-color:var(--brume-ombre);box-shadow:0 3px 0 var(--brume-ombre)}.howto .stepline:nth-of-type(3) .stepnum{background:var(--mousse);border-color:var(--mousse-ombre);box-shadow:0 3px 0 var(--mousse-ombre)}.howto .stepline p{margin:0;font-weight:700;font-size:15px;line-height:1.3}.howto .stepline b{display:block;font-size:17px;font-weight:900}.howto .grades{display:flex;gap:6px;justify-content:center;margin-top:10px;flex-wrap:wrap}.howto .grades span{padding:4px 10px;border-radius:10px;font-weight:900;font-size:13px;background:var(--papier-2)}.howto .grades .g1{color:var(--soleil-ombre)}.howto .grades .g2{color:var(--brume-ombre)}.howto .grades .g3{color:var(--terre)}.steps-strip{display:flex;justify-content:center;align-items:center;gap:6px;margin:10px 0 4px;font-weight:800;font-size:13px}.steps-strip span{display:flex;flex-direction:column;align-items:center;gap:3px;width:82px}.steps-strip span svg{width:28px;height:28px;padding:6px;box-sizing:content-box;border-radius:50%;background:var(--papier-2)}.steps-strip i{flex:none;width:14px;height:2px;background:#4a3a2e4d;margin-bottom:18px}.rewards{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;margin:8px 0}.rewards>span{position:relative;display:inline-block}.rewards img{width:52px;height:52px;display:block}.rewards b{position:absolute;top:-4px;right:-6px;min-width:22px;height:22px;padding:0 5px;border-radius:11px;display:grid;place-items:center;background:var(--terre);color:var(--creme);font-size:12px!important;border:1.5px solid var(--mer-ombre)}.rewards .new{position:relative}.rewards .new:after{content:"NOUVEAU";position:absolute;left:50%;bottom:-6px;translate:-50% 0;font-size:9px;font-weight:900;padding:1px 4px;border-radius:5px;background:var(--terre);color:var(--creme)}.town-top{position:absolute;top:calc(10px + var(--safe-top));left:calc(10px + var(--safe-left));right:calc(10px + var(--safe-right));display:flex;gap:8px;align-items:flex-start;pointer-events:none}.town-top>*{pointer-events:auto}.town-top .side{display:flex;flex-direction:column;gap:8px}.charm{flex:1;min-width:0;padding:9px 12px 10px}.charm .crow{display:flex;align-items:center;gap:8px}.charm .cname{font-weight:900;font-size:17px;line-height:1.1;flex:1;min-width:0}.charm .cname small{display:block;font-size:12px;font-weight:700;opacity:.7}.charm .cval{font-weight:900;font-size:22px;color:var(--rose);font-variant-numeric:tabular-nums}.charm .cval.squash{animation:squash .42s var(--sig)}.flowers{display:flex;gap:1px}.flowers svg{width:19px;height:19px;color:#4a3a2e38}.flowers .on svg{color:var(--rose)}.charm .prog{height:8px;border-radius:5px;background:#4a3a2e1f;margin-top:6px;overflow:hidden}.charm .prog i{display:block;height:100%;background:linear-gradient(90deg,var(--soleil),var(--rose));border-radius:5px;transition:width .5s var(--sig)}.charm .tip{font-size:12px;font-weight:700;opacity:.8;margin-top:5px;line-height:1.25}.town-dock{position:absolute;left:0;right:0;bottom:0;padding:0 calc(10px + var(--safe-right)) calc(10px + var(--safe-bottom)) calc(10px + var(--safe-left));display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none}.town-dock>*{pointer-events:auto}.paints{display:flex;gap:8px;align-items:center;padding:6px 12px}.paints .lbl{font-weight:800;font-size:13px;display:flex;align-items:center;gap:4px}.paints .lbl svg{width:18px;height:18px}.swatch{width:34px;height:34px;flex:none;border-radius:50%;border:2px solid rgba(74,58,46,.35);cursor:pointer;position:relative;transition:transform .2s var(--sig)}.swatch.sel{transform:scale(1.18);border-color:var(--encre);box-shadow:0 0 0 3px var(--papier),0 0 0 5px var(--encre)}.swatch.terre{background:repeating-linear-gradient(0deg,var(--terre) 0 5px,var(--terre-ombre) 5px 7px)}.swatch.mer{background:linear-gradient(90deg,var(--mer) 0 25%,var(--papier) 25% 40%,var(--mer) 40% 60%,var(--papier) 60% 75%,var(--mer) 75%)}.swatch.mousse{background:radial-gradient(circle,var(--papier) 2.5px,transparent 3px) 0 0 / 11px 11px,var(--mousse)}.swatch.soleil{background:var(--soleil)}.swatch.rose{background:repeating-linear-gradient(45deg,var(--rose) 0 5px,var(--papier) 5px 7px)}.swatch.lavande{background:repeating-conic-gradient(var(--lavande) 0 25%,var(--papier) 0 50%) 0 0 / 12px 12px}.bar .slot .count.zero{background:var(--verrou-ombre);border-color:var(--verrou-encre)}.inv-empty{padding:12px 16px;font-weight:700;text-align:center;max-width:340px}.sheet-wrap{position:absolute;inset:0;display:flex;align-items:flex-end;justify-content:center;background:#4a3a2e2e;z-index:30}.sheet{width:min(440px,100%);max-height:78%;overflow-y:auto;padding:18px 16px calc(18px + var(--safe-bottom));border-radius:26px 22px 0 0/22px 26px 0 0;animation:sheetIn .45s var(--sig)}@keyframes sheetIn{0%{transform:translateY(100%)}}.sheet h3{margin:0 0 4px;font-size:22px;font-weight:900;text-align:center}.sheet .sub{text-align:center;font-size:13px;font-weight:700;opacity:.75;margin-bottom:10px}.harm{display:flex;gap:10px;align-items:center;padding:8px 4px;border-bottom:1.5px dashed rgba(74,58,46,.15)}.harm .hico{flex:none;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--verrou-pale);color:#4a3a2e59}.harm.found .hico{background:var(--rose-pale);color:var(--rose)}.harm.here .hico{background:var(--rose);color:var(--creme)}.harm .hico svg{width:22px;height:22px}.harm .ht{flex:1;font-size:13px;font-weight:700;line-height:1.25}.harm .ht b{display:block;font-size:15px;font-weight:900}.harm .hp{font-weight:900;color:var(--rose)}.harm.penalty .hico{background:var(--terre-pale);color:var(--terre)}.harm.penalty .hp{color:var(--terre)}.rotate-hint{position:fixed;inset:0;z-index:100;display:none;place-items:center;text-align:center;padding:24px;background:var(--papier);font-weight:800;font-size:18px}.rotate-hint svg{width:64px;height:64px;display:block;margin:0 auto 12px;animation:tilt 1.8s ease-in-out infinite}@keyframes tilt{50%{transform:rotate(-90deg)}}@media(orientation:landscape)and (max-height:500px)and (pointer:coarse){.rotate-hint{display:grid}}@media(max-height:700px){.title{font-size:56px}.record b{font-size:32px}.btn{min-height:50px;font-size:17px}.btn.round{width:50px}.menu-buttons{gap:10px}.slot{width:58px;height:62px}.slot img{width:56px;height:56px}.bar.many .slot{width:50px;height:54px}.bar.many .slot img{width:48px;height:48px}.obj-text{font-size:14px}}@media(max-width:360px){.hud .box{padding:4px 6px}.hud{gap:4px}.obj-steps{font-size:10px}}.slot.zero{cursor:default;opacity:.55}.slot.zero img{filter:grayscale(.8)}.locked-strip{width:min(470px,100%);padding:8px 10px}.ls-head{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;line-height:1.2}.ls-head>svg{width:20px;height:20px;flex:none;color:var(--terre)}.ls-head span{flex:1;min-width:0;opacity:.85}.ls-head b{display:block;font-size:14px;font-weight:900}.ls-head .btn{min-height:38px;padding:0 12px;font-size:14px}.ls-head .btn svg{width:18px;height:18px}.ls-row{display:flex;gap:6px;overflow-x:auto;touch-action:pan-x;padding:6px 2px 2px;scrollbar-width:none;-webkit-overflow-scrolling:touch}.ls-row::-webkit-scrollbar{display:none}.lslot{flex:none;width:58px;display:flex;flex-direction:column;align-items:center;gap:2px;cursor:pointer}.lthumb{position:relative;width:46px;height:46px;border-radius:12px 9px 13px 10px;background:var(--verrou-pale);border:1.5px dashed rgba(74,58,46,.3);display:grid;place-items:center}.lthumb img{width:44px;height:44px;filter:grayscale(1) opacity(.45) contrast(.8)}.lthumb .lk{position:absolute;right:-5px;bottom:-5px;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:var(--terre);color:var(--creme);border:1.5px solid var(--terre-ombre)}.lthumb .lk svg{width:12px;height:12px;stroke-width:3.6}.lslot small{font-size:9.5px;font-weight:800;text-align:center;line-height:1.05;opacity:.75}.harm.locked{opacity:.75}.harm.locked .hico{background:var(--verrou-pale);color:var(--terre)}.harm.locked .hp{color:#4a3a2e73}.harm .need{display:block;margin-top:2px;font-size:12px;font-weight:800;color:var(--terre)}.lock-title{display:flex;gap:6px;align-items:flex-start;font-weight:800;font-size:13px;margin:14px 0 4px;color:var(--terre-ombre)}.lock-title svg{width:18px;height:18px;flex:none}.charm .tip svg{width:14px;height:14px;vertical-align:-2px;color:var(--terre)}.btn.light.danger{color:var(--terre)}.card.reward{width:min(300px,calc(100vw - 48px));padding-top:18px}.reward .rw-ico{width:64px;height:64px;margin:0 auto 6px;display:grid;place-items:center;border-radius:50%;background:var(--soleil);color:var(--creme);border:2.5px solid var(--soleil-ombre);box-shadow:0 4px 0 var(--soleil-ombre);animation:rwSpin .8s var(--sig) both}.reward .rw-ico svg{width:34px;height:34px;stroke-width:3}@keyframes rwSpin{0%{transform:scale(0) rotate(-180deg)}to{transform:scale(1) rotate(0)}}.reward .rw-main{font-size:18px;font-weight:900!important;color:var(--mer-ombre)}.reward .rw-sub{font-size:13px;opacity:.7}.dock.town{gap:6px}.dock.town .dock-actions{gap:8px}.dock.town .paints{gap:6px;padding:5px 10px}.dock.town .paints .lbl svg{width:18px;height:18px}.dock.town .swatch{width:30px;height:30px}.dock.town .swatch.sel{transform:scale(1.12);box-shadow:0 0 0 2px var(--papier),0 0 0 4px var(--encre)}.dock.town .bar{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;overflow-y:visible;width:100%;max-width:470px;padding:12px 10px 10px;gap:8px;touch-action:pan-x;scrollbar-width:none;-webkit-overflow-scrolling:touch}.dock.town .slot{width:58px;height:62px;touch-action:pan-x}.dock.town .slot img{width:56px;height:56px}.dock.town .slot.sel{transform:translateY(-5px)}.lock-btn{position:relative;color:var(--terre)}.lock-badge{position:absolute;top:-7px;right:-7px;min-width:22px;height:22px;padding:0 5px;border-radius:11px;display:grid;place-items:center;font-size:12px;font-weight:900;background:var(--terre);color:var(--creme);border:1.5px solid var(--terre-ombre)}.lock-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(74px,1fr));gap:12px 6px;margin:8px 0}.lock-grid .lslot{width:auto}.lock-grid .lthumb{width:58px;height:58px}.lock-grid .lthumb img{width:54px;height:54px}.lock-grid b{font-size:12px;font-weight:900;text-align:center;line-height:1.1}.dock.town .inv-empty{padding:8px 12px;font-size:13px}h2,h3,.title,.card .big,.record b,.level-card .name,.world-head h3,.bubble .who,.timer .num,.obj-count,.hud .score,.charm .cval{font-family:var(--f-titre)}.screen h2{font-weight:800;font-size:32px;letter-spacing:-.2px}.card h3,.sheet h3{display:inline-block;font-weight:800;padding:0 10px 6px;background:var(--brush) center bottom / 100% 12px no-repeat}.card .big{font-weight:800}.world-head h3{font-weight:700}.node .nname{font-weight:800;font-size:14px}.charm .cname{font-weight:800}.world-head small,.charm .cname small{font-family:var(--f-texte)}.hud .score,.timer .num,.obj-count,.charm .cval{font-weight:700}.card:after{content:"";position:absolute;left:50%;top:-13px;width:92px;height:24px;translate:-50% 0;rotate:-3deg;pointer-events:none;background:repeating-linear-gradient(90deg,#e46f8a8c 0 7px,#f2a0b473 7px 14px);clip-path:polygon(0 8%,4% 0,9% 10%,13% 2%,100% 0,96% 50%,100% 100%,6% 92%,0 100%,3% 50%);mix-blend-mode:multiply}.card.reward:after{background:repeating-linear-gradient(90deg,#7fd3e099 0 7px,#2f8fb559 7px 14px);rotate:4deg}.howto.card:after{background:repeating-linear-gradient(90deg,#f2b63699 0 7px,#f2b63659 7px 14px)}.level-card .num,.node .disc,.world-head .wnum,.howto .stepnum,.reward .rw-ico{font-family:var(--f-titre);outline:2px dashed rgba(255,246,230,.6);outline-offset:-7px}.world-head .wnum,.howto .stepnum{outline-offset:-5px;outline-width:1.5px}.node.locked .disc{outline-color:#8a7a6673}.node .disc{font-weight:800;font-size:26px;text-shadow:0 2px 0 rgba(74,58,46,.35)}.path:before{border-top:3px dotted rgba(74,58,46,.35)}.chip{font-family:var(--f-titre);font-weight:700;font-size:16px;padding:7px 14px 6px}.stat-row .chip:nth-child(1){rotate:-2deg}.stat-row .chip:nth-child(3){rotate:2deg}.obj-bar,.charm .prog{background:#4a3a2e1a;border:1px solid rgba(74,58,46,.18)}.obj-bar i{background:repeating-linear-gradient(-55deg,var(--mer) 0 6px,var(--mer-clair) 6px 11px)}.charm .prog i{background:repeating-linear-gradient(-55deg,var(--rose) 0 6px,var(--rose-clair) 6px 11px)}.obj-steps{font-weight:800;letter-spacing:.2px}.obj-text{font-weight:700}.bubble .who{font-weight:700;letter-spacing:.3px;rotate:-3deg;border-radius:3px}.bubble{font-weight:600}.slot{border-radius:14px 10px 15px 9px/10px 15px 9px 14px;box-shadow:2px 4px 0 var(--papier-3),2px 4px 0 1px #4a3a2e33}.slot.sel{box-shadow:0 6px 0 var(--mer-ombre)}.slot .count{font-family:var(--f-titre);font-weight:700;border-radius:50%}.float-label{font-family:var(--f-titre);font-weight:800;font-size:20px}.howto .grades span,.attr{font-family:var(--f-titre);font-weight:600}.howto .stepline b{font-family:var(--f-titre);font-weight:700;font-size:18px}.rewards .new:after{font-family:var(--f-titre);border-radius:2px;rotate:-4deg}.bubble.tail-up:after{left:auto;right:34px}.dock.town .bar.paper{background-color:var(--papier);background-image:var(--grain),var(--fibres);border:1.5px solid var(--trait);border-radius:var(--r-carte);box-shadow:3px 4px 0 -1px var(--papier-2),3px 4px 0 .5px #4a3a2e38}.dock.town .bar.paper:before{display:none}.dock.town .bar:after{content:"";flex:none;width:2px}.sheet .actions{display:flex;gap:10px;justify-content:center;align-items:center;margin-top:16px;flex-wrap:wrap}.sheet .actions .btn:not(.round){padding:0 20px}.btn.light.ico-mer svg{color:var(--mer)}.btn.light.ico-rose svg{color:var(--rose)}.btn.light.ico-mousse svg{color:var(--mousse-ombre)}.btn.light.ico-soleil svg{color:var(--soleil-ombre)}.btn.light.danger,.btn.light.danger svg{color:var(--terre)}.btn.light .done-tick{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--mousse);color:var(--creme)}.btn.light .done-tick svg{width:14px;height:14px;stroke-width:4;filter:none}.slot .count,.lock-badge,.rewards b,.peek-count{background:var(--terre);border:1.5px solid var(--terre-ombre);color:var(--creme);font-family:var(--f-titre);font-weight:700;box-shadow:0 2px 0 var(--terre-ombre)}.peek-count{position:absolute;top:-8px;right:-8px;min-width:22px;height:22px;padding:0 5px;border-radius:11px;display:grid;place-items:center;font-size:12px;text-shadow:none}.slot .count.zero{background:var(--verrou-ombre);border-color:var(--verrou-encre);box-shadow:0 2px 0 var(--verrou-encre)}.round-label .dots i{background:var(--voile)}.round-label .dots i.done{background:var(--ok)}.round-label .dots i.on{background:var(--info);box-shadow:0 0 0 2px var(--mer-pale)}.world-head small,.level-card .sub,.record span,.charm .cname small,.sheet .sub,.bubble .tap,.reward .rw-sub,.lslot small{opacity:1;color:var(--encre-2)}.screen h2{font-size:var(--t-xxl)}.card h3{font-size:var(--t-xl)}.sheet h3,.world-head h3,.level-card .name,.btn{font-size:var(--t-l)}.btn.small{font-size:var(--t-m)}.card p,.obj-text,.bubble{font-size:var(--t-s)}.paper:before{border-radius:var(--r-carte)}.btn:before{border-radius:var(--r-bouton)}.btn.round:before,.level-card .num,.node .disc{border-radius:var(--r-rond)}.attr,.obj-count,.lthumb{border-radius:var(--r-petit)}.lock-badge{text-shadow:none;font-size:13px}@media(max-height:700px){.title-wrap{margin-top:calc(70px + var(--safe-top))}}
