:root{--violet: #6d4aff;--violet-deep: #3b2f80;--cyan: #17b8c9;--cyan-deep: #0d7f8c;--sun: #ffb703;--coral: #ff6b6b;--leaf: #38b000;--leaf-deep: #2d8a00;--d-francais: #ff7a59;--d-maths: #4c7bff;--d-logique: #a855f7;--d-culture: #12b886;--bg: #f4f2ff;--bg-2: #eef6ff;--surface: #ffffff;--surface-2: #f7f8fc;--ink: #23213a;--ink-soft: #55536e;--ink-faint: #8b89a3;--line: #e6e4f2;--ok: #1f9d55;--ok-bg: #e4f7ec;--err: #d64545;--err-bg: #fdecec;--radius-s: 10px;--radius: 16px;--radius-l: 24px;--radius-xl: 32px;--shadow-s: 0 2px 6px rgba(35, 33, 58, .08);--shadow: 0 8px 24px rgba(35, 33, 58, .12);--shadow-l: 0 18px 48px rgba(59, 47, 128, .22);--font: "Baloo 2", "Trebuchet MS", "Segoe UI", system-ui, -apple-system, sans-serif;--focus: 3px solid #1b60ff;--maxw: 1240px;--pad: 28px}@media (max-width: 900px){:root{--pad: 20px}}@media (max-width: 520px){:root{--pad: 14px}}[data-theme=foret]{--bg: #eef7ec;--bg-2: #e3f2ff}[data-theme=iles]{--bg: #e6f7fb;--bg-2: #eaf1ff}[data-theme=espace]{--bg: #ecebff;--bg-2: #e7f0ff}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--font);color:var(--ink);background:radial-gradient(1200px 700px at 15% -10%,var(--bg-2),transparent 60%),radial-gradient(1000px 600px at 100% 0%,#fff4e6,transparent 55%),var(--bg);min-height:100vh;line-height:1.5;-webkit-font-smoothing:antialiased}body.large-text{font-size:118%}h1,h2,h3{line-height:1.15;margin:0 0 .4em;letter-spacing:-.01em}h1{font-size:clamp(1.7rem,4vw,2.6rem);font-weight:800}h2{font-size:clamp(1.3rem,3vw,1.9rem);font-weight:800}h3{font-size:1.15rem;font-weight:700}p{margin:0 0 .8em}a{color:var(--violet)}button{font-family:inherit}:focus-visible{outline:var(--focus);outline-offset:2px;border-radius:6px}@media (prefers-reduced-motion: reduce){*{animation-duration:.001ms!important;transition-duration:.001ms!important}}body.reduce-motion *{animation-duration:.001ms!important;transition:none!important}.app-shell{min-height:100vh;display:flex;flex-direction:column}.page{width:100%;max-width:var(--maxw);margin:0 auto;padding:24px var(--pad) 96px;flex:1}.page--narrow{max-width:680px}.stack{display:flex;flex-direction:column;gap:16px}.row{display:flex;align-items:center;gap:12px}.row-wrap{display:flex;flex-wrap:wrap;gap:12px}.spread{display:flex;align-items:center;justify-content:space-between;gap:12px}.grow{flex:1}.center{text-align:center}.muted{color:var(--ink-soft)}.faint{color:var(--ink-faint)}.hidden-visually{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.btn{--btn-bg: var(--violet);--btn-ink: #fff;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px 22px;border:none;border-radius:999px;background:var(--btn-bg);color:var(--btn-ink);font-weight:800;font-size:1.02rem;cursor:pointer;box-shadow:var(--shadow-s);transition:transform .12s ease,box-shadow .12s ease,filter .12s ease;min-height:48px;text-decoration:none}.btn:hover{transform:translateY(-2px);box-shadow:var(--shadow);filter:brightness(1.03)}.btn:active{transform:translateY(0)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn--lg{padding:17px 34px;font-size:1.15rem;border-radius:999px}.btn--block{width:100%}.btn--secondary{--btn-bg: #fff;--btn-ink: var(--violet-deep);box-shadow:inset 0 0 0 2px var(--line),var(--shadow-s)}.btn--ghost{--btn-bg: transparent;--btn-ink: var(--ink-soft);box-shadow:none}.btn--ghost:hover{background:var(--surface-2)}.btn--sun{--btn-bg: var(--sun);--btn-ink: #4a2e00}.btn--ok{--btn-bg: var(--ok)}.btn--danger{--btn-bg: var(--err)}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;border:none;background:var(--surface);color:var(--ink);font-size:1.25rem;cursor:pointer;box-shadow:var(--shadow-s);transition:transform .1s ease}.icon-btn:hover{transform:scale(1.06)}.card{background:var(--surface);border-radius:var(--radius-l);box-shadow:var(--shadow);padding:22px}.card--pad-lg{padding:28px}.card--flat{box-shadow:var(--shadow-s)}.card--outline{box-shadow:inset 0 0 0 2px var(--line)}.tile{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-s);padding:16px;border:2px solid transparent;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,border-color .12s;text-align:left;width:100%}.tile:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.tile[aria-pressed=true],.tile.is-selected{border-color:var(--violet);box-shadow:var(--shadow)}.chip{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:999px;font-size:.85rem;font-weight:700;background:var(--surface-2);color:var(--ink-soft)}.chip--tone{background:color-mix(in srgb,var(--tone) 18%,#fff);color:var(--tone-ink, var(--ink))}.badge-coin{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;font-weight:800;background:linear-gradient(135deg,#fff2c9,#ffd23f);color:#5a3d00;box-shadow:var(--shadow-s)}.pill-tab{padding:9px 16px;border-radius:999px;border:none;cursor:pointer;background:transparent;color:var(--ink-soft);font-weight:800;font-size:.95rem}.pill-tab.is-active{background:var(--violet);color:#fff;box-shadow:var(--shadow-s)}.progress{height:14px;border-radius:999px;background:var(--surface-2);overflow:hidden;box-shadow:inset 0 0 0 1px var(--line)}.progress>span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--cyan),var(--violet));transition:width .5s ease}.progress--thin{height:9px}.stars{display:inline-flex;gap:3px;font-size:1.1rem;color:var(--sun)}.stars .off{color:#dcd8ee}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:12px;padding:12px max(18px,var(--pad));background:#ffffffd1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.topbar .brand{display:flex;align-items:center;gap:10px;font-weight:800;color:var(--violet-deep);text-decoration:none}.topbar .brand img{width:34px;height:34px}.subnav{position:sticky;top:61px;z-index:15;display:flex;gap:6px;justify-content:center;flex-wrap:wrap;padding:8px 12px;background:#ffffffb3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}.subnav-item{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:999px;text-decoration:none;color:var(--ink-soft);font-weight:800;font-size:.95rem}.subnav-item.is-active{background:var(--violet);color:#fff;box-shadow:var(--shadow-s)}.subnav-item:hover:not(.is-active){background:var(--surface-2)}@media (max-width: 520px){.hide-mobile{display:none}.subnav-item{padding:8px 12px}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1c183c80;display:flex;align-items:center;justify-content:center;padding:20px;z-index:60;animation:fade .15s ease}.modal{background:var(--surface);border-radius:var(--radius-l);padding:26px;max-width:460px;width:100%;box-shadow:var(--shadow-l);animation:pop .18s ease}.answer{display:block;width:100%;text-align:left;padding:15px 18px;border-radius:var(--radius);border:2px solid var(--line);background:var(--surface);font-size:1.05rem;font-weight:600;cursor:pointer;color:var(--ink);transition:border-color .12s,background .12s,transform .1s}.answer:hover{border-color:var(--violet);transform:translateY(-1px)}.answer.is-picked{border-color:var(--violet);background:color-mix(in srgb,var(--violet) 8%,#fff)}.answer.is-correct{border-color:var(--ok);background:var(--ok-bg)}.answer.is-wrong{border-color:var(--err);background:var(--err-bg)}.answer:disabled{cursor:default}.feedback{border-radius:var(--radius);padding:16px 18px;margin-top:4px;animation:pop .2s ease}.feedback--ok{background:var(--ok-bg);border:2px solid #b6e6c9}.feedback--err{background:var(--err-bg);border:2px solid #f4c9c9}.feedback h4{margin:0 0 4px}.hint-box{background:#fff8e6;border:2px dashed #ffd98a;border-radius:var(--radius);padding:14px 16px;animation:pop .2s ease}.avatar-blob{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;font-size:1.6rem;box-shadow:var(--shadow-s)}.worldmap{position:relative;border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow)}.zone-dot{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:4px;background:none;border:none;cursor:pointer;color:#23213a}.zone-dot .bubble{width:62px;height:62px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.8rem;background:#fff;box-shadow:var(--shadow);border:3px solid #fff;transition:transform .15s ease}.zone-dot:hover .bubble{transform:scale(1.1) translateY(-2px)}.zone-dot .tag{font-size:.72rem;font-weight:800;background:#ffffffe6;padding:2px 8px;border-radius:999px;box-shadow:var(--shadow-s);max-width:90px}.zone-dot.is-locked .bubble{filter:grayscale(.7);opacity:.75}.zone-dot .lock{position:absolute;top:-6px;right:-6px;font-size:.9rem}.zone-dot .done{position:absolute;top:-8px;right:-8px;font-size:1rem}.grid{display:grid;gap:16px}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-auto{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}@media (max-width: 680px){.grid-3{grid-template-columns:repeat(2,1fr)}}@media (max-width: 540px){.grid-2,.grid-3{grid-template-columns:1fr}.grid-auto{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}}.kbd{font-size:.8rem;background:var(--surface-2);padding:2px 7px;border-radius:6px;border:1px solid var(--line)}.divider{height:1px;background:var(--line);border:0;margin:8px 0}.timer{font-variant-numeric:tabular-nums;font-weight:800}.timer.is-low{color:var(--err)}.match-item{padding:12px 14px;border-radius:var(--radius-s);border:2px solid var(--line);background:var(--surface);cursor:pointer;font-weight:600;transition:all .1s}.match-item.is-active{border-color:var(--violet);background:color-mix(in srgb,var(--violet) 10%,#fff)}.match-item.is-done{border-color:var(--ok);background:var(--ok-bg);cursor:default}.order-item{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:var(--radius-s);border:2px solid var(--line);background:var(--surface);font-weight:600}.order-item .handle{display:inline-flex;gap:4px}.order-item .idx{width:26px;height:26px;border-radius:50%;background:var(--surface-2);display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:.85rem}.text-input{padding:12px 14px;border-radius:var(--radius-s);border:2px solid var(--line);font-size:1.05rem;font-family:inherit;width:100%;background:var(--surface);color:var(--ink)}.text-input:focus{border-color:var(--violet);outline:none}@keyframes pop{0%{transform:scale(.96);opacity:0}to{transform:scale(1);opacity:1}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes floaty{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes pouf{0%{transform:scale(.5);opacity:0}60%{transform:scale(1.15)}to{transform:scale(1);opacity:1}}.floaty{animation:floaty 3.5s ease-in-out infinite}.pouf{animation:pouf .4s ease}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-7px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(3px)}}@keyframes bounceIn{0%{transform:scale(.85);opacity:0}55%{transform:scale(1.06)}to{transform:scale(1);opacity:1}}@keyframes wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-12deg)}75%{transform:rotate(12deg)}}.shake{animation:shake .45s ease}.bounce-in{animation:bounceIn .4s cubic-bezier(.2,1.4,.4,1)}.mascot{display:inline-block;font-size:1.4rem;animation:wiggle .8s ease 2;transform-origin:70% 70%}body.reduce-motion .shake,body.reduce-motion .bounce-in,body.reduce-motion .mascot{animation:none!important}.confetti{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:80;overflow:hidden}.confetti i{position:absolute;top:-12px;width:10px;height:14px;border-radius:2px;animation:fall 1.5s linear forwards}@keyframes fall{to{transform:translateY(105vh) rotate(540deg);opacity:.9}}.sr-live{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
