:root{--bg:#0b0d10;--panel:#0f1217;--elev:#13171c;--editor:#0c0f13;--line:#1b2027;--line-2:#272e38;--dim:#5d6571;--txt:#9aa4b0;--bright:#e8edf2;--green:#3fb950;--green-2:#2ea043;--amber:#c2922a;--rose:#d4615a;--bg-green:#3fb9501f;--bg-amber:#c2922a21;--bg-rose:#d4615a21;--r:8px}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased}body{background:var(--bg);color:var(--txt);font-variant-numeric:tabular-nums;min-height:100dvh;font-family:JetBrains Mono,ui-monospace,SF Mono,monospace;font-size:13px;line-height:1.6}body:after{content:"";z-index:99;pointer-events:none;opacity:.025;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}a{color:inherit}::selection{background:#3fb95040}button{font-family:inherit}.bright{color:var(--bright)}.dim{color:var(--dim)}.green{color:var(--green)}.btn-primary{background:var(--green);color:#06210d;cursor:pointer;border:0;border-radius:6px;grid-auto-flow:column;align-items:center;gap:9px;padding:9px 16px;font-family:inherit;font-size:12px;font-weight:700;transition:transform 80ms,background .15s;display:grid}.btn-primary:hover{background:#46c659}.btn-primary:active{transform:translateY(1px)}.btn-primary:disabled{background:var(--line-2);color:var(--dim);cursor:default;transform:none}.btn-text{color:var(--dim);cursor:pointer;background:0 0;border:0;padding:4px 0;font-family:inherit;font-size:12px;transition:color .12s}.btn-text:hover{color:var(--txt)}.topbar{z-index:20;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);background:#0b0d10d9;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;padding:14px 24px;display:grid;position:sticky;top:0}.brand{grid-auto-flow:column;align-items:center;gap:10px;display:grid}.brand .glyph{background:var(--elev);border:1px solid var(--line-2);width:26px;height:26px;color:var(--green);border-radius:6px;place-items:center;display:grid}.brand b{color:var(--bright);letter-spacing:-.02em;font-weight:700}.brand .crumb{color:var(--dim)}.me{color:var(--bright);grid-auto-flow:column;justify-self:end;align-items:center;gap:8px;display:grid}.me .dot{background:var(--green);width:7px;height:7px;box-shadow:0 0 0 3px var(--bg-green);border-radius:50%}.page{max-width:1280px;margin:0 auto;padding:0 24px 64px}.prompt-line{color:var(--dim);padding:26px 0 18px}.prompt-line .u{color:var(--green)}.prompt-line .p{color:var(--txt)}.caret{background:var(--green);vertical-align:-2px;width:8px;height:15px;margin-left:3px;animation:1.1s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.statsbar{border:1px solid var(--line);border-radius:var(--r);grid-template-columns:repeat(2,auto) 1fr;gap:0;margin-bottom:20px;display:grid;overflow:hidden}.stat{border-right:1px solid var(--line);gap:5px;padding:14px 18px;display:grid}.stat:last-child{border-right:0}.stat .k{color:var(--dim);letter-spacing:.12em;text-transform:uppercase;font-size:10px}.stat .v{color:var(--bright);letter-spacing:-.01em;font-size:18px;font-weight:500}.stat.xp{justify-items:start}.bar{color:var(--dim);letter-spacing:1px;white-space:nowrap;font-size:13px}.bar .f{color:var(--green)}.tbl{border:1px solid var(--line);border-radius:var(--r);overflow:hidden}.tr{border-bottom:1px solid var(--line);grid-template-columns:34px 30px 1fr 110px 28px;align-items:center;gap:14px;height:46px;padding:0 16px;display:grid;position:relative}.tr:last-child{border-bottom:0}.thead{background:var(--panel);height:38px;color:var(--dim);letter-spacing:.1em;text-transform:uppercase;font-size:10px}.row{text-align:left;cursor:pointer;width:100%;color:var(--txt);background:0 0;border:0;transition:background .12s}.row:hover{background:var(--elev)}.row:before{content:"";background:0 0;width:2px;transition:background .12s;position:absolute;top:0;bottom:0;left:0}.row:hover:before{background:var(--green)}.theme-head{background:var(--panel);border-top:1px solid var(--line-2);grid-template-columns:1fr auto;height:40px}.theme-block:first-child .theme-head{border-top:0}.theme-head .th-name{color:var(--bright);font-size:12px}.theme-head .th-name:before{content:"# ";color:var(--green)}.theme-head .th-count{color:var(--dim);font-variant-numeric:tabular-nums;font-size:11px}.st{place-items:center;display:grid}.st .ok{color:var(--green)}.st .todo{color:var(--line-2)}.num{color:var(--dim)}.title{color:var(--bright);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.row.done .title{color:var(--txt)}.tag{letter-spacing:.04em;text-transform:uppercase;border-radius:5px;width:fit-content;padding:3px 8px;font-size:10px}.tag.facile{color:var(--green);background:var(--bg-green)}.tag.moyen{color:var(--amber);background:var(--bg-amber)}.tag.difficile{color:var(--rose);background:var(--bg-rose)}.go{color:var(--dim);opacity:0;justify-self:end;transition:opacity .12s,transform .12s}.row:hover .go{opacity:1;color:var(--green);transform:translate(2px)}.gate{place-items:center;min-height:100dvh;padding:1.5rem;display:grid}.gate-card{background:var(--panel);border:1px solid var(--line-2);border-radius:12px;gap:1rem;width:min(420px,100%);padding:2.5rem 2rem;display:grid}.gate-head{color:var(--bright);letter-spacing:-.02em;grid-auto-flow:column;justify-content:start;align-items:center;gap:10px;font-size:15px;font-weight:700;display:grid}.gate-head .glyph{background:var(--elev);border:1px solid var(--line-2);width:26px;height:26px;color:var(--green);border-radius:6px;place-items:center;display:grid}.gate-prompt{color:var(--dim);font-size:12px}.gate-prompt .u{color:var(--green)}.gate-card p{color:var(--dim);margin:0;font-size:12px}.gate-form{border:1px solid var(--line-2);background:var(--elev);border-radius:6px;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;margin-top:.3rem;padding:6px 8px;display:grid}.gate-form .pr{color:var(--green);font-size:14px}.gate-form input{color:var(--bright);background:0 0;border:0;outline:0;font-family:inherit;font-size:13px}.gate-form input::placeholder{color:var(--dim)}.level-view{grid-template-columns:minmax(340px,40%) 1fr;align-items:start;gap:28px;padding-top:24px;display:grid}@media (width<=860px){.level-view{grid-template-columns:1fr}}.statement{border:1px solid var(--line);border-radius:var(--r);align-content:start;gap:.8rem;padding:24px;display:grid}.statement h2{color:var(--bright);grid-template-columns:1fr auto;align-items:center;gap:.6rem;margin:.3rem 0 0;font-size:16px;font-weight:700;display:grid}.statement p{color:var(--txt);max-width:60ch;margin:0}.statement code{background:var(--elev);border:1px solid var(--line);color:var(--bright);border-radius:4px;padding:1px 6px}.statement strong{color:var(--bright);font-weight:600}.editor{border:1px solid var(--line);border-radius:var(--r);gap:0;display:grid;overflow:hidden}.tabbar{border-bottom:1px solid var(--line);background:var(--panel);grid-template-columns:auto 1fr auto;align-items:center;display:grid}.ftab{color:var(--bright);border-right:1px solid var(--line);grid-auto-flow:column;align-items:center;gap:8px;padding:10px 16px;font-size:12px;display:grid}.ftab .py{color:#4d8fe6}.lang{color:var(--dim);justify-self:end;padding:0 16px;font-size:11px}.editor .cm-editor{border:0!important;border-radius:0!important}.editor .cm-editor.cm-focused{box-shadow:none!important}.run-bar{border-top:1px solid var(--line);background:var(--panel);grid-template-columns:auto 1fr;align-items:center;gap:12px;padding:11px 16px;display:grid}.run{justify-self:start}.runner{border-top:1px solid var(--line);background:var(--panel)}.rhead{border-bottom:1px solid var(--line);letter-spacing:.08em;grid-auto-flow:column;justify-content:start;align-items:center;gap:10px;padding:10px 16px;font-size:11px;font-weight:700;display:grid}.rhead.ok{color:var(--green)}.rhead.ko{color:var(--rose)}.rhead .dim{color:var(--dim);font-weight:400}.rline{grid-auto-flow:column;justify-content:start;align-items:baseline;gap:10px;padding:5px 16px;font-size:12px;display:grid}.rline.pass .sym{color:var(--green)}.rline.fail .sym{color:var(--rose)}.rline.dim{color:var(--dim)}.rline .txt{color:var(--txt)}.rline .fail{color:var(--rose)}.rsum{border-top:1px solid var(--line);color:var(--txt);margin-top:4px;padding:8px 16px 12px;font-size:12px}.rsum b.p{color:var(--green)}.rsum b.f{color:var(--rose)}.victory{background:var(--bg-green);border-radius:var(--r);border:1px solid #3fb95059;grid-template-columns:auto 1fr;align-items:center;gap:12px;margin:0 16px 12px;padding:12px 16px;animation:.35s cubic-bezier(.16,1,.3,1) pop;display:grid}@keyframes pop{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.victory .vt{color:var(--green);letter-spacing:.02em;font-weight:700}.victory .vx{color:var(--bright)}.res-error{background:var(--bg-rose);color:var(--rose);border-radius:var(--r);border:1px solid #d4615a4d;margin:10px 16px;padding:10px 14px;font-size:12px}.tableau{max-width:1280px;margin:0 auto;padding:0 24px 64px}.tableau .title{color:var(--bright);margin:0;padding:26px 0 18px;font-size:16px;font-weight:700}.tableau .title:before{content:"# ";color:var(--green)}.board{grid-template-columns:1.4fr 1fr;align-items:start;gap:36px;display:grid}@media (width<=860px){.board{grid-template-columns:1fr}}.board>section>h2{text-transform:uppercase;letter-spacing:.1em;color:var(--dim);margin:0 0 14px;font-size:10px;font-weight:400}.ranking ol{border:1px solid var(--line);border-radius:var(--r);gap:0;margin:0;padding:0;list-style:none;display:grid;overflow:hidden}.ranking li{border-bottom:1px solid var(--line);grid-template-columns:24px 1fr auto;align-items:center;gap:12px;padding:11px 16px;display:grid}.ranking li:last-child{border-bottom:0}.ranking .rk{color:var(--dim);font-size:12px}.ranking .who{color:var(--bright);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ranking .who .at{color:var(--dim)}.ranking .bar{grid-template-columns:80px auto;align-items:center;gap:8px;display:grid}.ranking .bar-track{background:var(--line-2);border-radius:2px;height:4px;overflow:hidden}.ranking .bar-fill{background:var(--green-2);border-radius:2px;height:100%;transition:width .4s;display:block}.ranking .cnt{color:var(--txt);font-size:12px}.ranking .cnt b{color:var(--bright);font-weight:500}.ranking .empty{color:var(--dim);padding:16px}.lvls{border:1px solid var(--line);border-radius:var(--r);background:var(--panel);grid-template-columns:repeat(5,1fr);gap:8px;padding:12px;display:grid;overflow:hidden}.lvl-stat{background:var(--elev);border:1px solid var(--line);border-radius:6px;justify-items:center;gap:.15rem;padding:.6rem .4rem;display:grid}.lvl-stat .n{color:var(--dim);font-size:10px}.lvl-stat .c{color:var(--green);font-size:16px;font-weight:500}.lvl-stat.zero .c{color:var(--line-2)}.landing{background:var(--bg);min-height:100dvh}.landing:before{content:"";z-index:40;pointer-events:none;background:repeating-linear-gradient(0deg,#ffffff06 0 1px,#0000 1px 3px);position:fixed;inset:0}.crt{max-width:980px;margin:0 auto;padding:0 24px;position:relative}.boot{align-content:center;gap:4px;min-height:100dvh;padding:64px 0;display:grid}.boot-head{color:var(--dim);margin-bottom:16px}.boot-log{gap:7px;display:grid}.bootL{grid-template-columns:auto auto auto 1fr auto;align-items:center;gap:10px;display:grid}.bootL .ok{color:var(--green)}.bootL .act{color:var(--bright)}.bootL .what{color:var(--txt)}.bootL .dots{border-bottom:1px dotted var(--line-2);align-self:end;margin-bottom:5px}.bootL .res{color:var(--dim);font-variant-numeric:tabular-nums}.bar{background:var(--panel);border:1px solid var(--line);border-radius:99px;max-width:380px;height:6px;margin:18px 0 8px;overflow:hidden}.bar>i{background:var(--green);width:0;height:100%;display:block}.cmd-line{color:var(--txt)}.cmd-line .pr,.seg-cmd .pr{color:var(--green)}.hero{justify-items:start;gap:20px;margin-top:56px;display:grid}.wordmark{letter-spacing:-.04em;color:var(--bright);margin:0;font-size:clamp(44px,9vw,98px);font-weight:700;line-height:.9}.wordmark .sp{width:.26em;display:inline-block}.tagline{color:var(--txt);max-width:62ch;margin:0;font-size:clamp(14px,1.5vw,17px);line-height:1.5}.cta{grid-auto-flow:column;justify-content:start;align-items:center;gap:20px;margin-top:10px;display:grid}.cta .btn-text{align-self:center;margin:0}.btn-primary.lg{border-radius:8px;grid-auto-flow:column;align-items:center;gap:9px;padding:13px 24px;font-size:14px;display:inline-grid}.btn-primary .ico{display:block}.seg{border-top:1px solid var(--line);padding:70px 0}.seg-cmd{color:var(--txt);margin-bottom:26px}.feat{border:1px solid var(--line);border-radius:var(--r);overflow:hidden}.feat .f{border-bottom:1px solid var(--line);grid-template-columns:210px 1fr;align-items:baseline;gap:20px;padding:17px 20px;display:grid}.feat .f:last-child{border-bottom:0}.feat .fk{color:var(--green)}.feat .fv{color:var(--txt)}.how{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.how .step{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);gap:12px;padding:24px 20px;display:grid}.how .step .n{color:var(--green);font-variant-numeric:tabular-nums;font-size:13px}.how .step .t{color:var(--bright)}.start{margin-top:30px}.lfoot{border-top:1px solid var(--line);color:var(--dim);margin-top:8px;padding:40px 0 60px}.caret.sm{height:12px}@media (width<=680px){.feat .f{grid-template-columns:1fr;gap:5px}.how{grid-template-columns:1fr}.cta{grid-auto-flow:row;justify-items:start}}.mmfoot{border-top:1px solid var(--line);margin-top:8px;padding:56px 0 60px}.mmfoot-cmd{color:var(--txt);margin-bottom:34px}.mmfoot-cmd .pr{color:var(--green)}.mmfoot-grid{grid-template-columns:1fr 2.2fr;align-items:start;gap:48px;display:grid}.mmfoot-cols{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:30px 28px;display:grid}.mmfoot-brand{align-content:start;gap:11px;display:grid}.mmfoot-name{color:var(--bright);letter-spacing:-.02em;font-size:16px;font-weight:700;text-decoration:none}.mmfoot-name:hover{color:var(--green)}.mmfoot-brand p{color:var(--dim);max-width:34ch;margin:0;font-size:12.5px;line-height:1.5}.mmfoot-more{color:var(--green);width:fit-content;margin-top:2px;font-size:13px;text-decoration:none}.mmfoot-more:hover{text-decoration:underline}.mmfoot-col h4{color:var(--dim);letter-spacing:.12em;text-transform:uppercase;margin:0 0 14px;font-size:10px;font-weight:500}.mmfoot-col ul{gap:9px;margin:0;padding:0;list-style:none;display:grid}.mmfoot-col a{color:var(--txt);font-size:13px;text-decoration:none;transition:color .12s}.mmfoot-col a:hover{color:var(--green)}.mmfoot-base{border-top:1px solid var(--line);color:var(--dim);margin-top:44px;padding-top:22px;font-size:12px}@media (width<=760px){.mmfoot-grid{grid-template-columns:1fr;gap:36px}}
