*{box-sizing:border-box}@font-face{font-family:Departure Mono;src:url(./DepartureMono-Regular-2BZob_Zz.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}:root{--fg:#f2f2f2;--accent:#ffb000;--hot:#fff;--screen:#060606;--glow:#ffffff1a}:root[data-theme=ambre]{--fg:#f0a020;--accent:#ffc53d;--hot:#fff0c0;--screen:#0a0703;--glow:#ffaa281f}:root[data-theme=vert]{--fg:#3ad16a;--accent:#6dff8f;--hot:#e0ffe8;--screen:#030905;--glow:#3cdc6e1f}a:focus-visible,button:focus-visible{color:var(--hot);text-shadow:0 0 6px color-mix(in srgb, var(--hot) 85%, transparent);box-shadow:0 1px 0 0 color-mix(in srgb, var(--hot) 85%, transparent);outline:none}@media (forced-colors:active){a:focus-visible,button:focus-visible{outline:2px solid highlight}}html,body{height:100%;margin:0}html{font-size:125%}@media (width<=640px){html{font-size:100%}.screen-inner{--screen-pad-y:clamp(1.2rem, 4vh, 2rem);padding:var(--screen-pad-y) clamp(1rem, 5vw, 1.6rem)}}body{color:var(--fg);letter-spacing:.02em;background:radial-gradient(#1a1a1a 0%,#0d0d0d 70%,#050505 100%);justify-content:center;align-items:center;min-height:100dvh;font-family:Departure Mono,ui-monospace,Cascadia Code,SFMono-Regular,Consolas,Courier New,monospace;display:flex;overflow:hidden}#app{justify-content:center;width:100%;height:100%;display:flex}.crt-screen{background:var(--screen);clip-path:url(#crtClip);width:100vw;height:100dvh;margin:0;position:relative;overflow:hidden;box-shadow:inset 0 0 90px #000000e6,inset 0 0 0 2px #ffffff26}.screen-inner{z-index:1;clip-path:url(#crtClip);--screen-pad-y:clamp(2.4rem, 6vh, 4.2rem);padding:var(--screen-pad-y) clamp(3rem, 7vw, 5.5rem);scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--fg) 25%, transparent) transparent;text-shadow:0 0 4px color-mix(in srgb, var(--fg) 35%, transparent);-webkit-user-select:none;user-select:none;overflow-wrap:anywhere;flex-direction:column;gap:1.4rem;display:flex;position:absolute;inset:0;overflow:hidden auto}.screen-inner.crt-warp-active,.screen-inner.crt-warp-active *{-webkit-text-fill-color:transparent;text-shadow:none}.screen-inner.crt-warp-active a:focus-visible,.screen-inner.crt-warp-active button:focus-visible{box-shadow:none}.screen-inner.crt-warp-active img,.screen-inner.crt-warp-active .stack-tag,.screen-inner.crt-warp-active [data-warp-border]{visibility:hidden}.screen-inner.crt-warp-active [data-warp-border] :is(a,button,input){visibility:visible;text-decoration-color:#0000}.text-warp-canvas{z-index:2;pointer-events:none;clip-path:url(#crtClip);width:100%;height:100%;position:absolute;inset:0}.crt-overlay{z-index:5;pointer-events:none;background:repeating-linear-gradient(#0000 0,#00000059 1px,#0000 3px),radial-gradient(75% 70%,#0000 40%,#0000008c 78%,#000000e6 100%);position:absolute;inset:0}.crt-screen:has(.crt-warp-active) .crt-overlay{background:radial-gradient(75% 70%,#0000 40%,#0000008c 78%,#000000e6 100%)}.crt-glass{z-index:7;pointer-events:none;background:linear-gradient(118deg,#ffffff0f 0%,#ffffff05 12%,#0000 30%);position:absolute;inset:0;overflow:hidden}.crt-glass:after{content:"";transform:translate(calc(var(--glass-x,0) * -2.5%), calc(var(--glass-y,0) * -2.5%));background:radial-gradient(30% 22% at 30% 24%,#ffffff0d,#0000 70%);transition:transform .6s cubic-bezier(.22,1,.36,1);position:absolute;inset:-10%}.crt-roll{z-index:6;pointer-events:none;background:linear-gradient(to bottom, transparent, color-mix(in srgb, var(--fg) 4%, transparent) 50%, transparent);height:22%;animation:9s linear infinite crt-roll;position:absolute;top:-22%;left:0;right:0}@keyframes crt-roll{0%{transform:translateY(0)}to{transform:translateY(560%)}}.vector-display{pointer-events:none;display:none;position:absolute}@media (width>=1200px) and (height>=640px){.crt-screen{--display-w:min(34vw, 88vh)}.crt-screen.is-booted .vector-display{width:var(--display-w);height:calc(var(--display-w) * .62);display:block;top:50%;right:7%;transform:translateY(-50%)}.crt-screen.is-booted .screen-inner{padding-right:calc(var(--display-w) + 9%)}}.crt-flicker{z-index:6;pointer-events:none;background:#ffffff04;position:absolute;inset:0}.crt-flicker.is-starting{animation:1.6s ease-out forwards flicker-startup}@keyframes flicker-startup{0%{opacity:0}4%{opacity:.85}8%{opacity:.15}13%{opacity:1}19%{opacity:.35}27%{opacity:.9}36%{opacity:.55}46%{opacity:1}58%{opacity:.75}72%{opacity:1}85%{opacity:.9}to{opacity:1}}.crt-power{z-index:3;pointer-events:none;opacity:0;background:#0009;position:absolute;inset:0}.crt-beam{z-index:3;pointer-events:none;height:3px;filter:drop-shadow(0 0 4px var(--hot)) drop-shadow(0 0 14px color-mix(in srgb, var(--fg) 70%, transparent));margin-top:-1.5px;position:absolute;top:50%;left:6%;right:6%}.crt-beam-core{background:var(--hot);opacity:0;border-radius:2px;width:100%;height:100%}.crt-screen.is-powered-off .crt-power{opacity:1}.crt-screen.is-powered-off .text-warp-canvas,.crt-screen.is-powered-off .screen-inner:not(.crt-warp-active){opacity:0}.screen-inner.is-centering{justify-content:center;align-items:center}.screen-inner.is-centering .hero{padding-bottom:0}.preloader{text-align:center;flex-direction:column;align-items:center;display:flex}.preloader .boot-line{margin:.3em 0}.hero{--hero-name-size:1.6rem;--hero-name-leading:1;--hero-tagline-gap:.4rem;--hero-tagline-size:.85rem;--hero-tagline-leading:1.15;opacity:1;flex:none;align-items:center;gap:1.2rem;padding-bottom:1rem;transition:opacity .5s;display:flex;position:relative}.hero .logo{width:auto;height:calc(var(--hero-name-size) * var(--hero-name-leading) + var(--hero-tagline-gap) + var(--hero-tagline-size) * var(--hero-tagline-leading));filter:grayscale()brightness(0)invert();opacity:1;flex:none;transition:opacity .4s,transform .4s;transform:translateY(0)}.hero .logo.logo--enter{opacity:0;transform:translateY(6px)}.hero h1{font-size:var(--hero-name-size);line-height:var(--hero-name-leading);letter-spacing:.08em;margin:0;font-weight:400}.tagline{margin:var(--hero-tagline-gap) 0 0;font-size:var(--hero-tagline-size);line-height:var(--hero-tagline-leading);opacity:.85}@media (width<=760px){.hero{flex-direction:column;align-items:flex-start;gap:.8rem}.hero .logo{height:2.2rem}}.tagline-sep{opacity:0;margin:0 .4em;transition:opacity .3s;display:inline-block}.tagline-sep.is-visible{opacity:.6}.tabs{flex-wrap:wrap;flex:none;gap:.4rem 1rem;display:flex}.tab{color:inherit;opacity:.6;cursor:pointer;padding:.3rem .2rem;font-size:.85rem;text-decoration:none;transition:opacity .15s;display:inline-block}.tab:hover,.tab:focus-visible{opacity:.85}.tab.is-active{opacity:1;color:var(--accent)}.tab-key{opacity:.5;margin-right:.5ch}@media (hover:none){.tab-key{display:none}}.panels{flex:1;min-height:0}.panels:after{content:"";height:var(--screen-pad-y);display:block}.panel{padding-top:1rem}.panel>p{max-width:68ch;line-height:1.6}.panel h2{letter-spacing:.1em;margin-top:0;font-size:1.1rem;font-weight:400}.panel h2:focus{outline:none}.boot-line{margin:.4em 0;font-size:.9rem}.stack-groups{flex-direction:column;gap:.9rem;display:flex}.stack-group{grid-template-columns:11rem minmax(0,1fr);align-items:baseline;gap:.4rem 1rem;display:grid}.stack-group h3{letter-spacing:.08em;opacity:.6;margin:0;font-size:.8rem;font-weight:400}@media (width<=640px){.stack-group{grid-template-columns:minmax(0,1fr)}}.stack-list{flex-wrap:wrap;gap:.5rem .6rem;margin:0;padding:0;list-style:none;display:flex}.stack-tag{opacity:.85;padding:.3em .7em;font-size:.85rem}.projets-heading{letter-spacing:.08em;opacity:.6;margin:1.4rem 0 .8rem;font-size:.8rem;font-weight:400}.projets-list{flex-direction:column;gap:.35rem;margin:1rem 0 0;padding:0;list-style:none;display:flex}.projets-list li{border-bottom:1px dashed color-mix(in srgb, var(--fg) 15%, transparent);grid-template-columns:4ch minmax(0,1fr) auto;align-items:baseline;gap:.2rem 1.2rem;padding-bottom:.35rem;font-size:.9rem;display:grid}.projets-year{opacity:.5;font-size:.8rem}.projets-name{opacity:.95}.projets-meta{opacity:.6;white-space:nowrap;font-size:.8rem}.projets-desc,.projets-links{grid-column:2/-1;margin:0;font-size:.8rem;line-height:1.5}.projets-desc{opacity:.75;max-width:68ch}.projets-links{flex-wrap:wrap;gap:.2rem 1.5rem;display:flex}.projets-links a{color:var(--accent);-webkit-text-decoration-color:color-mix(in srgb, var(--accent) 40%, transparent);text-decoration-color:color-mix(in srgb, var(--accent) 40%, transparent);display:inline-block}.projets-links a:hover{text-decoration-color:currentColor}.projets-links a:focus-visible{text-decoration:none}@media (width<=640px){.projets-list li{grid-template-columns:4ch minmax(0,1fr)}.projets-meta{white-space:normal;grid-column:2}}article{margin-bottom:1rem}article h3{margin:0 0 .2em;font-size:1rem;font-weight:400}.meta{opacity:.75;margin:0;font-size:.8rem}.contact-email a,.contact-links a{color:var(--accent);-webkit-text-decoration-color:color-mix(in srgb, var(--accent) 40%, transparent);text-decoration-color:color-mix(in srgb, var(--accent) 40%, transparent);display:inline-block}.contact-email a:hover,.contact-links a:hover{text-decoration-color:currentColor}.copy-email{color:inherit;font:inherit;letter-spacing:inherit;opacity:.6;cursor:pointer;background:0 0;border:none;margin-left:1ch;padding:.2rem;font-size:.8rem;transition:opacity .15s}.copy-email:hover,.copy-email:focus-visible{opacity:1}.contact-links{margin:.8rem 0 0;padding:0;list-style:none}.contact-email a:focus-visible,.contact-links a:focus-visible{text-decoration:none}.prompt{margin:1.2rem 0 0;font-size:.9rem}.prompt[hidden],.prompt-suggestions[hidden]{display:none}.prompt-line{align-items:baseline;gap:1ch;margin:0;display:flex}.prompt-field{flex:1;min-width:0;position:relative}.prompt-typed{white-space:pre}.prompt-input{width:100%;color:inherit;font:inherit;letter-spacing:inherit;opacity:0;caret-color:#0000;cursor:text;background:0 0;border:0;outline:none;margin:0;padding:0;position:absolute;inset:0}@media (hover:none){.prompt-input{font-size:max(16px,1em)}}.prompt .cursor{position:relative}.prompt .cursor-block{opacity:.45}.prompt .cursor-char{text-align:center;color:var(--screen);position:absolute;inset:0}.prompt.is-focused .cursor-block{opacity:1;color:var(--accent)}.prompt .cursor.is-off .cursor-block{opacity:0}.prompt .cursor.is-off .cursor-char{color:inherit}.prompt .cursor.is-off.is-ghost .cursor-char,.prompt-ghost{opacity:.4}.prompt-ghost.is-placeholder{opacity:.35;margin-left:1ch;font-size:.8rem}.prompt-suggestions{flex-wrap:wrap;gap:.2rem 1.4ch;margin:.5rem 0 0;padding:0 0 0 2ch;list-style:none;display:flex}.prompt-suggestions button{color:inherit;font:inherit;letter-spacing:inherit;opacity:.5;cursor:pointer;background:0 0;border:none;padding:.1rem 0;font-size:.8rem}.prompt-suggestions button:hover,.prompt-suggestions button.is-active{opacity:1;color:var(--accent)}.prompt-output:empty{display:none}.prompt-output{margin:0 0 .6rem;font-size:.8rem;line-height:1.5}.prompt-output p{white-space:pre-wrap;margin:0}.prompt-echo{opacity:.5}.prompt-out{opacity:.85;padding-left:2ch}.boot-skip-hint{text-align:center;letter-spacing:.1em;opacity:.45;margin:0;font-size:.7rem;position:absolute;bottom:9%;left:0;right:0}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.placeholder-note{color:var(--hot);border:1px dashed;border-color:color-mix(in srgb, var(--fg) 35%, transparent);opacity:.9;padding:.75em 1em;display:inline-block}.reveal-pending{opacity:0;overflow:hidden;height:0!important;margin:0!important}.scramble-char{width:1ch;margin-right:var(--scramble-ls,0);height:1.35em;vertical-align:top;justify-content:center;align-items:center;height:1lh;display:inline-flex;overflow:hidden}.scramble-word{white-space:nowrap}.scramble-char.is-scrambling{color:color-mix(in srgb, var(--fg) 60%, var(--screen));opacity:.75}@media (prefers-reduced-motion:reduce){.crt-flicker.is-starting{animation:none}.crt-roll{display:none}}
