:root{--bg:#1e1e1e;--bg2:#252526;--bar:#2d2d2d;--line:#3a3a3a;--fg:#c9d4e3;--bright:#e6edf5;--muted:#7f8ea8;--dim:#56657d;--cyan:#1fb3c9;--green:#4fd18b;--orange:#f0b84a;--red:#f0616d;--purple:#b48cf2;--grid:#1c8a9e0f;--outer:#151515;--sel:#1fb3c94d;--font:"JetBrains Mono", ui-monospace, "Cascadia Code", Consolas, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=bleu]{--bg:#012456;--bg2:#0a2d63;--bar:#0c2a52;--line:#24497e;--fg:#eeedf0;--bright:#fff;--muted:#9fb3d1;--dim:#6f86ab;--cyan:#f2f24b;--green:#5ae38f;--outer:#001634;--grid:#ffffff0a}[data-theme=matrix]{--bg:#050a05;--bg2:#0a140a;--bar:#0c160c;--line:#163016;--fg:#7dff9b;--bright:#c8ffd4;--muted:#3fae5c;--dim:#2a7a3f;--cyan:#0f6;--green:#0f6;--orange:#b5ff3a;--purple:#7dff9b;--outer:#000;--grid:#00ff660d}[data-theme=ubuntu]{--bg:#300a24;--bg2:#3a0e2c;--bar:#2c0a21;--line:#5a2350;--fg:#eeeeec;--bright:#fff;--muted:#b39bb0;--dim:#8a6d86;--cyan:#8ae234;--green:#8ae234;--orange:#e95420;--outer:#1e0617;--grid:#e954200d}[data-theme=clair]{--bg:#fafaf7;--bg2:#f0f0ec;--bar:#e7e7e2;--line:#d4d4cc;--fg:#2b3240;--bright:#0f1622;--muted:#5e6a7d;--dim:#8a94a6;--cyan:#0f7f91;--green:#1d8a4e;--orange:#b0700c;--red:#c7303d;--purple:#6b45b8;--outer:#dcdcd5;--grid:#0f7f9112;--sel:#0f7f9133;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--outer);background-image:linear-gradient(var(--grid) 1px, transparent 1px), linear-gradient(90deg, var(--grid) 1px, transparent 1px);color:var(--fg);font-family:var(--font);-webkit-font-smoothing:antialiased;background-size:32px 32px;font-size:15px;line-height:1.6;transition:background-color .3s;overflow:hidden}::selection{background:var(--sel)}a{color:var(--cyan);text-underline-offset:3px;text-decoration:underline}a:hover{color:var(--green)}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}.stage{justify-content:center;align-items:center;height:100%;padding:28px;display:flex}.window{background:var(--bg);border:1px solid var(--line);border-radius:10px;flex-direction:column;width:100%;max-width:1120px;height:100%;max-height:860px;transition:background-color .3s,border-color .3s;display:flex;position:relative;overflow:hidden;box-shadow:0 30px 80px #0000008c,0 0 0 1px #ffffff05}.window.max{border-radius:0;max-width:none;max-height:none}.stage.max{padding:0}.titlebar{background:var(--bar);border-bottom:1px solid var(--line);-webkit-user-select:none;user-select:none;flex:none;align-items:stretch;height:40px;display:flex}.tab{background:var(--bg);border:1px solid var(--line);color:var(--bright);border-bottom:0;border-radius:8px 8px 0 0;align-items:center;gap:9px;min-width:0;max-width:60%;margin-top:6px;margin-left:8px;padding:0 16px;font-size:13px;display:flex}.tab span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.tab svg{flex:none}.tab-x{color:var(--muted);margin-left:6px;font-size:14px}.plus{color:var(--muted);align-items:center;padding:0 12px;font-size:18px;display:flex}.spacer{flex:1}.winbtn{width:46px;color:var(--muted);place-items:center;display:grid}.winbtn:hover{color:var(--bright);background:#ffffff14}.winbtn.close:hover{color:#fff;background:#c42b1c}.screen{cursor:text;scrollbar-width:thin;scrollbar-color:var(--line) transparent;overscroll-behavior:contain;flex:1;padding:18px 22px 10px;overflow:hidden auto}.screen::-webkit-scrollbar{width:10px}.screen::-webkit-scrollbar-thumb{background:var(--line);border:3px solid var(--bg);border-radius:5px}.line{white-space:pre-wrap;word-break:break-word;min-height:1.6em}.out{margin:2px 0 10px}.prompt{flex-wrap:wrap;align-items:baseline;display:flex}.ps1{white-space:nowrap;margin-right:.6ch}.u{color:var(--cyan);font-weight:700}.p{color:var(--muted)}.path{color:var(--bright);font-weight:700}.typed{color:var(--bright);white-space:pre-wrap;word-break:break-all}.input-wrap{flex:1;min-width:4ch;display:flex;position:relative}.input-mirror{color:var(--bright);white-space:pre;pointer-events:none}.cmd-input{opacity:0;width:100%;font:inherit;color:#0000;caret-color:#0000;background:0 0;border:0;outline:0;font-size:16px;position:absolute;inset:0}.cursor{background:var(--cyan);min-width:.6em;color:var(--bg);animation:1.1s step-end infinite blink;display:inline-block}.cursor.off{color:var(--bright);outline:1px solid var(--cyan);outline-offset:-1px;background:0 0;animation:none}.ghost{color:var(--dim);white-space:pre}@keyframes blink{50%{color:var(--bright);background:0 0}}.c-cyan{color:var(--cyan)}.c-green{color:var(--green)}.c-orange{color:var(--orange)}.c-red{color:var(--red)}.c-purple{color:var(--purple)}.c-muted{color:var(--muted)}.c-dim{color:var(--dim)}.c-bright{color:var(--bright)}.b{font-weight:700}.ok{color:var(--green);font-weight:700}.ld{color:var(--orange);font-weight:700}.err{color:var(--red)}.cmd-link{color:var(--cyan);cursor:pointer;font-weight:700;line-height:inherit;border-bottom:1px dashed;padding:0}.cmd-link:hover{color:var(--green)}.cmd-link:disabled{cursor:default;opacity:.7}.ascii{font-family:var(--font);white-space:pre;background:linear-gradient(90deg, var(--cyan), var(--green));color:#0000;-webkit-background-clip:text;background-clip:text;margin:6px 0 12px;font-size:min(15px,1.98413vw - 1.19048px);font-weight:700;line-height:1.1;overflow:hidden}.barx{vertical-align:middle;border:1px solid var(--line);background:var(--bg2);border-radius:3px;width:120px;height:12px;margin:0 12px 3px 0;display:inline-block;position:relative;overflow:hidden}.barx i{background:var(--green);position:absolute;top:0;bottom:0;left:0}.barx i.load{background:linear-gradient(90deg, var(--orange), #f7d07d);animation:1.6s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.6}}.grid2{grid-template-columns:minmax(16ch,max-content) 1fr;gap:1px 2.5ch;display:grid}.help-group{margin-bottom:10px}.help-title{color:var(--orange);text-transform:uppercase;letter-spacing:1px;margin-bottom:2px;font-size:13px;font-weight:700}.entry{border-left:2px solid var(--line);margin:4px 0 12px 4px;padding-left:14px;position:relative}.entry:before{content:"";background:var(--bg);border:2px solid var(--cyan);border-radius:50%;width:10px;height:10px;position:absolute;top:7px;left:-6px}.entry.now:before{background:var(--green);border-color:var(--green);box-shadow:0 0 10px var(--green)}.entry h3{color:var(--bright);font-size:1em}.meta{color:var(--muted)}.meta .org{color:var(--cyan);font-weight:700}.tag{vertical-align:1px;border:1px solid;border-radius:4px;margin-left:8px;padding:0 7px;font-size:12px;line-height:1.5;display:inline-block}.entry ul{list-style:none}.entry li:before{content:"› ";color:var(--green)}.skills-cat{margin:4px 0 12px}.skills-cat h4{text-transform:uppercase;letter-spacing:1px;margin-bottom:6px;font-size:13px}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{background:var(--bg2);border:1px solid var(--line);border-left:3px solid var(--c);color:var(--bright);white-space:nowrap;border-radius:5px;align-items:center;gap:7px;padding:3px 10px 3px 7px;font-size:13px;animation:.25s backwards pop;display:inline-flex}.chip img{object-fit:contain;background:#f1f4f8;border-radius:4px;width:20px;height:20px;padding:2px}.chip .dot{background:var(--c);border-radius:50%;width:7px;height:7px;margin:0 4px}@keyframes pop{0%{opacity:0;transform:translateY(4px)}}.box{border:1px solid var(--line);background:var(--bg2);border-radius:6px;max-width:760px;margin:6px 0 10px;padding:10px 14px}.neofetch{flex-wrap:wrap;align-items:flex-start;gap:3ch;display:flex}.neofetch .ascii{margin:0;font-size:13px}.swatches{gap:0;margin-top:6px;display:flex}.swatches i{width:26px;height:14px}.table{border-collapse:collapse}.table td,.table th{text-align:left;white-space:nowrap;vertical-align:top;padding:0 2.2ch 0 0}.table th{color:var(--bright)}.wrap-x{scrollbar-width:thin;max-width:100%;overflow-x:auto}.dock{border-top:1px solid var(--line);background:var(--bar);scrollbar-width:none;flex:none;gap:6px;padding:8px 12px;display:flex;overflow-x:auto}.dock::-webkit-scrollbar{display:none}.dock-label{color:var(--dim);white-space:nowrap;align-self:center;margin-right:4px;font-size:12px}.dock button{color:var(--fg);border:1px solid var(--line);background:var(--bg);border-radius:5px;flex:none;padding:4px 11px;font-size:13px;transition:all .15s}.dock button:hover:not(:disabled){color:var(--cyan);border-color:var(--cyan)}.dock button.hot{color:var(--orange);border-color:color-mix(in srgb, var(--orange) 50%, transparent)}.dock button:disabled{opacity:.4;cursor:default}.glitch{animation:.18s steps(2,end) infinite glitch}@keyframes glitch{0%{filter:none;transform:translate(0)}25%{filter:hue-rotate(90deg)saturate(3);transform:translate(-6px,2px)skew(4deg)}50%{filter:invert();transform:translate(5px,-3px)}75%{filter:hue-rotate(-90deg);transform:translate(-2px,4px)skew(-6deg)}}.panic{color:#e6e6e6;z-index:5;white-space:pre-wrap;background:#000;padding:24px;font-size:13px;position:absolute;inset:0;overflow:hidden}.off-screen{text-align:center;color:var(--muted);flex:1;place-items:center;padding:20px;display:grid}.off-screen button{border:1px solid var(--cyan);color:var(--cyan);border-radius:6px;margin-top:18px;padding:8px 18px}.off-screen button:hover{background:var(--cyan);color:var(--bg)}.matrix-canvas{z-index:50;cursor:pointer;background:#000;position:fixed;inset:0}.matrix-hint{text-align:center;z-index:51;color:#7dff9b;opacity:.8;pointer-events:none;font-size:13px;position:fixed;bottom:18px;left:0;right:0}.game{border:1px solid var(--line);background:var(--bg2);border-radius:8px;max-width:760px;margin:6px 0 12px;overflow:hidden}.game-head{border-bottom:1px solid var(--line);background:var(--bar);flex-wrap:wrap;justify-content:space-between;gap:12px;padding:6px 12px;font-size:13px;display:flex}.game-body{padding:12px 14px}.game.done{opacity:.75}.game input.game-in{font:inherit;background:var(--bg);color:var(--bright);border:1px solid var(--line);letter-spacing:.3em;border-radius:5px;outline:none;width:8ch;padding:3px 8px;font-size:16px}.game input.game-in:focus{border-color:var(--cyan)}.pin-row{align-items:center;gap:14px;display:flex}.pin-digits{letter-spacing:.5em;color:var(--bright);font-weight:700}.pegs{gap:5px;display:flex}.peg{border:1px solid var(--dim);border-radius:50%;width:11px;height:11px}.peg.hit{background:var(--green);border-color:var(--green);box-shadow:0 0 6px var(--green)}.peg.near{background:var(--orange);border-color:var(--orange)}.big{letter-spacing:2px;margin:6px 0;font-size:22px;font-weight:800}.gbtn{border:1px solid var(--line);background:var(--bg);border-radius:5px;margin:4px 6px 0 0;padding:5px 14px}.gbtn:hover:not(:disabled){border-color:var(--cyan);color:var(--cyan)}.gbtn.allow{border-color:var(--green);color:var(--green)}.gbtn.deny{border-color:var(--red);color:var(--red)}.gbtn.allow:hover:not(:disabled){background:var(--green);color:var(--bg)}.gbtn.deny:hover:not(:disabled){background:var(--red);color:var(--bg)}.gbtn:disabled{opacity:.4;cursor:default}.lane{border:1px dashed var(--line);background:repeating-linear-gradient(90deg, transparent 0 22px, color-mix(in srgb, var(--line) 30%, transparent) 22px 23px);border-radius:6px;height:92px;margin:10px 0;position:relative;overflow:hidden}.lane-l,.lane-r{color:var(--dim);font-size:11px;position:absolute;top:4px}.lane-l{left:8px}.lane-r{right:8px}.wall{background:repeating-linear-gradient(180deg, var(--orange) 0 8px, var(--red) 8px 16px);width:6px;box-shadow:0 0 12px color-mix(in srgb, var(--orange) 60%, transparent);position:absolute;top:0;bottom:0;right:18%}.packet{white-space:nowrap;background:var(--bg);border:1px solid var(--cyan);color:var(--bright);will-change:transform;border-radius:5px;padding:5px 10px;font-size:12px;position:absolute;top:30px;left:0}.packet.ok{border-color:var(--green);color:var(--green)}.packet.ko{border-color:var(--red);color:var(--red)}.flash-ok{animation:.4s flashok}.flash-ko{animation:.4s flashko}@keyframes flashok{0%{box-shadow:inset 0 0 0 2px var(--green)}}@keyframes flashko{0%{box-shadow:inset 0 0 0 2px var(--red)}}.quiz-opts{gap:6px;margin-top:8px;display:grid}.quiz-opt{text-align:left;border:1px solid var(--line);background:var(--bg);border-radius:5px;padding:5px 10px}.quiz-opt:hover:not(:disabled){border-color:var(--cyan)}.quiz-opt.right{border-color:var(--green);color:var(--green)}.quiz-opt.wrong{border-color:var(--red);color:var(--red)}.quiz-opt:disabled{cursor:default}.kbd{border:1px solid var(--line);color:var(--bright);border-bottom-width:2px;border-radius:4px;padding:0 5px;font-size:12px;line-height:1.5;display:inline-block}@media (width<=700px){body{font-size:13.5px}.window{border:0;border-radius:0;max-height:none}.screen{padding:12px 12px 8px}.winbtn.hide-m,.plus{display:none}.tab{max-width:75%}.grid2{grid-template-columns:1fr;row-gap:0}.grid2>:nth-child(2n){color:var(--muted);margin-bottom:4px;padding-left:2ch}.neofetch .ascii{display:none}.table td,.table th{padding-right:1.4ch}.barx{width:70px;margin-right:8px}.packet{padding:4px 8px;font-size:11px}.stage{padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px)}}@media (prefers-reduced-motion:reduce){.cursor,.barx i.load,.chip,.glitch{animation:none}}.chip{cursor:default;transition:border-color .15s,transform .15s,background-color .15s}.chip:hover,.chip.on,.chip:focus-visible{border-color:var(--c);background:color-mix(in srgb, var(--c) 12%, var(--bg2));outline:none;transform:translateY(-1px)}.skill-card{z-index:40;pointer-events:none;will-change:transform;position:fixed;top:0;left:0}.skill-card-in{background:color-mix(in srgb, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid color-mix(in srgb, var(--c) 55%, var(--line));width:290px;max-width:calc(100vw - 24px);box-shadow:0 18px 50px #00000080, 0 0 0 1px #ffffff08, 0 0 30px color-mix(in srgb, var(--c) 18%, transparent);font-family:var(--font);color:var(--fg);transform-origin:0 0;border-radius:10px;padding:14px;font-size:13px;line-height:1.5;animation:.22s cubic-bezier(.2,.9,.3,1.3) cardin}@keyframes cardin{0%{opacity:0;filter:blur(4px);transform:scale(.85)translateY(6px)}}.skill-card-top{align-items:center;gap:12px;display:flex}.skill-card-img{width:58px;height:58px;box-shadow:0 0 0 2px color-mix(in srgb, var(--c) 70%, transparent), 0 6px 18px color-mix(in srgb, var(--c) 35%, transparent);background:radial-gradient(circle at 30% 25%,#fff,#e4e9f0);border-radius:10px;flex:none;place-items:center;display:grid;position:relative}.skill-card-img img{object-fit:contain;width:38px;height:38px}.skill-card-mono{color:#1e1e1e;font-size:20px;font-weight:800}.skill-card-name{color:var(--bright);font-size:15px;font-weight:800}.skill-card-cat{color:var(--c);text-transform:uppercase;letter-spacing:1px;font-size:11px;font-weight:700}.skill-card-desc{color:var(--fg);margin-top:10px}.skill-card-used{border-top:1px dashed var(--line);color:var(--muted);margin-top:8px;padding-top:8px;font-size:12px}@media (prefers-reduced-motion:reduce){.skill-card-in{animation:none}}
