:root,[data-theme=night]{--c-pro:#7aa2f7;--c-perso:#ee8fc4;--c-school:#b19cf5;--c-award:#e6b85c;--f-front:#7dc8f0;--f-back:#b7a6f4;--f-data:#6fd6c2;--f-ops:#e9c46a;--f-test:#f19a9a;--f-tools:#aeb8c8;--f-ai:#e3a3ea;--wip:#f2b84b;--dot:#ffffff12;--scrim:#0a0a0deb;--ease-out:cubic-bezier(.16,1,.3,1);--gut:clamp(20px, 5.5vw, 88px);--top:72px}[data-theme=day]{--c-pro:#2f5fd0;--c-perso:#c73d86;--c-school:#6d4fd6;--c-award:#a66a00;--f-front:#0b76b3;--f-back:#6c4fd1;--f-data:#0f8a78;--f-ops:#b07a0c;--f-test:#c9384a;--f-tools:#5b6678;--f-ai:#a63db3;--wip:#b7791f;--dot:#09090b14;--scrim:#fffffff0}[data-cat=Professionnel]{--cat:var(--c-pro)}[data-cat=Personnel]{--cat:var(--c-perso)}[data-cat=Scolaire]{--cat:var(--c-school)}[data-fam=front]{--fam:var(--f-front)}[data-fam=back]{--fam:var(--f-back)}[data-fam=data]{--fam:var(--f-data)}[data-fam=ops]{--fam:var(--f-ops)}[data-fam=test]{--fam:var(--f-test)}[data-fam=tools]{--fam:var(--f-tools)}[data-fam=ai]{--fam:var(--f-ai)}[data-fam=other]{--fam:var(--muted)}html{scroll-behavior:smooth}html.has-dialog{overflow:hidden}main:focus,[tabindex="-1"]:focus{outline:none}[id]{scroll-margin-top:84px}.wrap{width:100%;max-width:1160px;margin:0 auto;padding:0 24px}@media (width<=600px){.wrap{padding:0 16px}}html:not(.js) .js-only,.no-app .js-only{display:none!important}.sr-only,.is-sr{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.skip{z-index:100;background:var(--text);color:var(--bg);border-radius:8px;padding:10px 14px;font-weight:600;text-decoration:none;position:absolute;top:-60px;left:12px}.skip:focus{top:12px}.kicker{letter-spacing:.18em;text-transform:uppercase;color:var(--muted);align-items:center;gap:12px;font-size:12.5px;font-weight:600;display:flex}.kicker:before{content:"";background:var(--accent);width:28px;height:1px}.mini-title{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:12px;font-size:12px;font-weight:600}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.text-link{cursor:pointer;font:600 15px var(--font);color:var(--text);background:0 0;border:0;align-items:center;gap:8px;padding:4px 0;text-decoration:none;display:inline-flex}.text-link .ico{width:16px;height:16px;transition:transform .3s var(--ease-out)}.text-link:hover .ico{transform:translate(4px)}.btn--sm{gap:7px;min-height:38px;padding:7px 15px;font-size:14px}.inline-link{color:var(--muted);text-underline-offset:3px;font-size:.92em}.inline-link:hover{color:var(--text)}.inline-list,.chips{flex-wrap:wrap;gap:8px;display:flex}.inline-list li,.chips li{color:var(--text-2);background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:5px 13px;font-size:14px}.inline-list strong{color:var(--text);font-weight:600}.chip-cat{color:color-mix(in srgb, var(--cat) 78%, var(--text));background:color-mix(in srgb, var(--cat) 12%, transparent);border:1px solid color-mix(in srgb, var(--cat) 28%, transparent);border-radius:999px;align-items:center;gap:6px;padding:2px 10px;font-size:12px;font-weight:600;line-height:1.6;display:inline-flex}.cat-dot,.fam-dot{background:var(--cat);border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.fam-dot{background:var(--fam)}.tags{flex-wrap:wrap;gap:6px;display:flex}.tags li{display:flex}.tags li,.tag-link{color:var(--text-2);background:var(--surface-2);border:1px solid var(--line);border-radius:999px;padding:3px 11px;font-size:13px;font-weight:500}.tags li:has(.tag-link){background:0 0;border:0;padding:0}.tag-link{color:var(--text);padding-left:22px;text-decoration:none;transition:border-color .2s,background .2s;position:relative}.tag-link:before{content:"";background:var(--fam);border-radius:50%;width:6px;height:6px;margin-top:-3px;position:absolute;top:50%;left:10px}.tag-link:hover,.tag-link.is-lit{border-color:var(--fam);background:color-mix(in srgb, var(--fam) 12%, var(--surface-2))}.status{--tone:var(--muted);color:var(--text-2);white-space:nowrap;align-items:center;gap:7px;font-size:13px;font-weight:600;display:inline-flex}.status--on{--tone:var(--ok)}.status--wip{--tone:var(--wip)}.status__dot{background:var(--tone);border-radius:50%;flex-shrink:0;width:8px;height:8px}.status--on .status__dot{box-shadow:0 0 0 3px color-mix(in srgb, var(--ok) 20%, transparent)}.status--wip .status__dot{box-shadow:0 0 0 3px color-mix(in srgb, var(--wip) 20%, transparent)}.status--off .status__dot{box-shadow:inset 0 0 0 1.5px var(--muted);background:0 0}.status--off{color:var(--muted)}.seg-group{flex-wrap:wrap;gap:6px;display:flex}.seg{cursor:pointer;min-height:36px;font:500 13.5px var(--font);color:var(--text-2);white-space:nowrap;background:color-mix(in srgb, var(--surface) 86%, transparent);border:1px solid var(--line-2);border-radius:999px;align-items:center;gap:8px;padding:6px 13px;transition:color .2s,background .2s,border-color .2s;display:inline-flex}@supports ((-webkit-backdrop-filter:blur(8px)) or (backdrop-filter:blur(8px))){.seg{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}}.seg>span{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12.5px}.seg .ico{width:16px;height:16px}.seg:hover{border-color:var(--muted);color:var(--text)}.seg[aria-pressed=true]{color:var(--bg);background:var(--text);border-color:var(--text)}.seg[aria-pressed=true]>span{color:var(--bg);opacity:.7}.topbar{z-index:50;transition:background-color .4s var(--ease), border-color .4s;border-bottom:1px solid #0000;position:fixed;top:0;left:0;right:0}html:not(.js) .topbar,.no-app .topbar,.topbar.is-scrolled{background:color-mix(in srgb, var(--bg) 96%, transparent);border-bottom-color:var(--line)}@supports ((-webkit-backdrop-filter:blur(8px)) or (backdrop-filter:blur(8px))){.topbar.is-scrolled{background:color-mix(in srgb, var(--bg) 76%, transparent);-webkit-backdrop-filter:blur(16px)saturate(1.4);backdrop-filter:blur(16px)saturate(1.4)}}.topbar__inner{min-height:var(--top);padding:0 var(--gut);align-items:center;gap:28px;display:flex}.brand{letter-spacing:.04em;color:var(--text);white-space:nowrap;font-size:15px;font-weight:700;line-height:1;text-decoration:none;display:inline-block}.page:not(.page--profil) .brand{view-transition-name:name}.topbar__where{display:none}.nav{gap:2px;margin:0 auto;display:flex;position:relative}.nav a{z-index:1;color:var(--muted);border-radius:999px;padding:8px 14px;font-size:14.5px;font-weight:500;text-decoration:none;transition:color .25s;display:block;position:relative}.nav .nav__cv{display:none}.nav a>span{z-index:1;transition:transform .35s var(--ease-out);display:inline-block;position:relative}.nav a:hover{color:var(--text)}.nav a:hover>span{transform:translateY(-1px)}.nav a[aria-current]{color:var(--text)}.nav__ink{z-index:0;pointer-events:none;background:color-mix(in srgb, var(--text) 9%, transparent);border:1px solid color-mix(in srgb, var(--text) 8%, transparent);view-transition-name:nav-ink;border-radius:999px;position:absolute;inset:0}.topbar__actions{align-items:center;gap:8px;display:flex}.topbar__cv{color:var(--muted);padding:8px 10px;font-size:14.5px;font-weight:500;text-decoration:none;transition:color .2s}.topbar__cv:hover{color:var(--text)}.nav-toggle{display:none}.switch{min-height:40px;font:500 14px var(--font);white-space:nowrap;color:var(--text-2);border:1px solid var(--line-2);border-radius:999px;align-items:center;gap:8px;padding:7px 14px;text-decoration:none;transition:color .2s,border-color .2s;display:inline-flex}.switch:hover{color:var(--text);border-color:var(--muted)}.switch .ico{width:16px;height:16px}@media (width<=1080px){.switch span{display:none}.switch{padding:7px 11px}}@media (width<=900px){:root{--top:60px}.nav-toggle{display:inline-grid}.topbar__inner{gap:12px}.topbar__where{min-width:0;color:var(--text-2);white-space:nowrap;text-overflow:ellipsis;align-items:baseline;gap:8px;margin-right:auto;font-size:14px;font-weight:500;display:flex;overflow:hidden}.topbar__where b{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px;font-weight:600}.topbar__where:before{content:"/";color:var(--line-2)}.nav{background:var(--bg);border-bottom:1px solid var(--line);flex-direction:column;gap:0;margin:0;padding:8px 16px 16px;position:absolute;top:100%;left:0;right:0;box-shadow:0 16px 32px -16px #00000059}.nav:not(.is-open){display:none}.nav a{border-bottom:1px solid var(--line);border-radius:0;padding:14px 8px;font-size:16px}.nav a:last-child{border-bottom:0}.nav a[aria-current]:after{content:"";background:var(--accent);border-radius:50%;width:6px;height:6px;margin-top:-3px;position:absolute;top:50%;right:8px}.nav__ink{display:none}html:not(.js) .nav{width:100%;box-shadow:none;background:0 0;border:0;flex-flow:wrap;order:3;padding:0 0 8px;display:flex;position:static}html:not(.js) .nav a{border:0;padding:8px 10px;font-size:14.5px}html:not(.js) .nav-toggle,html:not(.js) .topbar__where{display:none}html:not(.js) .topbar__inner{flex-wrap:wrap}}@media (width<=520px){.topbar__where b,.topbar__cv{display:none}.js .nav .nav__cv{display:block}.topbar__inner{padding:0 16px}}.worlds{z-index:40;pointer-events:none;position:fixed;inset:50% 0 auto}.worlds__door{width:78px;color:var(--text-2);pointer-events:auto;flex-direction:column;align-items:center;gap:6px;text-decoration:none;display:flex;position:absolute;top:0;translate:0 -22px}.worlds__door--prev{left:1px}.worlds__door--next{right:1px}.worlds__door .ico{box-sizing:content-box;background:color-mix(in srgb, var(--surface) 80%, transparent);border:1px solid var(--line-2);width:17px;height:17px;transition:transform .3s var(--ease-out), border-color .2s, background .2s;border-radius:50%;padding:13px}@supports ((-webkit-backdrop-filter:blur(8px)) or (backdrop-filter:blur(8px))){.worlds__door .ico{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}}.worlds__l{white-space:nowrap;letter-spacing:.02em;max-width:100%;color:var(--muted);text-shadow:0 0 10px var(--bg), 0 0 4px var(--bg);font-size:11px;font-weight:600;transition:color .2s}.worlds__door:hover,.worlds__door:focus-visible{color:var(--text)}.worlds__door:hover .ico,.worlds__door:focus-visible .ico{border-color:var(--muted);background:var(--surface)}.worlds__door:hover .worlds__l,.worlds__door:focus-visible .worlds__l{color:var(--text)}.worlds__door--next:hover .ico{transform:translate(2px)}.worlds__door--prev:hover .ico{transform:translate(-2px)}@media (width<=1240px){.worlds__door{width:46px}.worlds__door--prev{left:12px}.worlds__door--next{right:12px}.worlds__l{display:none}}.page--doc .worlds{display:none}@media (width<=760px){.worlds{height:calc(var(--dock) + env(safe-area-inset-bottom,0px));padding:0 8px env(safe-area-inset-bottom,0px);background:var(--bg);border-top:1px solid var(--line);pointer-events:auto;justify-content:space-between;align-items:center;display:flex;inset:auto 0 0}.worlds__door{width:auto;height:var(--dock);flex-direction:row;gap:2px;padding:0 8px;position:static;translate:none}.worlds__door--next{flex-direction:row-reverse;margin-left:auto}.worlds__door .ico{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;padding:6px}.worlds__l{letter-spacing:0;color:var(--text-2);text-shadow:none;font-size:14px;display:block}body{--dock:46px}.page--world .space-ui{padding-bottom:16px}.js:not(.no-app) body.page--world .world{height:calc(100vh - var(--dock));height:calc(100dvh - var(--dock) - env(safe-area-inset-bottom,0px))}}html:not(.js) .worlds,.no-app .worlds{display:none}.world{display:block;position:relative;overflow-x:clip}.world__bg{z-index:-1;pointer-events:none;view-transition-name:world;position:fixed;inset:0;overflow:hidden}.world__bg:before,.world__bg:after,.world__bg i{content:"";background:radial-gradient(circle, var(--g1,var(--glow)) 0%, transparent 62%);border-radius:50%;width:80vmax;height:80vmax;position:absolute}.world__bg:before{top:-45vmax;right:-30vmax}.world__bg:after{background:radial-gradient(circle, var(--g2,transparent) 0%, transparent 60%);bottom:-55vmax;left:-35vmax}.world__bg i{display:none}.world--profil{--g1:color-mix(in srgb, var(--accent) 26%, transparent);--g2:color-mix(in srgb, var(--c-perso) 10%, transparent)}.world--projets{--g1:color-mix(in srgb, var(--c-pro) 16%, transparent);--g2:color-mix(in srgb, var(--c-perso) 12%, transparent)}.world--parcours{--g1:color-mix(in srgb, var(--c-school) 20%, transparent);--g2:color-mix(in srgb, var(--c-pro) 10%, transparent)}.world--competences{--g1:color-mix(in srgb, var(--f-data) 15%, transparent);--g2:color-mix(in srgb, var(--f-back) 12%, transparent)}.world--contact{--g1:color-mix(in srgb, var(--accent) 22%, transparent);--g2:color-mix(in srgb, var(--ok) 9%, transparent)}[data-theme=day] .world__bg:before,[data-theme=day] .world__bg:after{opacity:.75}.js:not(.no-app) .page--world{overscroll-behavior:none;height:100%;overflow:hidden}.js:not(.no-app) .page--world .world{height:100dvh;overflow:hidden}.js:not(.no-app) .page--world .world>section{position:absolute;inset:0}.world-ui{z-index:5;padding:calc(var(--top) + 26px) var(--gut) 0;pointer-events:none;max-width:940px;position:relative}.world-ui>*{pointer-events:auto}.js:not(.no-app) .page--world .world-ui{position:absolute;top:0;left:0;right:0}.world-head{pointer-events:none;flex-direction:column;gap:8px;display:flex}.world-head__k{letter-spacing:.18em;text-transform:uppercase;color:var(--muted);align-items:center;gap:10px;font-size:12.5px;font-weight:600;display:flex}.world-head__k span{color:var(--accent);font-variant-numeric:tabular-nums}.world-head__n{letter-spacing:.02em;text-transform:none;color:var(--muted);font-style:normal;font-weight:500}.world-head__n:before{content:"·";margin-right:10px}.world-head__t{letter-spacing:-.04em;color:var(--text);font-size:clamp(30px,4vw,48px);font-weight:700;line-height:1.04}.world-head__lead{max-width:58ch;color:var(--muted);font-size:15.5px;line-height:1.55}.page--world .world-head__lead{text-shadow:0 0 18px var(--bg), 0 0 6px var(--bg)}.pj-bar,.eco-bar{flex-wrap:wrap;gap:8px 14px;margin-top:18px;display:flex}@media (width<=700px){.world-ui{padding-top:calc(var(--top) + 14px)}.js:not(.no-app) .page--world :is(.pj,.eco) .world-ui:before{content:"";z-index:-1;pointer-events:none;background:linear-gradient(var(--bg) 62%, transparent);position:absolute;inset:0 0 -28px}.world-head__t{font-size:28px}.world-head__lead{font-size:13.5px}.pj-bar,.eco-bar{margin:12px calc(var(--gut) * -1) 0;padding:2px var(--gut) 4px;scrollbar-width:none;flex-wrap:nowrap;overflow-x:auto}.pj-bar::-webkit-scrollbar{display:none}.eco-bar::-webkit-scrollbar{display:none}.pj-bar .seg-group,.eco-bar .seg-group{flex-wrap:nowrap}}.pf-hero{min-height:100svh;padding:calc(var(--top) + 32px) var(--gut) 96px;text-align:center;place-items:center;display:grid;position:relative;overflow:hidden}.pf-hero:before{content:"";pointer-events:none;background:radial-gradient(circle, color-mix(in srgb, var(--accent) 22%, transparent), transparent 64%);width:70vmin;height:70vmin;transform:translate3d(var(--hx,0px), var(--hy,0px), 0);border-radius:50%;margin:-35vmin 0 0 -35vmin;position:absolute;top:46%;left:50%}.pf-hero__inner{z-index:1;flex-direction:column;align-items:center;display:flex;position:relative}.pf-name{letter-spacing:-.055em;text-transform:uppercase;color:var(--text);view-transition-name:name;font-size:clamp(52px,12.5vw,196px);font-weight:750;line-height:.9}.pf-name__w{vertical-align:top;margin-bottom:-.08em;padding:.02em .02em .08em;display:inline-block;overflow:hidden}.pf-name__w>span{background:linear-gradient(180deg, var(--text) 40%, color-mix(in srgb, var(--text) 55%, var(--bg)));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;display:inline-block}.pf-role{letter-spacing:-.01em;color:var(--text-2);margin-top:clamp(18px,2.6vw,30px);font-size:clamp(18px,2vw,24px);font-weight:500}.pf-ctx{letter-spacing:.16em;text-transform:uppercase;color:var(--muted);flex-wrap:wrap;justify-content:center;align-items:center;row-gap:6px;margin-top:16px;font-size:12.5px;font-weight:600;display:flex}.pf-ctx .pulse{margin-right:14px}.pf-ctx__i+.pf-ctx__i:before{content:"·";margin:0 12px}.pf-cta{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:36px;display:flex}.pf-scroll{z-index:1;color:var(--muted);flex-direction:column;align-items:center;gap:4px;font-size:12.5px;font-weight:500;text-decoration:none;display:flex;position:absolute;bottom:28px;left:50%;translate:-50%}.pf-scroll .ico{width:18px;height:18px;animation:nudge 2.4s var(--ease) infinite}.pf-scroll:hover{color:var(--text)}@keyframes nudge{0%,60%,to{transform:none}30%{transform:translateY(4px)}}.pf-orbs{pointer-events:none;position:absolute;inset:0}.pf-orbs i{--s:38px;left:var(--x);top:var(--y);width:calc(var(--s) * (.5 + var(--z)));height:calc(var(--s) * (.5 + var(--z)));margin:calc(var(--s) * (.5 + var(--z)) / -2) 0 0 calc(var(--s) * (.5 + var(--z)) / -2);transform:translate3d(calc(var(--px,0px) * var(--z)), calc(var(--py,0px) * var(--z) + var(--sy,0px) * var(--z)), 0);opacity:calc(.35 + var(--z) * .55);position:absolute}.pf-orbs i[data-tier=m]{--s:48px}.pf-orbs i[data-tier=l]{--s:62px}.pf-orbs i:before,.pf-orbs i:after{content:"";animation:9s ease-in-out infinite alternate float;animation-delay:calc(var(--d) * -1);position:absolute;inset:0}.pf-orbs i:before{background:radial-gradient(circle at 32% 26%, color-mix(in srgb, var(--fam) 55%, var(--surface)), color-mix(in srgb, var(--fam) 14%, var(--surface)) 70%);border:1px solid color-mix(in srgb, var(--fam) 55%, transparent);border-radius:50%}.pf-orbs i:after{background:var(--text);opacity:.9;-webkit-mask:var(--logo) center / contain no-repeat;-webkit-mask:var(--logo) center / contain no-repeat;mask:var(--logo) center / contain no-repeat;inset:25%}.pf-orbs.is-paused i:before,.pf-orbs.is-paused i:after{animation-play-state:paused}@keyframes float{to{transform:translateY(-14px)}}@media (width<=700px){.pf-name{font-size:17vw}.pf-ctx{gap:4px 14px}.pf-ctx .pulse{margin-right:0}.pf-ctx__i+.pf-ctx__i:before{content:none}.pf-orbs i{--s:26px}.pf-orbs i[data-tier=m]{--s:32px}.pf-orbs i[data-tier=l]{--s:40px}.pf-orbs{opacity:.7}.pf-ctx{letter-spacing:.08em;font-size:11.5px}.pf-cta .btn{flex:100%}.pf-cta{width:100%;max-width:340px}.pf-cta .btn:not(.btn--primary){background:var(--bg)}}.pf-feat{padding:112px 0 0}.feat{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:24px;display:grid}.feat-card{background:var(--surface);border:1px solid var(--line);height:100%;transition:border-color .3s, transform .45s var(--ease-out);border-radius:20px;flex-direction:column;gap:10px;padding:12px 12px 18px;display:flex;position:relative}.feat-card:hover{border-color:color-mix(in srgb, var(--cat) 55%, var(--line-2));transform:translateY(-4px)}.feat-card>:not(.pj-cover){margin-inline:8px}.feat-card .pj-cover{margin-bottom:6px}.feat-card__meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px 10px;font-size:13px;display:flex}.feat-card__title{letter-spacing:-.03em;font-size:22px;font-weight:700;line-height:1.2}.feat-card__title a{color:var(--text);text-decoration:none}.feat-card__title a:after{content:"";border-radius:inherit;position:absolute;inset:0}.feat-card__desc{-webkit-line-clamp:3;line-clamp:3;color:var(--text-2);-webkit-box-orient:vertical;font-size:15px;display:-webkit-box;overflow:hidden}.feat-card .tags{margin-top:auto;padding-top:6px}.pf-feat__more{color:var(--muted);flex-wrap:wrap;align-items:baseline;gap:6px 18px;margin-top:24px;font-size:14px;display:flex}@media (width<=960px){.pf-feat{padding-top:72px}.feat{grid-template-columns:1fr;max-width:560px}}.pf-about{padding:104px 0 64px}.pf-statement{letter-spacing:-.035em;max-width:24ch;color:var(--text);margin-top:22px;font-size:clamp(28px,4.2vw,52px);font-weight:650;line-height:1.12}.pf-about__grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;margin-top:56px;display:grid}.pf-about__text{flex-direction:column;gap:24px;font-size:17px;display:flex}.facts{border-top:1px solid var(--line);display:grid}.facts>div{border-bottom:1px solid var(--line);grid-template-columns:140px 1fr;align-items:baseline;gap:16px;padding:14px 0;display:grid}.facts dt{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:12.5px;font-weight:600}.facts dd{color:var(--text);font-weight:500}.facts__m{color:var(--muted);margin-left:6px;font-weight:400}@media (width<=860px){.pf-about{padding:72px 0 40px}.pf-about__grid{grid-template-columns:1fr;gap:32px;margin-top:36px}.facts>div{grid-template-columns:1fr;gap:2px}}.pf-next{padding:48px 0 120px}.doors{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:24px;display:grid}.door{isolation:isolate;background:var(--surface);border:1px solid var(--line);height:100%;min-height:168px;transition:border-color .3s, transform .45s var(--ease-out);border-radius:20px;flex-direction:column;gap:6px;padding:20px 22px 48px;text-decoration:none;display:flex;position:relative;overflow:hidden}.door:before{content:"";aspect-ratio:1;z-index:-1;background:radial-gradient(circle, var(--door,var(--glow)) 0%, transparent 60%);opacity:.55;width:120%;transition:opacity .4s, transform .6s var(--ease-out);border-radius:50%;position:absolute;inset:auto -30% -60% auto}.door--parcours{--door:color-mix(in srgb, var(--c-school) 30%, transparent)}.door--competences{--door:color-mix(in srgb, var(--f-data) 26%, transparent)}.door--contact{--door:color-mix(in srgb, var(--accent) 30%, transparent)}.door:hover{border-color:var(--line-2);transform:translateY(-4px)}.door:hover:before{opacity:1;transform:scale(1.1)}.door__n{color:var(--accent);font-variant-numeric:tabular-nums;font-size:12px;font-weight:600}.door__l{letter-spacing:-.03em;color:var(--text);font-size:24px;font-weight:700}.door__q{color:var(--text-2);font-size:15px}.door__h{color:var(--muted);margin-top:auto;font-size:13px}.door__go{width:20px;height:20px;color:var(--text);transition:transform .35s var(--ease-out);position:absolute;bottom:20px;right:20px}.door:hover .door__go{transform:translate(4px)}@media (width<=760px){.doors{grid-template-columns:1fr}.door{min-height:0}}.pj-space{z-index:1;transition:transform .6s var(--ease-out), opacity .5s var(--ease);position:absolute;inset:0}.pj[data-view=list] .space-field,.eco[data-view=list] .space-field{opacity:.1;pointer-events:none;transition:opacity .4s var(--ease)}[data-view=list] .space-ui [data-home],[data-view=list] .space-hint,[data-view=list] .space-lens{display:none}.space-views .seg:not([aria-pressed=true]){background:color-mix(in srgb, var(--surface) 88%, transparent)}.pj-space.is-diving{opacity:.2;transition-duration:.55s;transform:scale(1.14)}.space-field{contain:strict;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;position:absolute;inset:0;overflow:hidden}.space-field.is-dragging,.space-field.is-dragging *{cursor:grabbing!important}.space-grid{pointer-events:none;background-image:radial-gradient(var(--dot) 1.2px, transparent 1.7px);will-change:transform;background-size:34px 34px;position:absolute;inset:-40px}.space-vignette{z-index:3;pointer-events:none;background:linear-gradient(var(--bg) calc(var(--top) - 20px), transparent calc(var(--top) + 40px));position:absolute;inset:0}.bub{z-index:2;width:calc(var(--r) * 2);height:calc(var(--r) * 2);margin:calc(var(--r) * -1) 0 0 calc(var(--r) * -1);color:var(--text);cursor:pointer;will-change:transform;transition:opacity .45s var(--ease);border-radius:50%;position:absolute;top:0;left:0}.bub--back{z-index:1;opacity:.42}.bub--back .bub__name{color:var(--text-2)}.bub__core{text-align:center;background:radial-gradient(circle at 32% 24%, color-mix(in srgb, var(--cat) 30%, var(--surface)) 0%, color-mix(in srgb, var(--cat) 10%, var(--surface)) 62%, color-mix(in srgb, var(--cat) 6%, var(--bg)) 100%);border:1px solid color-mix(in srgb, var(--cat) 44%, transparent);box-shadow:0 22px 44px -26px color-mix(in srgb, var(--cat) 70%, transparent);transition:transform .5s var(--ease-out), border-color .3s, box-shadow .4s;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:7px;padding:11%;display:flex;position:absolute;inset:0}.bub[data-tier=l] .bub__core:before{content:"";border:1px dashed color-mix(in srgb, var(--cat) 45%, transparent);transition:inset .5s var(--ease-out);border-radius:50%;position:absolute;inset:-9px}.bub--back .bub__core{box-shadow:none}.bub__img{background:var(--surface-2) center / cover no-repeat;transition:transform .6s var(--ease-out);border-radius:50%;position:absolute;inset:0;overflow:hidden}.bub__img:after{content:"";background:linear-gradient(#0000 30%,#080a1047 52%,#080a10d1 100%);position:absolute;inset:0}.bub--img .bub__core{justify-content:flex-end;padding-bottom:15%}.bub--img .bub__name,.bub--img .bub__st{position:relative}.bub--img .bub__name{color:#fff;text-shadow:0 1px 8px #0000008c}.bub--img.bub--back .bub__name,.bub--back .bub__core:before{display:none}.bub__name{letter-spacing:-.01em;text-wrap:balance;font-size:12.5px;font-weight:650;line-height:1.15}.bub[data-tier=m] .bub__name{font-size:14px}.bub[data-tier=l] .bub__name{font-size:16.5px}.bub--back .bub__name{font-weight:600;font-size:10.5px!important}.bub__st{background:var(--tone,var(--muted));border-radius:50%;flex-shrink:0;width:7px;height:7px}.bub[data-status=on]{--tone:var(--ok)}.bub[data-status=wip]{--tone:var(--wip)}.bub[data-status=off] .bub__st{box-shadow:inset 0 0 0 1.5px var(--muted);background:0 0}.bub--back .bub__st{display:none}@media (hover:hover){.bub:hover .bub__core{border-color:var(--cat);box-shadow:0 0 0 6px color-mix(in srgb, var(--cat) 12%, transparent), 0 26px 50px -24px color-mix(in srgb, var(--cat) 80%, transparent);transform:scale(1.07)}.bub[data-tier=l]:hover .bub__core:before{inset:-14px}.bub--img:hover .bub__img{transform:scale(1.06)}.bub--back:hover{opacity:.9}}.bub.is-focus{opacity:1}.bub.is-focus .bub__core{border-color:var(--cat);box-shadow:0 0 0 2px var(--bg), 0 0 0 4px var(--accent);transform:scale(1.07)}.bub.is-dim{opacity:.12}.bub--back.is-dim{opacity:.06}.bub.is-lit{opacity:1}.bub--back.is-lit{opacity:.6}.bub--back.is-lit .bub__core{box-shadow:0 0 0 1px var(--cat)}.bub.is-lit .bub__core{border-color:var(--cat);box-shadow:0 0 0 2px var(--cat), 0 0 0 9px color-mix(in srgb, var(--cat) 16%, transparent)}@media (width<=700px){.bub__name{font-size:11px}.bub[data-tier=m] .bub__name{font-size:12px}.bub[data-tier=l] .bub__name{font-size:13.5px}.bub__core{gap:5px;padding:9%}.bub--back .bub__name{font-size:9px!important}}.space-tip{z-index:6;pointer-events:none;background:color-mix(in srgb, var(--surface) 94%, transparent);border:1px solid var(--line-2);width:244px;box-shadow:var(--shadow);opacity:0;visibility:hidden;transition:opacity .18s, visibility .18s, translate .3s var(--ease-out);border-radius:14px;padding:14px 16px;position:absolute;top:0;left:0;translate:0 6px}@supports ((-webkit-backdrop-filter:blur(8px)) or (backdrop-filter:blur(8px))){.space-tip{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}}.space-tip.is-on{opacity:1;visibility:visible;translate:0}.space-tip__img{aspect-ratio:16/10;object-fit:cover;object-position:top;background:var(--surface-2);border-radius:8px;width:100%;margin-bottom:12px}.space-tip[data-device=mobile] .space-tip__img{object-position:center 22%}.space-tip__t{color:var(--text);font-size:15.5px;font-weight:650;line-height:1.3}.space-tip__m{color:var(--muted);align-items:center;gap:7px;margin-top:5px;font-size:13px;line-height:1.5;display:flex}.space-tip .status{margin-top:8px}.space-tip__hint{border-top:1px solid var(--line);color:var(--muted);margin-top:10px;padding-top:10px;font-size:12px}@media (hover:none){.space-tip{display:none}}.space-ui{z-index:6;padding:0 var(--gut) calc(22px + env(safe-area-inset-bottom,0px));pointer-events:none;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;display:flex;position:absolute;bottom:0;left:0;right:0}.space-ui>*{pointer-events:auto}.space-hint{color:var(--muted);background:color-mix(in srgb, var(--bg) 82%, transparent);border-radius:999px;padding:7px 14px;font-size:13px;transition:opacity .6s}.space-hint.is-gone{opacity:0}.space-btn{cursor:pointer;min-height:36px;font:500 13px var(--font);color:var(--text-2);background:color-mix(in srgb, var(--surface) 88%, transparent);border:1px solid var(--line-2);border-radius:999px;align-items:center;gap:7px;padding:6px 13px;transition:color .2s,border-color .2s;display:inline-flex}.space-btn:hover{color:var(--text);border-color:var(--muted)}.space-btn .ico{width:15px;height:15px}.space-lens{min-height:36px;color:var(--text);background:var(--surface);border:1px solid var(--fam,var(--line-2));border-radius:999px;align-items:center;gap:8px;padding:5px 6px 5px 13px;font-size:13px;display:inline-flex}.space-lens:before{content:"";background:var(--fam,var(--accent));border-radius:50%;width:7px;height:7px}.space-lens button{cursor:pointer;width:26px;height:26px;color:var(--muted);background:var(--surface-2);border:0;border-radius:50%;place-items:center;display:inline-grid}.space-lens button:hover{color:var(--text)}.space-lens .ico{width:14px;height:14px}.legend{pointer-events:auto;align-self:flex-start;margin-top:6px;position:relative}.legend>summary{cursor:pointer;min-height:36px;font:500 13.5px var(--font);color:var(--text-2);background:color-mix(in srgb, var(--surface) 86%, transparent);border:1px solid var(--line-2);border-radius:999px;align-items:center;gap:7px;padding:6px 12px 6px 14px;list-style:none;transition:color .2s,border-color .2s;display:inline-flex}.legend>summary::-webkit-details-marker{display:none}.legend>summary:hover,.legend[open]>summary{color:var(--text);border-color:var(--muted)}.legend__chev{width:15px;height:15px;transition:transform .35s var(--ease-out)}.legend[open] .legend__chev{transform:rotate(180deg)}.legend__in{z-index:8;width:max-content;max-width:min(320px, calc(100vw - var(--gut) * 2));background:color-mix(in srgb, var(--surface) 95%, transparent);border:1px solid var(--line-2);box-shadow:var(--shadow);transform-origin:0 0;border-radius:16px;gap:14px;padding:16px 18px;display:grid;position:absolute;top:calc(100% + 8px);left:0}@supports ((-webkit-backdrop-filter:blur(8px)) or (backdrop-filter:blur(8px))){.legend>summary,.legend__in{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}}.legend[open] .legend__in{animation:legendIn .32s var(--ease-out)}@keyframes legendIn{0%{opacity:0;transform:translateY(-6px)scale(.97)}}.legend__t{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:7px;font-size:11.5px;font-weight:600}.legend__g ul{gap:6px;display:grid}.legend__g li{color:var(--text-2);grid-template-columns:14px auto;align-items:center;gap:9px;font-size:13.5px;display:grid}.legend__g li>i{justify-self:center}.lg-dot{border-radius:50%;width:8px;height:8px}.lg-dot--on{background:var(--ok)}.lg-dot--wip{background:var(--wip)}.lg-dot--off{box-shadow:inset 0 0 0 1.5px var(--muted)}.lg-size{border:1px solid var(--muted);border-radius:50%;display:inline-block}.lg-size--l{border-style:dashed;width:14px;height:14px}.lg-size--m{width:11px;height:11px}.lg-size--s{width:8px;height:8px}.eco .lg-size--l{border-style:solid}.lg-size--decl{border-style:dashed;width:10px;height:10px}@media (prefers-reduced-motion:reduce){.legend[open] .legend__in{animation:none}}.pj-list{z-index:2;padding:32px var(--gut) 64px;position:relative}.js:not(.no-app) .pj:not([data-view=list]) .pj-list{clip-path:inset(50%);width:1px;height:1px;padding:0;overflow:hidden;position:absolute!important}.js:not(.no-app) .pj[data-view=list] .pj-list{z-index:4;overscroll-behavior:contain;padding:calc(var(--head,290px) + 18px) var(--gut) 32px;-webkit-mask-image:linear-gradient(transparent calc(var(--head,290px) - 6px), #000 calc(var(--head,290px) + 14px), #000 calc(100% - 24px), transparent);-webkit-mask-image:linear-gradient(transparent calc(var(--head,290px) - 6px), #000 calc(var(--head,290px) + 14px), #000 calc(100% - 24px), transparent);mask-image:linear-gradient(transparent calc(var(--head,290px) - 6px), #000 calc(var(--head,290px) + 14px), #000 calc(100% - 24px), transparent);position:absolute;inset:0 0 84px;overflow-y:auto}.pj-index{flex-direction:column;gap:10px;max-width:980px;display:flex}.pj-item article{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);transition:border-color .25s,background .25s;position:relative}.pj-item__head{grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:4px 16px;padding:18px 22px;display:grid}.pj-item__orb{background:radial-gradient(circle at 32% 26%, color-mix(in srgb, var(--cat) 45%, var(--surface)), color-mix(in srgb, var(--cat) 12%, var(--surface)));border:1px solid color-mix(in srgb, var(--cat) 50%, transparent);border-radius:50%;grid-row:span 2;justify-self:center;width:28px;height:28px}.pj-item[data-tier=m] .pj-item__orb{width:21px;height:21px}.pj-item[data-tier=s] .pj-item__orb{width:15px;height:15px}.pj-item.is-seen .pj-item__title:after{content:"vu";letter-spacing:.04em;color:var(--muted);margin-left:10px;font-size:11.5px;font-weight:500}.pj-item__title{letter-spacing:-.015em;color:var(--text);font-size:18px;font-weight:650;line-height:1.3}.pj-item__meta{color:var(--muted);flex-wrap:wrap;grid-column:2;align-items:center;gap:4px 12px;font-size:13.5px;display:flex}.pj-item__status{grid-area:1/3/span 2}.pj-item__body{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:8px 28px;padding:0 22px 22px;display:grid}.pj-item__body>.pj-cover{grid-row:span 4}.pj-item__desc{color:var(--text-2);font-size:15px}.pj-item__role p{color:var(--text-2);font-size:14.5px}.pj-item__role .mini-title{margin:8px 0 4px}.pj-item__links{flex-wrap:wrap;gap:8px;margin-top:6px;display:flex}.js:not(.no-app) .pj-item__body{display:none}.pj-item__open{font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0;position:static}.pj-item__open:after{content:"";border-radius:var(--radius);position:absolute;inset:0}.pj-item__open:focus-visible{outline:none}.pj-item article:has(.pj-item__open:focus-visible){outline:2px solid var(--accent);outline-offset:3px}.pj-item article:has(.pj-item__open:hover){border-color:var(--line-2);background:color-mix(in srgb, var(--cat) 5%, var(--surface))}.pj-item.is-dim{opacity:.35}@media (width<=760px){.pj-item__head{grid-template-columns:28px minmax(0,1fr);padding:16px 18px}.pj-item__status{grid-area:auto/2}.pj-item__orb{grid-row:span 3;align-self:start;margin-top:4px}.pj-item__body{grid-template-columns:1fr;padding:0 18px 18px}.pj-item__body>.pj-cover{grid-row:auto}}.pj-cover{aspect-ratio:16/10;border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--line);position:relative;overflow:hidden}.pj-cover__img{object-fit:cover;object-position:top center;width:100%;height:100%}.pj-cover--mobile .pj-cover__img{object-fit:contain;padding-top:12px}.pj-cover--type{background:radial-gradient(110% 120% at 100% 0%, color-mix(in srgb, var(--cat) 30%, transparent) 0%, transparent 60%), var(--surface-2);align-items:flex-end;padding:18px 20px;display:flex}.pj-cover--type span{letter-spacing:-.03em;color:var(--text);font-size:24px;font-weight:700;line-height:1.15;position:relative}.pjd{width:100%;max-width:none;height:100%;max-height:none;color:var(--text-2);background:0 0;border:0;margin:0;padding:0;position:fixed;inset:0;overflow:hidden}.pjd::backdrop{background:color-mix(in srgb, var(--bg) 50%, transparent);opacity:0;transition:opacity .45s var(--ease)}@supports ((-webkit-backdrop-filter:blur(4px)) or (backdrop-filter:blur(4px))){.pjd::backdrop{-webkit-backdrop-filter:blur(8px)saturate(1.1);backdrop-filter:blur(8px)saturate(1.1)}}.pjd.is-open::backdrop{opacity:1}.pjd__panel{background:var(--surface);border:1px solid var(--line-2);border-radius:28px;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);max-width:1180px;max-height:820px;margin:auto;display:grid;position:absolute;inset:28px;overflow:hidden;box-shadow:0 40px 120px -40px #0009}.pjd__media{background:radial-gradient(90% 80% at 50% 45%, color-mix(in srgb, var(--cat) 24%, transparent), transparent 70%), var(--surface-2);place-items:center;display:grid;position:relative;overflow:hidden}.pjd__media:before{content:"";background-image:radial-gradient(var(--dot) 1.2px, transparent 1.6px);background-size:34px 34px;position:absolute;inset:0}.pjd__orb{aspect-ratio:1;text-align:center;background:radial-gradient(circle at 32% 24%, color-mix(in srgb, var(--cat) 34%, var(--surface)) 0%, color-mix(in srgb, var(--cat) 10%, var(--surface)) 64%);border:1px solid color-mix(in srgb, var(--cat) 50%, transparent);width:min(66%,380px);box-shadow:0 0 0 18px color-mix(in srgb, var(--cat) 6%, transparent), 0 40px 80px -40px color-mix(in srgb, var(--cat) 80%, transparent);border-radius:50%;place-items:center;padding:12%;display:grid;position:relative}.pjd__orb span{letter-spacing:-.03em;color:var(--text);font-size:clamp(22px,3vw,34px);font-weight:700;line-height:1.1}.pjd__media.has-shots .pjd__orb{display:none}.pjd__gal{flex-direction:column;display:flex;position:absolute;inset:0}.pjd__track{scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:none;flex:1;min-height:0;display:flex;overflow:auto hidden}.pjd__track::-webkit-scrollbar{display:none}.pjd__track:focus-visible{outline:2px solid var(--accent);outline-offset:-6px;border-radius:20px}.pjd__slide{scroll-snap-align:center;flex-direction:column;flex:0 0 100%;justify-content:center;align-items:center;gap:16px;min-width:0;padding:64px 40px 8px;display:flex}.pjd__frame{background:var(--surface);border:1px solid var(--line-2);max-width:100%;box-shadow:0 30px 70px -34px color-mix(in srgb, var(--cat) 60%, #0009);opacity:0;transition:opacity .5s var(--ease), transform .6s var(--ease-out);position:relative;overflow:hidden;transform:translateY(10px)}.pjd__frame.is-loaded{opacity:1;transform:none}.pjd__frame img{width:auto;max-width:100%;height:auto;display:block}.pjd__frame--desktop{border-radius:12px;padding-top:22px}.pjd__frame--desktop:before{content:"";background:var(--line-2);width:6px;height:6px;box-shadow:11px 0 var(--line-2), 22px 0 var(--line-2);border-radius:50%;position:absolute;top:8px;left:11px}.pjd__frame--desktop img{border-top:1px solid var(--line);max-height:min(56vh,520px)}.pjd__frame--mobile{border-color:color-mix(in srgb, var(--text) 18%, transparent);background:#0d0f14;border-radius:30px;padding:7px}.pjd__frame--mobile img{border-radius:23px;max-height:min(62vh,600px)}.pjd__slide figcaption{text-align:center;max-width:46ch;color:var(--text-2);font-size:13.5px;line-height:1.45}.pjd__galbar{justify-content:center;align-items:center;gap:14px;padding:6px 0 22px;display:flex}.pjd__gal.is-single .pjd__galbar{display:none}.pjd__gbtn{cursor:pointer;width:36px;height:36px;color:var(--text);background:color-mix(in srgb, var(--surface) 85%, transparent);border:1px solid var(--line-2);border-radius:50%;place-items:center;transition:border-color .2s,opacity .2s;display:inline-grid}.pjd__gbtn:hover:not(:disabled){border-color:var(--muted)}.pjd__gbtn:disabled{opacity:.3;cursor:default}.pjd__gbtn .ico{width:15px;height:15px}.pjd__dots{gap:7px;display:flex}.pjd__dots i{background:var(--line-2);width:6px;height:6px;transition:background .25s, width .35s var(--ease-out);border-radius:50%}.pjd__dots i.is-on{background:var(--cat);border-radius:3px;width:18px}.pjd__body{overscroll-behavior:contain;flex-direction:column;min-height:0;display:flex;overflow-y:auto}.pjd__content{flex-direction:column;align-items:flex-start;gap:18px;padding:56px 52px 32px;display:flex}.pjd__kicker{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px 12px;font-size:13.5px;display:flex}.pjd__title{letter-spacing:-.04em;color:var(--text);font-size:clamp(30px,3.6vw,46px);font-weight:700;line-height:1.06}.pjd__status{flex-wrap:wrap;align-items:center;gap:10px 14px;display:flex}.pjd__desc{color:var(--text-2);font-size:16.5px;line-height:1.7}.pjd__block{width:100%}.pjd__block .mini-title{margin-bottom:10px}.pjd__role{width:100%}.pjd__role p:not(.mini-title){color:var(--text-2);background:var(--surface-2);border-radius:var(--radius-sm);border-left:2px solid var(--cat);padding:14px 16px;font-size:15px}.pjd__sk{margin-top:12px}.pjd__nav{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;margin-top:auto;padding:16px 52px 22px;display:flex}.pjd__step{cursor:pointer;min-width:0;min-height:44px;font:500 14px var(--font);color:var(--muted);text-align:left;background:0 0;border:0;align-items:center;gap:10px;padding:6px 4px;transition:color .2s;display:inline-flex}.pjd__step:hover{color:var(--text)}.pjd__step span{text-overflow:ellipsis;white-space:nowrap;max-width:22ch;overflow:hidden}.pjd__count{white-space:nowrap;color:var(--muted);font-variant-numeric:tabular-nums;font-size:13px}.pjd__close{z-index:2;cursor:pointer;width:44px;height:44px;color:var(--text);background:color-mix(in srgb, var(--surface) 85%, transparent);border:1px solid var(--line-2);transition:border-color .2s, transform .35s var(--ease-out);border-radius:50%;place-items:center;display:inline-grid;position:absolute;top:18px;right:18px}.pjd__close:hover{border-color:var(--muted);transform:rotate(90deg)}@media (width<=860px){.pjd__panel{overscroll-behavior:contain;border:0;border-radius:0;grid-template-rows:auto;grid-template-columns:1fr;max-height:none;inset:0;overflow-y:auto}.pjd__media{height:32vh;min-height:200px}.pjd__orb{width:auto;height:76%}.pjd__panel{flex-direction:column;display:flex}.pjd__media,.pjd__body{flex-shrink:0}.pjd__media.has-shots{height:auto;min-height:0}.pjd__media.has-shots .pjd__gal{position:relative}.pjd__slide{gap:10px;padding:64px 16px 4px}.pjd__frame--desktop img{max-height:34vh}.pjd__frame--mobile img{max-height:46vh}.pjd__galbar{padding-bottom:14px}.pjd__body{overflow:visible}.pjd__content{padding:28px 20px 24px}.pjd__nav{padding:12px 16px calc(16px + env(safe-area-inset-bottom,0px))}.pjd__step span{max-width:13ch}}[data-kind=edu]{--k:var(--c-school)}[data-kind=pro]{--k:var(--c-pro)}[data-kind=perso]{--k:var(--c-perso)}[data-kind=award]{--k:var(--c-award)}[data-kind=next]{--k:var(--ok)}.tl-stage{padding:24px var(--gut) 40px;position:relative}.tl-panels{flex-direction:column;gap:48px;max-width:1120px;display:flex}.tl-panel__head{max-width:620px}@media (width>=1100px){.tl-panel:has(.tl-kin,.tl-panel__projects){grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:0 64px;display:grid}.tl-panel:has(.tl-kin,.tl-panel__projects) .tl-panel__body{margin-top:30px}}.tl-panel__k{color:var(--text);font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:baseline;gap:4px 12px;font-size:14px;font-weight:600;display:flex}.tl-panel__k span{letter-spacing:.12em;text-transform:uppercase;color:color-mix(in srgb, var(--k) 78%, var(--text));font-size:12px}.tl-panel__t{letter-spacing:-.035em;max-width:24ch;color:var(--text);text-wrap:balance;margin-top:10px;font-size:clamp(26px,3.4vw,44px);font-weight:700;line-height:1.1}.tl-panel--normal .tl-panel__t,.tl-panel--pin .tl-panel__t{font-size:clamp(24px,2.8vw,36px)}.tl-panel__place{color:var(--muted);margin-top:10px;font-size:15px}.tl-panel__lead{max-width:58ch;color:var(--text);margin-top:18px;font-size:17px;line-height:1.6}.tl-panel__body{max-width:62ch;color:var(--text-2);flex-direction:column;gap:16px;margin-top:22px;font-size:15.5px;display:flex}.tl-panel__body:empty{display:none}.tl-panel__details{flex-direction:column;gap:7px;display:flex}.tl-panel__details li{padding-left:18px;position:relative}.tl-panel__details li:before{content:"";background:var(--k);border-radius:50%;width:6px;height:6px;position:absolute;top:.72em;left:3px}.tl-panel__projects ul{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;display:grid}.tl-panel__projects a{background:color-mix(in srgb, var(--surface) 88%, transparent);border:1px solid var(--line);border-radius:var(--radius-sm);height:100%;transition:border-color .2s, transform .35s var(--ease-out);flex-direction:column;padding:10px 13px 10px 28px;text-decoration:none;display:flex;position:relative}.tl-panel__projects a:before{content:"";background:var(--cat);border-radius:50%;width:7px;height:7px;position:absolute;top:17px;left:12px}.tl-panel__projects a:hover{border-color:var(--cat);transform:translateY(-2px)}.tl-panel__projects strong{color:var(--text);font-size:14.5px;font-weight:600}.tl-panel__projects span{color:var(--muted);font-size:12.5px}.tl-logo{border:1px solid var(--line);background:#fff;border-radius:12px;align-items:center;height:54px;margin-bottom:16px;padding:8px 13px;display:inline-flex}.tl-logo img{object-fit:contain;width:auto;max-width:180px;height:100%;display:block}.tl-photos{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;display:grid}.tl-photos figure{flex-direction:column;gap:6px;display:flex}.tl-photos a{border-radius:var(--radius-sm);border:1px solid var(--line);background:#fff;display:block;overflow:hidden}.tl-photos img{aspect-ratio:4/3;object-fit:cover;width:100%;transition:transform .5s var(--ease-out);display:block}.tl-photos a:hover img{transform:scale(1.03)}.tl-photos figcaption{color:var(--muted);font-size:12.5px;line-height:1.4}.tl-panel__acts{flex-wrap:wrap;align-items:center;gap:12px 22px;display:flex}.tl-panel__head .tl-panel__acts{margin-top:16px}.tl-shots{align-items:flex-start;gap:12px;margin-top:22px;text-decoration:none;display:flex}.tl-shots img{border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--surface-2);width:auto;min-width:0;max-width:100%;height:auto;max-height:min(42vh,400px);transition:transform .5s var(--ease-out), border-color .2s;display:block}.tl-shots--mobile img{border-radius:14px;flex:0 auto;max-height:min(46vh,420px)}.tl-shots:hover img{border-color:var(--k);transform:translateY(-3px)}@media (width>=900px){.tl-panel--shots{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:start;gap:0 56px;display:grid}.tl-panel--shots .tl-shots{align-self:center;margin-top:0}}@media (width<=700px){.tl-shots{gap:8px;margin-top:16px}.tl-shots img,.tl-shots--mobile img{max-height:min(30vh,260px)}}.tl-kin ul{border-top:1px solid var(--line)}.tl-kin a{border-bottom:1px solid var(--line);color:var(--text);transition:padding .3s var(--ease-out), color .2s;grid-template-columns:12px minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 2px;text-decoration:none;display:grid}.tl-kin a:hover{padding-left:6px}.tl-kin strong{font-size:14.5px;font-weight:600}.tl-kin span{color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:12.5px}.tl-kin i,.tl-legend__dot,.tl-legend__dia{background:var(--k);border-radius:50%;width:8px;height:8px}.tl-kin [data-kind=award] i,.tl-legend__dia{border-radius:1px;rotate:45deg}.tl-more summary{cursor:pointer;color:var(--text);border-bottom:1px solid var(--line-2);align-items:center;gap:6px;padding-bottom:2px;font-size:13.5px;font-weight:600;list-style:none;display:inline-flex}.tl-more summary::-webkit-details-marker{display:none}.tl-more summary:hover{border-color:var(--text)}.tl-more__chev{width:14px;height:14px;transition:transform .3s var(--ease-out)}.tl-more[open] .tl-more__chev{transform:rotate(180deg)}.tl-more p{background:color-mix(in srgb, var(--surface-2) 80%, transparent);border-left:2px solid var(--k);border-radius:var(--radius-sm);margin-top:10px;padding:12px 15px}.tl-up{color:var(--text);border-bottom:1px solid var(--line-2);font-size:14px;font-weight:600;text-decoration:none}.tl-up span{color:var(--muted);margin-right:6px;font-weight:500}.tl-up:hover{border-color:var(--text)}.tl-track{border-top:1px solid var(--line);padding:4px 0 14px;position:relative;overflow-x:auto}.tl-rail{--ppy:190px;--off:28px;--end:72px;--span:calc(var(--ppy) * (var(--years,7)));--y-bar:38px;--y-pin:102px;--y-line:130px;--lvl-h:16px;width:calc(var(--off) + var(--span) + var(--end));height:190px;margin:0 var(--gut);position:relative}.tl-scale{left:var(--off);width:var(--span);height:20px;position:absolute;top:10px}.tl-scale span{left:calc(var(--at) * var(--span));color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px;font-weight:600;position:absolute;translate:-50%}.tl-lanes{left:var(--off);top:var(--y-bar);width:var(--span);height:24px;position:absolute}.tl-bar{left:calc(var(--at) * var(--span));width:calc(var(--len) * var(--span));background:color-mix(in srgb, var(--k) 40%, transparent);border-radius:5px;height:5px;transition:background .3s,height .3s,margin .3s;position:absolute}.tl-bar[data-kind=edu]{top:0}.tl-bar[data-kind=pro]{top:14px}.tl-bar--fuzzy{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 40px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 40px),#0000)}.tl-bar.is-on,.tl-bar.is-hot,.tl-bar.is-kin{background:var(--k);height:7px;margin-top:-1px}.tl-line{left:0;right:0;top:var(--y-line);background:var(--line-2);height:1px;position:absolute}.tl-now{left:calc(var(--now,-10) * var(--span));height:calc(var(--y-line) - 10px);border-left:1px dashed color-mix(in srgb, var(--ok) 70%, transparent);width:0;display:none;position:absolute;top:0}.tl-now.is-on{display:block}.tl-now:after{content:"Aujourd'hui";white-space:nowrap;color:var(--ok);font-size:11px;font-weight:600;position:absolute;top:0;right:6px}.tl-nodes{position:absolute;inset:0}.tl-node{left:calc(var(--off) + var(--at) * var(--span));top:var(--y-line);width:0;height:0;color:var(--text-2);outline:none;text-decoration:none;position:absolute}.tl-node:before{content:"";border-radius:50%;width:36px;height:36px;position:absolute;top:-18px;left:-18px}.tl-node__dot{background:var(--bg);border:2px solid var(--k);width:14px;height:14px;transition:transform .45s var(--ease-out), background .3s, box-shadow .4s;border-radius:50%;position:absolute;top:0;left:0;translate:-50% -50%}.tl-node--mid .tl-node__dot{width:17px;height:17px}.tl-node--major .tl-node__dot{width:24px;height:24px;box-shadow:0 0 0 6px color-mix(in srgb, var(--k) 14%, transparent);border-width:3px}.tl-node--next .tl-node__dot{border-style:dashed}.tl-node__l,.tl-node__d{white-space:nowrap;position:absolute;left:0;translate:-50%}.tl-node__l{color:var(--text);font-size:13.5px;font-weight:600;transition:color .2s;top:18px}.tl-node--major .tl-node__l{font-size:15px}.tl-node__d{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px;top:38px}.tl-node[data-align=end] :is(.tl-node__l,.tl-node__d){text-align:right;translate:calc(8px - 100%)}.tl-node[data-align=start] :is(.tl-node__l,.tl-node__d){translate:-8px}.tl-node:hover .tl-node__dot,.tl-node.is-kin .tl-node__dot{background:color-mix(in srgb, var(--k) 40%, var(--bg));transform:scale(1.25)}.tl-node[aria-selected=true] .tl-node__dot{background:var(--k);box-shadow:0 0 0 6px color-mix(in srgb, var(--k) 22%, transparent), 0 0 24px color-mix(in srgb, var(--k) 60%, transparent);transform:scale(1.3)}.tl-node--major[aria-selected=true] .tl-node__dot{animation:beacon 2.6s var(--ease) infinite}@keyframes beacon{50%{box-shadow:0 0 0 12px color-mix(in srgb, var(--k) 8%, transparent), 0 0 32px color-mix(in srgb, var(--k) 50%, transparent)}}.tl-node[aria-selected=true] .tl-node__l{color:var(--k)}[data-theme=day] .tl-node[aria-selected=true] .tl-node__l{color:color-mix(in srgb, var(--k) 80%, var(--text))}.tl-node:focus-visible .tl-node__dot{outline:2px solid var(--text);outline-offset:4px}.tl-pin{top:calc(var(--y-pin) - var(--lvl,0) * var(--lvl-h));z-index:1}.tl-pin:before{left:-14px;top:calc(var(--lvl-h) / -2);width:28px;height:var(--lvl-h);border-radius:6px}.tl-pin:after{content:"";height:calc(var(--y-line) - var(--y-pin) + var(--lvl,0) * var(--lvl-h) - 10px);border-left:1px dotted color-mix(in srgb, var(--k) 45%, transparent);pointer-events:none;position:absolute;top:7px;left:0}.tl-pin .tl-node__dot{background:var(--k);border:0;width:9px;height:9px}.tl-pin[data-kind=award] .tl-node__dot{border-radius:1px;rotate:45deg}.tl-pin:hover .tl-node__dot,.tl-pin.is-kin .tl-node__dot{background:var(--k);transform:scale(1.45)}.tl-pin[aria-selected=true] .tl-node__dot{box-shadow:0 0 0 4px color-mix(in srgb, var(--k) 25%, transparent), 0 0 16px color-mix(in srgb, var(--k) 60%, transparent);transform:scale(1.6)}.tl-node__tip{z-index:2;text-align:center;background:var(--surface);border:1px solid var(--line);opacity:0;pointer-events:none;width:max-content;max-width:320px;transition:opacity .18s, translate .25s var(--ease-out);border-radius:9px;flex-direction:column;align-items:center;padding:5px 10px;display:flex;position:absolute;bottom:12px;left:0;translate:-50% 4px;box-shadow:0 10px 26px -12px #00000073}.tl-node__tip .tl-node__l,.tl-node__tip .tl-node__d{white-space:normal;font-size:12.5px;line-height:1.35;position:static;translate:none}.tl-pin:hover .tl-node__tip,.tl-pin:focus-visible .tl-node__tip{opacity:1;translate:-50%}.tl-pin:hover,.tl-pin:focus-visible{z-index:3}.tl-foot{padding:0 var(--gut) 8px;color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 20px;font-size:12px;display:flex}.tl-legend{flex-wrap:wrap;gap:6px 16px;display:flex}.tl-legend span{align-items:center;gap:7px;display:inline-flex}.tl-legend__bar{background:color-mix(in srgb, var(--k) 70%, transparent);border-radius:3px;width:14px;height:4px}.tl-hint{transition:opacity .5s}.tl-hint.is-gone{opacity:0}.tl-hint--touch{display:none}@media (hover:none){.tl-hint--fine{display:none}.tl-hint--touch{display:inline}}.js:not(.no-app) .tl{flex-direction:column;display:flex}.js:not(.no-app) .tl .world-ui{flex:none;position:relative}.js:not(.no-app) .tl-stage{z-index:1;overscroll-behavior:contain;flex:1;min-height:0;padding-top:12px;padding-bottom:20px;position:relative;overflow-y:auto;-webkit-mask-image:linear-gradient(#0000,#000 18px calc(100% - 24px),#0000);mask-image:linear-gradient(#0000,#000 18px calc(100% - 24px),#0000)}.js:not(.no-app) .tl-panels{justify-content:center;min-height:100%}.js:not(.no-app) .tl-panel[hidden]{display:none!important}.js:not(.no-app) .tl-track{cursor:grab;scrollbar-width:none;overscroll-behavior-x:contain;padding-bottom:calc(6px + env(safe-area-inset-bottom,0px));flex:none}.js:not(.no-app) .tl-track::-webkit-scrollbar{display:none}.tl-track.is-dragging{cursor:grabbing}.tl-track.has-before{-webkit-mask:linear-gradient(90deg,#0000,#000 44px);mask:linear-gradient(90deg,#0000,#000 44px)}.tl-track.is-dragging .tl-node{pointer-events:none}@media (width<=700px){.tl-rail{--off:24px;--end:56px;--y-bar:34px;--y-pin:108px;--y-line:138px;--lvl-h:22px;height:196px}.tl-pin:before{width:34px;left:-17px}.tl-node__l{font-size:12.5px}.tl-node--major .tl-node__l{font-size:13.5px}.tl-node__d{font-size:11.5px;top:36px}.tl-panel__body{font-size:15px}.tl-panel__lead{margin-top:14px;font-size:16px}.tl-legend{gap:4px 12px;font-size:11.5px}}.eco-space{z-index:1;transition:opacity .4s var(--ease);position:absolute;inset:0}.skb{z-index:2;width:calc(var(--r) * 2);height:calc(var(--r) * 2);margin:calc(var(--r) * -1) 0 0 calc(var(--r) * -1);cursor:pointer;will-change:transform, opacity;color:var(--text);position:absolute;top:0;left:0}.skb__c{text-align:center;background:radial-gradient(circle at 34% 26%, color-mix(in srgb, var(--fam) 34%, var(--surface)) 0%, color-mix(in srgb, var(--fam) 12%, var(--surface)) 70%);border:1px solid color-mix(in srgb, var(--fam) 50%, transparent);box-shadow:0 18px 36px -24px color-mix(in srgb, var(--fam) 80%, transparent);transition:transform .4s var(--ease-out), border-color .25s, box-shadow .3s, background .3s;border-radius:50%;place-items:center;padding:10%;display:grid;position:absolute;inset:0}.skb__n{font-size:clamp(10.5px, calc(var(--r) * .25), 17px);letter-spacing:-.01em;text-wrap:balance;-webkit-hyphens:none;hyphens:none;overflow-wrap:normal;word-break:normal;font-weight:650;line-height:1.12}.skb__k{color:color-mix(in srgb, var(--fam) 60%, var(--muted));font-variant-numeric:tabular-nums;font-size:10.5px;font-weight:600;position:absolute;bottom:13%;left:50%;translate:-50%}.skb--decl .skb__c{background:color-mix(in srgb, var(--fam) 7%, var(--bg));border:1px dashed color-mix(in srgb, var(--fam) 55%, transparent);box-shadow:none}.skb--below .skb__n{width:max-content;max-width:150px;color:var(--text-2);text-align:center;pointer-events:none;font-size:11.5px;font-weight:550;position:absolute;top:calc(100% + 6px);left:50%;translate:-50%}@media (hover:hover){.skb:hover .skb__c{border-color:var(--fam);box-shadow:0 0 0 6px color-mix(in srgb, var(--fam) 14%, transparent);transform:scale(1.1)}}.skb.is-focus .skb__c{border-color:var(--fam);box-shadow:0 0 0 2px var(--bg), 0 0 0 4px var(--accent);transform:scale(1.1)}.eco-space.has-sel .skb{opacity:.18!important}.eco-space.has-sel .skb.is-rel{opacity:.75!important}.eco-space.has-sel .skb.is-sel{opacity:1!important}.skb.is-sel .skb__c{border:1px solid var(--fam);background:color-mix(in srgb, var(--fam) 40%, var(--surface));box-shadow:0 0 0 3px var(--fam), 0 0 0 12px color-mix(in srgb, var(--fam) 18%, transparent)}.skb.is-rel .skb__c{border-color:var(--fam)}.skb__logo,.sk__logo,.skd__logo{-webkit-mask:var(--logo) center / contain no-repeat;-webkit-mask:var(--logo) center / contain no-repeat;mask:var(--logo) center / contain no-repeat;background:currentColor;flex-shrink:0;display:block}.skb--logo .skb__c{justify-content:center;align-items:center;gap:calc(var(--r) * .07);flex-direction:column;padding-bottom:14%;display:flex}.skb__logo{width:calc(var(--r) * .46);height:calc(var(--r) * .46);opacity:.92}.skb--below .skb__logo{width:calc(var(--r) * .9);height:calc(var(--r) * .9)}.skb--below.skb--logo .skb__c{padding:0}.skb--decl .skb__logo{opacity:.55}.skd__logo{vertical-align:-.06em;width:.82em;height:.82em;margin-right:12px;display:inline-block}.sk__logo{width:calc(17px + var(--w) * 10px);height:calc(17px + var(--w) * 10px);opacity:.85;grid-row:span 2}.sk__btn:has(.sk__logo){grid-template-columns:auto auto;align-items:center;column-gap:9px;display:inline-grid}.eco-panel{right:var(--gut);top:calc(var(--top) + 26px);z-index:7;pointer-events:none;flex-direction:column;width:340px;display:flex;position:absolute;bottom:90px}.eco-panel__in{overscroll-behavior:contain;pointer-events:auto;background:color-mix(in srgb, var(--surface) 94%, transparent);border:1px solid var(--line-2);max-height:100%;box-shadow:var(--shadow);animation:panelIn .45s var(--ease-out);border-radius:22px;padding:24px;overflow-y:auto}@supports ((-webkit-backdrop-filter:blur(8px)) or (backdrop-filter:blur(8px))){.eco-panel__in{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}}@keyframes panelIn{0%{opacity:0;transform:translate(16px)}}.skd__top{justify-content:space-between;align-items:center;gap:12px;display:flex}.skd__fam{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);align-items:center;gap:8px;font-size:12.5px;font-weight:600;display:flex}.skd__fam:before{content:"";background:var(--fam,var(--cat));border-radius:50%;width:8px;height:8px}.skd__close{cursor:pointer;width:34px;height:34px;color:var(--muted);background:var(--surface-2);border:0;border-radius:50%;place-items:center;display:inline-grid}.skd__close:hover{color:var(--text)}.skd__close .ico{width:15px;height:15px}.skd__name{letter-spacing:-.03em;color:var(--text);margin-top:8px;font-size:30px;font-weight:700;line-height:1.12}.skd__count{color:var(--text-2);margin-top:4px;font-size:14.5px}.skd__list{flex-direction:column;gap:4px;margin-top:16px;display:flex}.skd__list a{color:var(--text);background:var(--surface-2);transition:border-color .2s, transform .3s var(--ease-out);border:1px solid #0000;border-radius:10px;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:10px 11px;font-size:14.5px;font-weight:500;text-decoration:none;display:grid}.skd__list a:hover{border-color:var(--cat);transform:translate(3px)}.skd__list small{color:var(--muted);font-size:12px}.skd__list .ico{width:14px;height:14px;color:var(--muted)}.skd__sec{margin-top:22px}.skd__rel{flex-wrap:wrap;gap:6px;display:flex}.skd__rel button{cursor:pointer;font:500 13px var(--font);color:var(--text);border:1px solid var(--line-2);background:0 0;border-radius:999px;padding:4px 11px 4px 20px;position:relative}.skd__rel button:before{content:"";background:var(--fam);border-radius:50%;width:6px;height:6px;margin-top:-3px;position:absolute;top:50%;left:9px}.skd__rel button:hover{border-color:var(--fam)}.skd__actions{flex-wrap:wrap;gap:8px;margin-top:22px;display:flex}.skd__empty{color:var(--muted);margin-top:14px;font-size:14px}@media (width<=860px){.eco-panel{width:auto;max-height:62vh;inset:auto 0 0}.eco-panel__in{padding-bottom:calc(20px + env(safe-area-inset-bottom,0px));border-bottom:0;border-radius:22px 22px 0 0;animation-name:sheetIn}@keyframes sheetIn{0%{transform:translateY(100%)}}}.eco-list{z-index:2;padding:32px var(--gut) 64px;position:relative}.js:not(.no-app) .eco:not([data-view=list]) .eco-list{clip-path:inset(50%);width:1px;height:1px;padding:0;overflow:hidden;position:absolute!important}.js:not(.no-app) .eco[data-view=list] .eco-list{z-index:4;overscroll-behavior:contain;padding:calc(var(--head,290px) + 18px) var(--gut) 32px;-webkit-mask-image:linear-gradient(transparent calc(var(--head,290px) - 6px), #000 calc(var(--head,290px) + 14px), #000 calc(100% - 24px), transparent);-webkit-mask-image:linear-gradient(transparent calc(var(--head,290px) - 6px), #000 calc(var(--head,290px) + 14px), #000 calc(100% - 24px), transparent);mask-image:linear-gradient(transparent calc(var(--head,290px) - 6px), #000 calc(var(--head,290px) + 14px), #000 calc(100% - 24px), transparent);position:absolute;inset:0 0 84px;overflow-y:auto}.eco-list__note{color:var(--muted);margin-bottom:16px;font-size:14px}.eco-fam-list{max-width:980px}.fam{border-top:1px solid var(--line);grid-template-columns:200px minmax(0,1fr);gap:10px 20px;padding:20px 0;display:grid}.fam:last-child{border-bottom:1px solid var(--line)}.fam__t{color:var(--text);flex-direction:column;gap:4px;padding-top:6px;font-size:15px;font-weight:600;display:flex}.fam__dot{background:var(--fam);border-radius:3px;width:18px;height:3px;margin-bottom:6px}.fam__n{color:var(--muted);font-size:12.5px;font-weight:400}.fam__list{flex-wrap:wrap;align-items:flex-start;gap:4px 6px;display:flex}.sk{position:relative}.sk__btn{cursor:pointer;text-align:left;font-family:var(--font);font-size:calc(14px + var(--w) * 12px);font-weight:calc(500 + var(--w) * 180);color:var(--text);background:0 0;border:0;border-radius:12px;flex-direction:column;align-items:flex-start;gap:5px;padding:6px 10px 7px;line-height:1.1;transition:background .25s,box-shadow .25s;display:inline-flex}.sk__btn:hover{background:color-mix(in srgb, var(--fam) 12%, transparent)}.sk__dots{gap:3px;min-height:5px;display:flex}.sk__dots i{background:var(--fam);border-radius:50%;width:5px;height:5px}.sk--decl .sk__btn{color:var(--muted)}.sk--decl .sk__name{-webkit-text-decoration:underline dashed var(--line-2);text-decoration:underline dashed var(--line-2);text-underline-offset:4px}.sk__used{color:var(--muted);padding:0 10px;font-size:12px}.sk__projects{flex-wrap:wrap;gap:2px 8px;padding:0 10px 6px;font-size:12px;display:flex}.sk__projects a{color:var(--text-2)}.js:not(.no-app) .sk__used,.js:not(.no-app) .sk__projects{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.sk.is-sel .sk__btn{background:color-mix(in srgb, var(--fam) 16%, transparent);box-shadow:inset 0 0 0 1px var(--fam)}@media (width<=860px){.fam{grid-template-columns:1fr;gap:8px}.fam__t{border-left:3px solid var(--fam);flex-flow:wrap;align-items:baseline;gap:4px 10px;padding:0 0 0 10px}.fam__dot{display:none}}.ct{flex-direction:column;display:flex;position:relative}.ct-stage{z-index:1;padding:36px var(--gut) 56px;text-align:center;flex-direction:column;align-items:center;gap:clamp(28px,5.5vh,60px);display:flex;position:relative}.js:not(.no-app) .page--contact .world-ui{position:relative}.js:not(.no-app) .ct-stage{overscroll-behavior:contain;min-height:0;padding-top:12px;padding-bottom:calc(20px + env(safe-area-inset-bottom,0px));flex:1;justify-content:safe center;overflow-y:auto}.ct-hero{flex-direction:column;align-items:center;gap:clamp(14px,2.2vh,22px);display:flex}.ct-ctx{letter-spacing:.16em;text-transform:uppercase;color:var(--muted);flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 0;font-size:12.5px;font-weight:600;display:flex}.ct-ctx .pulse{margin-right:14px}.ct-ctx span+span:not(.pulse):before{content:"·";margin:0 12px}.ct-ctx .pulse+span:before{content:none!important}.ct-title{letter-spacing:-.05em;color:var(--text);text-wrap:balance;font-size:clamp(38px,6.4vw,92px);font-weight:750;line-height:.98}.ct-title em{color:#0000;background:linear-gradient(100deg, var(--text) 10%, var(--accent) 95%);-webkit-background-clip:text;background-clip:text;font-style:normal}.ct-orbs{--d:clamp(104px, 10.5vw, 132px);grid-template-columns:repeat(6,minmax(0,178px));justify-content:center;gap:22px 0;width:100%;max-width:1068px;display:grid}.ct-orbs li{justify-content:center;min-width:0;display:flex}.ct-orb{--cat:var(--accent);min-width:0;max-width:100%;color:var(--text);-webkit-tap-highlight-color:transparent;flex-direction:column;align-items:center;gap:12px;text-decoration:none;display:flex}.ct-orb[data-orb=mail]{--cat:var(--c-pro)}.ct-orb[data-orb=phone]{--cat:var(--f-data)}.ct-orb[data-orb=linkedin]{--cat:var(--f-front)}.ct-orb[data-orb=github]{--cat:var(--f-tools)}.ct-orb[data-orb=cv]{--cat:var(--c-award)}.ct-orb__core{width:var(--d);height:var(--d);background:radial-gradient(circle at 32% 24%, color-mix(in srgb, var(--cat) 30%, var(--surface)) 0%, color-mix(in srgb, var(--cat) 10%, var(--surface)) 62%, color-mix(in srgb, var(--cat) 6%, var(--bg)) 100%);border:1px solid color-mix(in srgb, var(--cat) 44%, transparent);box-shadow:0 22px 44px -26px color-mix(in srgb, var(--cat) 70%, transparent);transition:transform .5s var(--ease-out), border-color .3s, box-shadow .4s;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex;position:relative}.ct-orb[data-orb=message] .ct-orb__core:before{content:"";border:1px dashed color-mix(in srgb, var(--cat) 45%, transparent);transition:inset .5s var(--ease-out);border-radius:50%;position:absolute;inset:-9px}.ct-orb__core .ico{width:24px;height:24px;color:color-mix(in srgb, var(--cat) 70%, var(--text))}.ct-orb__l{letter-spacing:-.01em;font-size:14px;font-weight:650}.ct-orb__s{text-overflow:ellipsis;white-space:nowrap;max-width:100%;color:var(--muted);font-size:12.5px;font-weight:500;transition:color .2s;overflow:hidden}.ct-orb.is-ok .ct-orb__s{color:var(--ok);font-weight:600}.ct-orb.is-ok .ct-orb__core{border-color:var(--ok);box-shadow:0 0 0 6px color-mix(in srgb, var(--ok) 14%, transparent)}@media (hover:hover){.ct-orb:hover .ct-orb__core{border-color:var(--cat);box-shadow:0 0 0 6px color-mix(in srgb, var(--cat) 12%, transparent), 0 26px 50px -24px color-mix(in srgb, var(--cat) 80%, transparent);transform:translateY(-4px)scale(1.06)}.ct-orb[data-orb=message]:hover .ct-orb__core:before{inset:-14px}.ct-orb:hover .ct-orb__s{color:var(--text)}}.ct-orb:active .ct-orb__core{transition-duration:.12s;transform:scale(.96)}.ct-orb:focus-visible{outline:none}.ct-orb:focus-visible .ct-orb__core{box-shadow:0 0 0 2px var(--bg), 0 0 0 4px var(--accent)}.ct-project{color:var(--muted);flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 18px;font-size:14.5px;display:flex}.ct-project .text-link{font-size:14.5px}@media (width<=1080px){.ct-orbs{--d:clamp(92px, 25vw, 124px);grid-template-columns:repeat(3,minmax(0,190px));gap:22px 8px;max-width:600px}}@media (width<=520px){.ct-stage{gap:clamp(22px,4.5vh,40px)}.ct-title{font-size:clamp(36px,12.5vw,52px)}.ct-ctx{letter-spacing:.08em;gap:4px 14px;font-size:11.5px}.ct-ctx .pulse{margin-right:0}.ct-ctx span+span:not(.pulse):before{content:none}.ct-orbs{gap:18px 4px}.ct-orb{gap:0}.ct-orb__core{gap:6px}.ct-orb__l{font-size:13px}.ct-orb__s{display:none}.ct-project{flex-direction:column;gap:2px;font-size:14px}}@media (height<=560px) and (width>=700px){.ct-orbs{--d:88px;grid-template-columns:repeat(6,minmax(0,120px));max-width:none}.ct-orb__s{display:none}.ct-title{font-size:40px}}.js .ct-hero>*,.js .ct-project{animation:rise .7s var(--ease-out) both}.js .ct-hero>:nth-child(2){animation-delay:60ms}.js .ct-project{animation-delay:.5s}.js .ct-orbs li{animation:orb-in .7s var(--ease-out) both;animation-delay:calc(.14s + var(--i,0) * 55ms)}.ct-orbs li:nth-child(2){--i:1}.ct-orbs li:nth-child(3){--i:2}.ct-orbs li:nth-child(4){--i:3}.ct-orbs li:nth-child(5){--i:4}.ct-orbs li:nth-child(6){--i:5}.js .ct-orb{animation:7s ease-in-out infinite alternate float;animation-delay:calc(var(--i,0) * -1.3s)}.ct-orb:hover,.ct-orb:focus-visible,.has-dialog .ct-orb{animation-play-state:paused}@keyframes rise{0%{opacity:0;transform:translateY(16px)}}@keyframes orb-in{0%{opacity:0;transform:translateY(18px)scale(.8)}}@media (prefers-reduced-motion:reduce){.js .ct-orb,.js .ct-orbs li,.js .ct-hero>*,.js .ct-project{animation:none}}.is-still .ct-orb,.is-still .ct-orbs li,.is-still .ct-hero>*,.is-still .ct-project{animation:none!important}.ct-dlg{width:min(560px,100vw - 32px);max-width:none;max-height:calc(100dvh - 32px);color:var(--text-2);background:0 0;border:0;margin:auto;padding:0;overflow:visible}.ct-dlg::backdrop{background:color-mix(in srgb, var(--bg) 62%, transparent);animation:fade .3s var(--ease) both}@supports ((-webkit-backdrop-filter:blur(4px)) or (backdrop-filter:blur(4px))){.ct-dlg::backdrop{-webkit-backdrop-filter:blur(8px)saturate(1.1);backdrop-filter:blur(8px)saturate(1.1)}}.ct-dlg[open] .ct-form{animation:sheet-in .45s var(--ease-out) both}@keyframes fade{0%{opacity:0}}@keyframes sheet-in{0%{opacity:0;transform:translateY(28px)scale(.98)}}.ct-form{overscroll-behavior:contain;max-height:calc(100dvh - 32px);box-shadow:var(--shadow);background:var(--surface);border:1px solid var(--line-2);border-radius:24px;flex-direction:column;gap:16px;padding:28px;display:flex;position:relative;overflow-y:auto}.ct-form__h{padding-right:48px}.ct-form__t{letter-spacing:-.025em;color:var(--text);font-size:22px;font-weight:700}.ct-form__t:focus{outline:none}.ct-form__h p{color:var(--muted);margin-top:4px;font-size:14.5px}.ct-dlg__close{border-radius:50%;position:absolute;top:20px;right:20px}.ct-form__pair{grid-template-columns:1fr 1fr;gap:14px;display:grid}.fld{text-align:left;flex-direction:column;gap:7px;display:flex}.fld__l{color:var(--text-2);font-size:13px;font-weight:600;transition:color .2s}.fld:focus-within .fld__l{color:var(--accent)}.ct-form input,.ct-form textarea{width:100%;font:16px var(--font);color:var(--text);background:color-mix(in srgb, var(--bg) 70%, var(--surface));border:1px solid var(--line-2);border-radius:12px;padding:13px 15px;transition:border-color .2s,box-shadow .2s,background .2s}.ct-form ::placeholder{color:var(--muted);opacity:.7}.ct-form input:hover,.ct-form textarea:hover{border-color:var(--muted)}.ct-form input:focus,.ct-form textarea:focus{background:var(--surface);border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 18%, transparent);outline:none}.ct-form input:not(:placeholder-shown):not(:focus):invalid{border-color:var(--err)}.ct-form textarea{resize:vertical;min-height:120px}.ct-form__send{flex-wrap:wrap;align-items:center;gap:12px 18px;display:flex}.ct-form__note{min-width:180px;color:var(--muted);text-align:left;flex:1;font-size:13px}.ct-form.is-sending .btn{opacity:.7;cursor:progress}.form-status{text-align:left;min-height:0;font-size:14.5px;font-weight:500}.form-status:empty{display:none}.form-status.is-ok,.form-status.is-error{animation:rise .4s var(--ease-out) both;border:1px solid;border-radius:12px;padding:12px 14px}.form-status.is-ok{color:var(--ok);background:color-mix(in srgb, var(--ok) 10%, transparent);border-color:color-mix(in srgb, var(--ok) 30%, transparent)}.form-status.is-error{color:var(--err);background:color-mix(in srgb, var(--err) 10%, transparent);border-color:color-mix(in srgb, var(--err) 30%, transparent)}@media (width<=600px){.ct-dlg{width:100%;max-height:calc(100dvh - 20px);margin:auto 0 0}.ct-form{max-height:calc(100dvh - 20px);padding:24px 18px calc(20px + env(safe-area-inset-bottom,0px));border-width:1px 0 0;border-radius:24px 24px 0 0}.ct-form:before{content:"";background:var(--line-2);border-radius:4px;flex-shrink:0;align-self:center;width:36px;height:4px;margin:-12px 0 -4px}.ct-dlg[open] .ct-form{animation-name:sheet-up}.ct-dlg__close{top:22px;right:14px}.ct-form__pair{grid-template-columns:1fr}.ct-form textarea{min-height:96px}.ct-form__send .btn{width:100%}}@keyframes sheet-up{0%{transform:translateY(100%)}}@media (prefers-reduced-motion:reduce){.ct-dlg[open] .ct-form,.ct-dlg::backdrop{animation:none}}html:not(.js) .ct-dlg,.no-app .ct-dlg:not([open]){width:auto;max-width:600px;max-height:none;padding:0 var(--gut) 72px;margin:0 auto;display:block;position:static}html:not(.js) .ct-form,.no-app .ct-dlg:not([open]) .ct-form{max-height:none}.footer{padding:32px 0 calc(32px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line)}.footer__inner{color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;font-size:14px;display:flex}.footer__links{flex-wrap:wrap;gap:6px 20px;display:flex}.footer__links a{color:var(--muted);text-decoration:none;transition:color .2s}.footer__links a:hover{color:var(--text)}.vt-stage{view-transition-name:stage}::view-transition-group(name){animation-duration:.45s;animation-timing-function:cubic-bezier(.2,.8,.2,1)}::view-transition-group(nav-ink){animation-duration:.45s;animation-timing-function:cubic-bezier(.2,.8,.2,1)}::view-transition-old(name){object-fit:contain;mix-blend-mode:normal;height:100%}::view-transition-new(name){object-fit:contain;mix-blend-mode:normal;height:100%}::view-transition-old(name){animation:.45s linear both vt-name-out}::view-transition-new(name){animation:.45s linear both vt-name-in}@keyframes vt-name-out{0%{opacity:1}45%,to{opacity:0}}@keyframes vt-name-in{0%,50%{opacity:0}to{opacity:1}}::view-transition-old(world){animation-duration:.45s}::view-transition-new(world){animation-duration:.45s}html:active-view-transition-type(fwd)::view-transition-old(stage){animation:.26s cubic-bezier(.4,0,1,1) both vt-out-l}html:active-view-transition-type(fwd)::view-transition-new(stage){animation:.42s cubic-bezier(.16,1,.3,1) 60ms both vt-in-r}html:active-view-transition-type(back)::view-transition-old(stage){animation:.26s cubic-bezier(.4,0,1,1) both vt-out-r}html:active-view-transition-type(back)::view-transition-new(stage){animation:.42s cubic-bezier(.16,1,.3,1) 60ms both vt-in-l}html:active-view-transition-type(from-classique):active-view-transition-type(fwd)::view-transition-old(stage){animation:.34s cubic-bezier(.5,0,.9,.6) both vt-dive}html:active-view-transition-type(from-classique):active-view-transition-type(fwd)::view-transition-new(stage){animation:.45s cubic-bezier(.16,1,.3,1) .1s both vt-emerge}html:active-view-transition-type(from-projets):active-view-transition-type(fwd)::view-transition-old(stage){transform-origin:50% 88%;animation:.3s cubic-bezier(.5,0,.9,.6) both vt-fold}html:active-view-transition-type(from-projets):active-view-transition-type(fwd)::view-transition-new(stage){animation:.42s cubic-bezier(.16,1,.3,1) 80ms both vt-unfold}@keyframes vt-out-l{to{opacity:0;transform:translate(-48px)scale(.985)}}@keyframes vt-out-r{to{opacity:0;transform:translate(48px)scale(.985)}}@keyframes vt-in-r{0%{opacity:0;transform:translate(56px)}}@keyframes vt-in-l{0%{opacity:0;transform:translate(-56px)}}@keyframes vt-dive{to{opacity:0;filter:blur(4px);transform:scale(1.18)}}@keyframes vt-emerge{0%{opacity:0;transform:scale(.9)}}@keyframes vt-fold{to{opacity:0;transform:scaleY(.08)}}@keyframes vt-unfold{0%{opacity:0;transform:translateY(24px)}}.arrive-fwd .world>:not(.world__bg){animation:.42s cubic-bezier(.16,1,.3,1) both vt-in-r}.arrive-back .world>:not(.world__bg){animation:.42s cubic-bezier(.16,1,.3,1) both vt-in-l}@media (prefers-reduced-motion:reduce){::view-transition-group(*){animation:none!important}::view-transition-old(*){animation:none!important}::view-transition-new(*){animation:none!important}.arrive-fwd .world>*,.arrive-back .world>*{animation:none!important}.pj-space.is-diving{transform:none}}.motion-pending .pf-hero__inner>*,.motion-pending .pf-scroll,.motion-pending .pf-orbs{visibility:hidden}.motion-pending.vt-arrival .pf-name{visibility:visible}.is-still .pf-scroll .ico,.is-still .pf-orbs i:before,.is-still .tl-node__dot{animation:none!important}
