:root{--night-deep: #0d0d21;--night: #161633;--ground: #1d1b3f;--ground-edge: #2a2456;--mist: #4a4570;--star: #e8e6ff;--ember: #f79b4b;--rose: #e4569b;--violet: #8b5cf6;--text: #f0eefb;--text-dim: #9a95c2;--blk-definition: #ff6b6b;--blk-exemple: #51cf8a;--blk-demonstration: #c3c3d5;--blk-essence: #5aa7ff;--blk-utilite: #5aa7ff;--blk-explication: #5aa7ff;--blk-pieges: #5aa7ff;--blk-usage: #5aa7ff;--blk-pont: #5aa7ff;--grad-signature: linear-gradient(120deg, var(--ember), var(--rose));--font-display: "Fraunces", serif;--font-body: "Outfit", sans-serif;--fs-brand: 26px;--fs-title: 23px;--fs-body: 13.5px;--fs-label: 13px;--fs-caption: 11px;--r-sheet: 22px;--r-block: 10px;--r-pill: 999px;--glow-learned: 0 0 26px 8px rgba(247, 155, 75, .55), 0 0 70px 18px rgba(228, 86, 155, .25);--glow-open: 0 0 20px 6px rgba(139, 92, 246, .5);--glow-locked: 0 0 12px 2px rgba(74, 69, 112, .4);--blur-hud: blur(6px);--walk-duration: 1.1s;--walk-ease: cubic-bezier(.45, .05, .35, 1)}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%}body{font-family:var(--font-body);color:var(--text);background:radial-gradient(120% 90% at 50% 0%,#23204d 0%,var(--night) 45%,var(--night-deep) 100%);-webkit-user-select:none;user-select:none;touch-action:manipulation;overflow:hidden}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition-duration:.01s!important}}.gate{height:100%;display:grid;place-content:center;justify-items:center;gap:14px;position:relative;padding:24px}.gate-halo{position:absolute;top:50%;left:50%;width:340px;height:340px;transform:translate(-50%,-58%);border-radius:50%;background:radial-gradient(circle,rgba(139,92,246,.16) 0%,transparent 65%);pointer-events:none}.gate-brand{font-family:var(--font-display);font-size:44px;font-weight:700;color:var(--star);letter-spacing:.5px}.gate-a{background:var(--grad-signature);-webkit-background-clip:text;background-clip:text;color:transparent}.gate-sub{color:var(--text-dim);font-size:var(--fs-body);margin-bottom:10px}.gate-form{display:grid;gap:10px;justify-items:stretch;width:min(280px,78vw)}.gate-input{font-family:var(--font-body);font-size:var(--fs-body);color:var(--text);background:#1d1b3fd9;border:1px solid var(--ground-edge);border-radius:var(--r-pill);padding:11px 16px;outline:none;text-align:center}.gate-input:focus{border-color:var(--violet);box-shadow:var(--glow-open)}.gate-btn{font-family:var(--font-body);font-size:var(--fs-label);font-weight:600;color:var(--night-deep);background:var(--grad-signature);border:none;border-radius:var(--r-pill);padding:11px 16px;cursor:pointer}.gate-btn:disabled{opacity:.45;cursor:default}.gate-btn:focus-visible,.gate-input:focus-visible{outline:2px solid var(--star);outline-offset:2px}.gate-msg{color:var(--blk-definition);font-size:var(--fs-caption)}.stars{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0}.star{position:absolute;border-radius:50%;background:var(--star);animation:twinkle 4s ease-in-out infinite}@keyframes twinkle{0%,to{opacity:.25}50%{opacity:.85}}.hud-bar{position:fixed;top:0;left:0;right:0;z-index:30;padding:14px 18px;display:flex;justify-content:space-between;align-items:flex-start;pointer-events:none}.brand h1{font-family:var(--font-display);font-weight:700;font-size:var(--fs-brand);letter-spacing:.5px}.brand .a{background:var(--grad-signature);-webkit-background-clip:text;background-clip:text;color:transparent}.brand p{font-size:var(--fs-caption);color:var(--text-dim);margin-top:3px;letter-spacing:.4px}.hud{display:flex;gap:8px}.chip{background:#161633bf;border:1px solid rgba(139,92,246,.35);-webkit-backdrop-filter:var(--blur-hud);backdrop-filter:var(--blur-hud);border-radius:var(--r-pill);padding:6px 12px;font-size:12px;display:flex;align-items:center;gap:6px}.chip b{color:var(--ember);font-weight:600}.scene{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1;touch-action:manipulation}.world{position:absolute;left:50%;transform-style:preserve-3d}.island{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:46% 54% 52% 48%/50% 46% 54% 50%;background:radial-gradient(60% 60% at 42% 38%,rgba(139,92,246,.14),transparent 70%),radial-gradient(50% 50% at 68% 66%,rgba(228,86,155,.1),transparent 70%),radial-gradient(100% 100% at 50% 50%,var(--ground) 0%,var(--ground-edge) 78%,transparent 100%);box-shadow:0 0 120px 30px #8b5cf61f inset}.tuft{position:absolute;width:5px;height:5px;border-radius:50%;background:#8b5cf659;pointer-events:none}svg.paths{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible;pointer-events:none}.path-line{fill:none;stroke-linecap:round;transition:opacity .3s ease,stroke .3s ease}.path-frontier{stroke:#8b5cf6d9;stroke-width:2.5}.path-grise{stroke:#4a4570e6;stroke-width:2.5;stroke-dasharray:3 12;opacity:.55}.path-acquis{stroke:#f79b4b99;stroke-width:1.8;opacity:.35}.path-related{stroke:#9a95c299;stroke-width:1.5;stroke-dasharray:1 8}.path-dim{opacity:.12}.path-pulse{fill:none;stroke:#ffe1b8;stroke-width:3.5;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;animation:path-draw .95s ease-out forwards;filter:drop-shadow(0 0 6px rgba(247,155,75,.8))}@keyframes path-draw{to{stroke-dashoffset:0}}.anim-flare .orb-core{animation:orb-flare .9s ease-out}@keyframes orb-flare{0%{transform:scale(1)}35%{transform:scale(1.35);box-shadow:0 0 55px 22px #f79b4be6,0 0 110px 40px #e4569b80}to{transform:scale(1)}}.anim-flare .badge-dot{animation:badge-pop .55s cubic-bezier(.2,1.6,.4,1)}@keyframes badge-pop{0%{transform:scale(0)}70%{transform:scale(1.35)}to{transform:scale(1)}}.anim-bloom .orb-core{animation:orb-bloom .8s ease-out}@keyframes orb-bloom{0%,to{transform:scale(1)}40%{transform:scale(1.15);box-shadow:0 0 34px 12px #8b5cf6bf}}.anim-unveil .orb-core{animation:orb-unveil .85s ease-out}@keyframes orb-unveil{0%{filter:saturate(.5) brightness(.55);box-shadow:var(--glow-locked)}60%{filter:saturate(1.15) brightness(1.25);box-shadow:0 0 36px 14px #8b5cf6b3}to{filter:none}}.anim-unveil .orb-label{animation:label-ping .85s ease-out}@keyframes label-ping{0%{opacity:.4}55%{opacity:1;text-shadow:0 0 14px rgba(139,92,246,.9)}to{opacity:1}}.anim-shimmer .orb-core{animation:orb-shimmer .8s ease-in-out}@keyframes orb-shimmer{0%,to{filter:saturate(.5)}35%{filter:saturate(.75) brightness(1.25)}65%{filter:saturate(.55) brightness(.9)}}.spot{position:absolute;transform-style:preserve-3d;transform:translate(-50%,-50%)}.billboard{transform-origin:50% 100%;transform-style:preserve-3d;position:absolute;left:50%;bottom:0;translate:-50% 0;display:flex;flex-direction:column;align-items:center}.shadow{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(closest-side,rgba(0,0,0,.5),transparent 75%)}.orb-wrap{cursor:pointer}.orb{border-radius:50%;position:relative;transition:transform .25s ease}.orb-wrap:active .orb{transform:scale(.92)}.orb-core{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%}.orb-label{margin-top:10px;font-size:var(--fs-label);font-weight:500;letter-spacing:.3px;text-align:center;text-shadow:0 2px 10px rgba(13,13,33,.9);white-space:nowrap}.orb-sub{font-size:10px;color:var(--text-dim);text-align:center;margin-top:2px}.o-brillante .orb-core{background:radial-gradient(circle at 32% 30%,#ffe1b8 0%,var(--ember) 35%,var(--rose) 80%);box-shadow:var(--glow-learned)}.o-pulsante .orb-core,.o-accessible .orb-core{background:radial-gradient(circle at 32% 30%,#e6dcff 0%,var(--violet) 45%,#4c3a9e 90%);box-shadow:var(--glow-open)}.o-pulsante .orb-core{animation:pulse 2.6s ease-in-out infinite}@keyframes pulse{0%,to{box-shadow:0 0 14px 4px #8b5cf659}50%{box-shadow:0 0 30px 10px #8b5cf6a6}}.o-brumeuse .orb-core{background:radial-gradient(circle at 32% 30%,#6a6590 0%,var(--mist) 50%,#2c2950 90%);box-shadow:var(--glow-locked);filter:saturate(.5)}.o-brumeuse .orb-label{color:var(--text-dim)}.o-chapeau .orb-core:after{content:"";position:absolute;top:-9px;right:-9px;bottom:-9px;left:-9px;border-radius:50%;border:1.5px dashed rgba(247,155,75,.5);animation:spin 24s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.badge-dot{position:absolute;top:-4px;right:-4px;width:18px;height:18px;border-radius:50%;background:var(--grad-signature);display:flex;align-items:center;justify-content:center;font-size:10px;box-shadow:0 2px 6px #0006}.avatar-spot{transition:left var(--walk-duration) var(--walk-ease),top var(--walk-duration) var(--walk-ease)}.ava{width:34px;display:flex;flex-direction:column;align-items:center;position:relative}.ava.walking{animation:bob .35s ease-in-out infinite}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.ava-head{width:16px;height:16px;border-radius:50%;background:#ffd9b8;position:relative;z-index:2}.ava-head:before,.ava-head:after{content:"";position:absolute;top:6px;width:2.5px;height:2.5px;border-radius:50%;background:#2a2038}.ava-head:before{left:4px}.ava-head:after{right:4px}.ava-hood{position:absolute;top:-4px;left:50%;translate:-50% 0;width:22px;height:14px;border-radius:11px 11px 4px 4px;z-index:1;background:var(--grad-signature)}.ava-body{width:20px;height:20px;border-radius:8px 8px 5px 5px;margin-top:-3px;position:relative;z-index:2;background:linear-gradient(160deg,#3a3560,#262247)}.ava-cape{position:absolute;bottom:-2px;left:50%;translate:-50% 0;width:26px;height:16px;border-radius:0 0 12px 12px;opacity:.85;z-index:0;background:var(--grad-signature)}.ava-glow{position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px;border-radius:50%;background:radial-gradient(circle,rgba(247,155,75,.25),transparent 70%);z-index:-1}.sheet{position:fixed;left:0;right:0;bottom:0;z-index:40;transform:translateY(105%);transition:transform .38s cubic-bezier(.3,.9,.3,1);max-height:74vh;display:flex;flex-direction:column;background:linear-gradient(180deg,#1d1b3ff7,#0d0d21fc);border-radius:var(--r-sheet) var(--r-sheet) 0 0;border-top:1px solid rgba(139,92,246,.4);box-shadow:0 -20px 60px #00000080}.sheet.open{transform:translateY(0)}.sheet-grab{width:44px;height:4px;border-radius:2px;background:var(--mist);margin:10px auto 4px}.sheet-head{padding:8px 20px 18px}.sheet-eyebrow{font-size:var(--fs-caption);letter-spacing:1.2px;text-transform:uppercase;color:var(--ember);font-weight:600}.sheet-title{font-family:var(--font-display);font-size:var(--fs-title);font-weight:600;margin-top:2px}.sheet-entry{font-size:var(--fs-body);color:var(--text-dim);font-style:italic;margin-top:6px;line-height:1.45}.sheet-note{margin:0 20px 18px;padding:11px 13px;border-radius:var(--r-block);background:#ffffff0a;font-size:var(--fs-caption);color:var(--text-dim);line-height:1.5}.sheet-close{position:absolute;top:12px;right:14px;width:30px;height:30px;border-radius:50%;border:none;background:#ffffff14;color:var(--text-dim);font-size:15px;cursor:pointer}.orb:before{content:"";position:absolute;left:50%;top:50%;width:max(100%,44px);height:max(100%,44px);transform:translate(-50%,-50%);border-radius:50%}.orb-wrap{transition:opacity .3s ease}.orb-occluded{opacity:.12;pointer-events:none}.entry-banner{position:fixed;left:50%;bottom:58px;translate:-50% 0;z-index:25;max-width:min(86vw,460px);padding:10px 16px;cursor:pointer;background:#161633d9;border:1px solid rgba(139,92,246,.35);border-radius:14px;-webkit-backdrop-filter:var(--blur-hud);backdrop-filter:var(--blur-hud);animation:banner-in .35s cubic-bezier(.3,1.1,.4,1) backwards}.entry-banner-name{font-size:var(--fs-caption);letter-spacing:1.1px;text-transform:uppercase;color:var(--ember);font-weight:600}.entry-banner-text{font-size:var(--fs-body);font-style:italic;color:var(--text);line-height:1.4;margin-top:3px}@keyframes banner-in{0%{opacity:0;translate:-50% 10px}to{opacity:1;translate:-50% 0}}.hint{position:fixed;bottom:20px;left:50%;translate:-50% 0;z-index:20;font-size:12.5px;color:var(--text-dim);background:#0d0d21b3;padding:7px 15px;border-radius:var(--r-pill);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fadehint 1s ease 6s forwards;pointer-events:none;white-space:nowrap}@keyframes fadehint{to{opacity:0}}.hud{pointer-events:auto}.chip-btn{cursor:pointer;font-family:inherit;color:var(--text)}.advice{position:fixed;bottom:56px;left:50%;translate:-50% 0;z-index:21;display:flex;gap:6px;align-items:center;padding:9px 14px;cursor:pointer;border-radius:var(--r-pill, 999px);border:1px solid rgba(139,92,246,.45);background:#161633d9;-webkit-backdrop-filter:var(--blur-hud, blur(8px));backdrop-filter:var(--blur-hud, blur(8px));color:var(--text);font-size:13px;max-width:min(92vw,460px)}.advice-kind{color:var(--text-dim)}.advice-unlocks{color:var(--ember)}.advice-x{margin-left:4px;padding:2px 6px;color:var(--text-dim);border-radius:999px}.advice-x:hover{color:var(--text);background:#ffffff14}.sat-wrap{cursor:pointer}.sat{display:flex;align-items:center;justify-content:center;text-shadow:0 1px 6px rgba(13,13,33,.9)}.sat-block{width:22px;height:22px;border-radius:50%;border:1.5px solid;background:#161633e0;font-size:8px;font-weight:700;letter-spacing:.4px;box-shadow:0 0 10px 2px #8b5cf640}.sat-check{width:18px;height:18px;transform:rotate(45deg);border-radius:4px;border:1.5px solid rgba(247,155,75,.85);background:#161633e0;color:var(--ember);font-size:7.5px;font-weight:700;box-shadow:0 0 10px 2px #f79b4b40}.sat-check.passed{background:var(--grad-signature);color:#fff;border-color:transparent;box-shadow:var(--glow-open);font-size:10px}.sat-check-inner{transform:rotate(-45deg)}.sat-pop{animation:sat-pop .35s cubic-bezier(.3,1.4,.5,1) backwards,sat-bob 3.2s ease-in-out .4s infinite}@keyframes sat-pop{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}.sat-check.sat-pop{animation:sat-pop-d .35s cubic-bezier(.3,1.4,.5,1) backwards,sat-bob 3.2s ease-in-out .4s infinite}@keyframes sat-pop-d{0%{transform:rotate(45deg) scale(0);opacity:0}to{transform:rotate(45deg) scale(1);opacity:1}}@keyframes sat-bob{0%,to{translate:0 0}50%{translate:0 -3px}}.blk-focus{animation:blk-flash 1.6s ease}@keyframes blk-flash{0%{background:#f79b4b38}to{background:#ffffff0a}}.presets{display:flex;gap:7px;padding:2px 20px 12px;flex-wrap:wrap}.preset{border:1px solid rgba(139,92,246,.4);background:#8b5cf61f;border-radius:var(--r-pill);padding:5px 12px;font-size:12px;color:var(--text);cursor:pointer;font-family:inherit}.preset.on{background:var(--grad-signature);border-color:transparent;font-weight:600}.preset-mark{font-weight:700}.preset-passed:not(.on){border-color:#51cf8a8c}.preset-badge:not(.on){border-color:#f79b4bb3}.sheet-body{overflow-y:auto;padding:4px 20px 8px;display:flex;flex-direction:column;gap:10px}.sheet-empty{font-size:var(--fs-caption);color:var(--text-dim);font-style:italic;padding:8px 2px}.blk{border-left:3px solid;border-radius:var(--r-block);background:#ffffff0a;padding:11px 13px;font-size:var(--fs-body);line-height:1.55}.blk-tag{font-size:10.5px;font-weight:600;letter-spacing:.8px;text-transform:uppercase;margin-bottom:5px;display:block}.blk .fold{float:right;font-size:11px;color:var(--text-dim);cursor:pointer;background:none;border:none;font-family:inherit}.blk-formal{font-family:var(--font-display);font-size:14.5px;font-weight:600;padding:7px 10px;margin-bottom:8px;border-radius:7px;background:#0d0d218c;letter-spacing:.2px}.blk-essence{border-color:var(--blk-essence)}.blk-essence .blk-tag{color:var(--blk-essence)}.blk-utilite{border-color:var(--blk-utilite)}.blk-utilite .blk-tag{color:var(--blk-utilite)}.blk-explication{border-color:var(--blk-explication)}.blk-explication .blk-tag{color:var(--blk-explication)}.blk-pieges{border-color:var(--blk-pieges)}.blk-pieges .blk-tag{color:var(--blk-pieges)}.blk-usage{border-color:var(--blk-usage)}.blk-usage .blk-tag{color:var(--blk-usage)}.blk-pont{border-color:var(--blk-pont)}.blk-pont .blk-tag{color:var(--blk-pont)}.blk-definition{border-color:var(--blk-definition)}.blk-definition .blk-tag{color:var(--blk-definition)}.blk-exemple{border-color:var(--blk-exemple)}.blk-exemple .blk-tag{color:var(--blk-exemple)}.blk-demonstration{border-color:var(--blk-demonstration)}.blk-demonstration .blk-tag{color:var(--blk-demonstration)}.sheet-cta{margin:8px 20px 18px;padding:13px;border-radius:14px;border:none;background:var(--grad-signature);color:#fff;font-family:inherit;font-size:15px;font-weight:600;letter-spacing:.3px}.sheet-cta:disabled{opacity:.55;cursor:default}.verify{margin:4px 20px 18px;display:grid;gap:10px}.verify-head{font-size:12.5px;color:var(--text-dim);letter-spacing:.02em}.verify-done{padding:12px;border-radius:12px;text-align:center;font-weight:600;color:#51cf8a;background:#51cf8a14;border:1px solid rgba(81,207,138,.35)}.verify-q{font-size:14px;line-height:1.5}.verify-options{display:grid;gap:8px}.verify-opt{text-align:left;padding:11px 14px;border-radius:12px;cursor:pointer;border:1px solid rgba(139,92,246,.35);background:#8b5cf614;color:var(--text);font-size:13.5px}.verify-opt:hover:not(:disabled){border-color:var(--violet)}.verify-row{display:flex;gap:8px}.verify-input{flex:1;min-width:0;padding:11px 14px;border-radius:12px;border:1px solid rgba(139,92,246,.35);background:#0d0d2199;color:var(--text);font-size:14px}.verify-input::placeholder{color:var(--mist);font-size:12px}.verify-go{padding:11px 18px;border-radius:12px;border:none;cursor:pointer;font-weight:700;color:#14102a;background:var(--grad-signature, linear-gradient(120deg, var(--ember), var(--rose)))}.verify-go:disabled{opacity:.5;cursor:default}.verify-miss{font-size:13px;color:var(--ember)}.verify-error{font-size:12.5px;color:#ff6b6b}.verify-hints{margin:0;padding-left:18px;display:grid;gap:4px;font-size:13px;color:var(--text-dim)}.verify-exo{padding:12px;border-radius:14px;display:grid;gap:10px;border:1px solid rgba(139,92,246,.25);background:#16163380}.verify-exo.done{border-color:#51cf8a66}.verify-exo-head{display:flex;gap:10px;align-items:baseline}.verify-exo-mark{color:var(--ember)}.verify-exo.done .verify-exo-mark{color:#51cf8a}.verify-solution .fold{margin-bottom:6px}
