@font-face{font-family:Space Grotesk;font-weight:500;font-display:swap;src:url(/fonts/space-grotesk-latin-500-normal.woff2) format("woff2")}@font-face{font-family:Space Grotesk;font-weight:600;font-display:swap;src:url(/fonts/space-grotesk-latin-600-normal.woff2) format("woff2")}@font-face{font-family:Space Grotesk;font-weight:700;font-display:swap;src:url(/fonts/space-grotesk-latin-700-normal.woff2) format("woff2")}@font-face{font-family:IBM Plex Mono;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-latin-400-normal.woff2) format("woff2")}@font-face{font-family:IBM Plex Mono;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-latin-500-normal.woff2) format("woff2")}:root{--space-0: #05080d;--space-1: #070c14;--space-2: #0a111b;--ink: #e8eef5;--ink-2: #a7b4c4;--ink-3: #7c8a9c;--accent: #46d9e6;--accent-ink: #04141a;--planned: #f0b95a;--line: rgba(140, 200, 220, .14);--line-strong: rgba(140, 200, 220, .3);--font-title: "Space Grotesk", "Segoe UI", system-ui, sans-serif;--font-body: "Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, Menlo, Consolas, monospace;--gutter: 6vw;--ease: cubic-bezier(.2, .7, .2, 1);--tone-approche: rgba(5, 8, 13, .8);--tone-explore: rgba(6, 10, 17, .88);--tone-projet: rgba(4, 7, 12, .82);--tone-ailab: rgba(4, 6, 10, .42);--tone-infra: rgba(7, 11, 17, .94);--tone-background: rgba(5, 8, 13, .96);--mx: 0;--my: 0}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:72px}body.lab{min-height:100vh;background:var(--space-1);color:var(--ink);font-family:var(--font-body);font-size:17px;line-height:1.6;overflow-wrap:break-word;overflow-x:clip}.lab a{color:inherit;text-decoration:none}.lab a:focus-visible,.lab button:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}.lab ul,.lab ol{list-style:none}.lab img{display:block;max-width:100%;height:auto}.lab-skip{position:absolute;left:16px;top:-60px;z-index:10;padding:10px 14px;border-radius:6px;background:var(--accent);color:var(--accent-ink)!important;font-weight:600}.lab-skip:focus{top:12px}.lab-accent{color:var(--accent)}.lab-label{display:flex;align-items:center;gap:.6em;margin-bottom:22px;color:var(--ink-3);font-family:var(--font-mono);font-size:12px;font-weight:400;letter-spacing:.08em;text-transform:uppercase}.lab-dot{display:inline-block;flex-shrink:0;width:6px;height:6px;border-radius:50%;background:currentColor}.lab-label>.lab-dot{color:var(--accent)}.lab-h2{max-width:620px;margin-bottom:24px;font-family:var(--font-title);font-size:clamp(34px,3.8vw,56px);font-weight:600;line-height:1.04;letter-spacing:-.02em;text-wrap:balance}.lab-h3{max-width:600px;margin-bottom:20px;color:var(--ink);font-family:var(--font-title);font-size:clamp(21px,1.9vw,27px);font-weight:500;line-height:1.25;letter-spacing:-.01em}.lab-prose{max-width:620px;margin-bottom:24px;color:var(--ink-2)}.lab-link{display:inline-flex;align-items:center;gap:.5em;padding-block:4px;border-bottom:1px solid var(--line-strong);color:var(--accent)!important;font-family:var(--font-mono);font-size:13px;letter-spacing:.04em;transition:border-color .2s ease}.lab-link span{transition:transform .2s ease}.lab-link:hover{border-color:var(--accent)}.lab-link:hover span{transform:translate(3px)}.lab-status{display:inline-flex;align-items:center;gap:.6em;color:var(--ink-3);font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;white-space:nowrap}.lab-status--active{color:var(--accent)}.lab-status--done{color:var(--ink-2)}.lab-status--planned{color:var(--planned)}.lab-wrap{position:relative;z-index:7;width:min(1320px,100% - 2 * var(--gutter));margin-inline:auto}.lab-split{display:grid;gap:clamp(32px,5vw,84px);align-items:start}.lab-split--55{grid-template-columns:minmax(0,55fr) minmax(0,45fr)}.lab-split--38{grid-template-columns:minmax(0,38fr) minmax(0,62fr)}.lab-split--50{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.lab-split--capture{grid-template-columns:minmax(0,55fr) minmax(0,45fr);align-items:center}.lab-section{position:relative;padding-block:clamp(80px,10vw,150px);background:linear-gradient(to bottom,var(--from) 0,var(--tone) 26vh);overflow:clip}.lab-header{position:fixed;inset:0 0 auto;z-index:8;display:flex;align-items:center;justify-content:space-between;gap:24px;height:64px;padding-inline:var(--gutter);border-bottom:1px solid transparent;transition:background .3s ease,border-color .3s ease;animation:lab-fade .6s ease 80ms both}.lab-header.is-scrolled,.lab-header.is-open{border-color:var(--line);background:#05080dd1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.lab-brand{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-title);font-size:17px;font-weight:700;letter-spacing:-.01em}.lab-brand-mark{width:12px;height:12px;border:1.5px solid var(--accent);border-radius:50%;box-shadow:inset 3px -2px 0 var(--accent)}.lab-nav{display:flex;gap:clamp(16px,2.2vw,34px);font-family:var(--font-mono);font-size:12.5px;letter-spacing:.05em}.lab-nav a{padding-block:8px;color:var(--ink-2);transition:color .2s ease}.lab-nav a:hover{color:var(--ink)}.lab-menu-button{display:none;min-height:40px;padding:0 14px;border:1px solid var(--line-strong);border-radius:6px;background:transparent;color:var(--ink);font-family:var(--font-mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}.lab-stars{position:fixed;inset:0;z-index:0;pointer-events:none}.lab-stars-layer{position:absolute;inset:-8px}.lab-stars-layer--far{translate:calc(var(--mx) * 2px) calc(var(--my) * 2px)}.lab-stars-layer--mid svg{animation:lab-drift 60s ease-in-out infinite alternate}.lab-stars-layer--near{translate:calc(var(--mx) * 6px) calc(var(--my) * 6px)}.lab-main{position:relative;z-index:1}.lab-planet{width:100%;aspect-ratio:1}.lab-planet-float{position:relative;width:100%;height:100%;animation:lab-float 24s ease-in-out infinite}.lab-planet-body{position:absolute;inset:0;border-radius:50%;background:#050b14;box-shadow:-14px -10px 70px -18px #46d9e666,0 0 160px #46d9e614;overflow:hidden;isolation:isolate}.lab-planet-surface{position:absolute;top:0;left:0;width:200%;height:100%;animation:lab-spin 150s linear infinite;will-change:transform}.lab-planet-arcs,.lab-planet-shade{position:absolute;inset:0;width:100%;height:100%;border-radius:50%}.lab-planet-shade{background:radial-gradient(circle at 22% 24%,rgba(127,227,238,.2),transparent 44%),radial-gradient(circle at 30% 30%,transparent 30%,rgba(3,6,11,.62) 60%,rgba(2,4,8,.96) 86%);box-shadow:inset 9px 7px 22px -6px #7fe3ee80,inset 44px 32px 90px -30px #46d9e633}.lab-planet-ring{position:absolute;inset:-40%;transform:rotate(-18deg) scaleY(.24);transition:opacity .3s ease}.lab-planet-ring:before{content:"";position:absolute;inset:0;border-radius:50%;background:conic-gradient(#7fe3ee8c,#7fe3ee1a,#7fe3ee66,#7fe3ee0f,#7fe3ee8c);-webkit-mask:radial-gradient(closest-side,transparent 71%,#000 72%,#000 80%,transparent 81%,transparent 86%,#000 87%,#000 99%,transparent 100%);mask:radial-gradient(closest-side,transparent 71%,#000 72%,#000 80%,transparent 81%,transparent 86%,#000 87%,#000 99%,transparent 100%);animation:lab-rotate 70s linear infinite}.lab-planet-ring--back{clip-path:inset(0 0 50% 0)}.lab-planet-ring--front{clip-path:inset(50% 0 0 0)}.lab-hero{--exit: 0;position:relative;min-height:100vh;min-height:100svh;background:linear-gradient(to bottom,transparent 68%,var(--tone-approche) 100%),linear-gradient(90deg,rgba(7,12,20,.9) 0,rgba(7,12,20,.6) 34%,transparent 60%);overflow:clip}.lab-hero-planet{position:absolute;z-index:3;left:80vw;top:43vh;width:clamp(620px,62vw,900px);translate:-50% -50%;transform:translateY(calc(var(--exit) * -40px));opacity:calc(1 - var(--exit) * .35);pointer-events:none}.lab-hero-planet>div{translate:calc(var(--mx) * 8px) calc(var(--my) * 8px)}.lab-hero-planet .lab-planet{animation:lab-fade .9s ease .5s both}.lab-hero-inner{position:relative;z-index:7;display:grid;grid-template-columns:minmax(0,1fr) min(39vw,560px);gap:clamp(24px,3vw,48px);width:min(1320px + 2 * var(--gutter),100%);margin-inline:auto;padding:14vh var(--gutter) 9vh}.lab-hero-copy{max-width:620px;padding-top:8vh}.lab-h1{margin-bottom:28px;font-family:var(--font-title);font-size:clamp(44px,5.6vw,80px);font-weight:700;line-height:.98;letter-spacing:-.03em}.lab-h1>span{display:block}.lab-hero-lede{max-width:560px;margin-bottom:20px;color:var(--ink-2);font-size:clamp(17px,1.3vw,19px);line-height:1.6}.lab-keywords{margin-bottom:34px;color:var(--ink-3);font-family:var(--font-mono);font-size:12px;letter-spacing:.04em}.lab-cta-row{display:flex;flex-wrap:wrap;gap:14px}.lab-button{display:inline-flex;align-items:center;justify-content:center;gap:.6em;min-height:48px;padding:0 22px;border:1px solid var(--line-strong);border-radius:8px;color:var(--ink)!important;font-size:15px;font-weight:600;transition:border-color .2s ease,background .2s ease}.lab-button:hover{border-color:var(--accent);background:#46d9e60f}.lab-button--primary{border-color:var(--accent);background:var(--accent);color:var(--accent-ink)!important}.lab-button--primary:hover{background:#74e6f0}.lab-button span{transition:transform .2s ease}.lab-button:hover span{transform:translate(3px)}.lab-hero-panel{transform:translateY(calc(var(--exit) * -20px))}.lab-in{animation:lab-in .7s var(--ease) var(--t, 0ms) both}.lab-in-accent{animation:lab-fade .6s ease .52s both}.lab-agents{position:relative;z-index:6;padding:26px;border:1px solid var(--line);border-radius:12px;background:#050a10ad;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);translate:calc(var(--mx) * -4px) calc(var(--my) * -4px);animation:lab-in .8s var(--ease) .75s both}.lab-agents-head{display:flex;justify-content:space-between;gap:16px;margin-bottom:18px;color:var(--ink-3);font-family:var(--font-mono);font-size:11.5px;letter-spacing:.08em}.lab-live{display:inline-flex;align-items:center;gap:.6em;color:var(--accent)}.lab-live .lab-dot{animation:lab-pulse 3s ease-in-out infinite}.lab-agents-stage{position:relative;aspect-ratio:100 / 92;container-type:inline-size}.lab-agents-links{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.lab-agents-links--mobile{display:none}.lab-flow{fill:none;stroke:var(--accent);stroke-opacity:.2;stroke-width:1px;vector-effect:non-scaling-stroke;animation:10s linear 1.5s infinite}.lab-flow--g1{animation-name:lab-flow-g1}.lab-flow--g2{animation-name:lab-flow-g2}.lab-flow--g3{animation-name:lab-flow-g3}.lab-flow--g4{animation-name:lab-flow-g4}.lab-flow-dots circle{fill:#c9f6fb;filter:drop-shadow(0 0 1px var(--accent))}.lab-node{position:absolute;left:var(--x);top:var(--y);display:flex;align-items:center;gap:10px;height:clamp(46px,11.6cqw,62px);padding-inline:12px;border:1px solid var(--line-strong);border-radius:8px;background:var(--space-2);translate:-50% -50%;animation:lab-node-in .5s var(--ease) calc(1.1s + var(--i) * 45ms) both,10s linear 1.5s infinite}.lab-node--s{width:27%}.lab-node--m{width:34%}.lab-node--l{width:43%}.lab-node--g1{animation-name:lab-node-in,lab-glow-g1}.lab-node--g2{animation-name:lab-node-in,lab-glow-g2}.lab-node--g3{animation-name:lab-node-in,lab-glow-g3}.lab-node--g4{animation-name:lab-node-in,lab-glow-g4}.lab-node--human{border-color:#46d9e68c}.lab-node-icon{flex-shrink:0;width:16px;height:16px;fill:none;stroke:var(--accent);stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}.lab-node-text{display:grid;min-width:0;line-height:1.25}.lab-node-title{font-family:var(--font-mono);font-size:12.5px;font-weight:500;letter-spacing:.06em;white-space:nowrap}.lab-node-sub{overflow:hidden;color:var(--ink-3);font-size:10.5px;text-overflow:ellipsis;white-space:nowrap}.js [data-reveal]{opacity:0;transform:translateY(18px);transition:opacity .65s ease var(--d, 0ms),transform .65s var(--ease) var(--d, 0ms)}.js [data-reveal=label]{transform:translateY(8px)}.js [data-reveal=left]{transform:translate(-30px);transition-duration:.8s}.js [data-reveal=right]{transform:translate(30px);transition-duration:.8s}.js [data-reveal=stack],.js [data-reveal].is-in{opacity:1;transform:none}.lab-approche{--from: var(--tone-approche);--tone: var(--tone-approche);min-height:85vh}.lab-method{display:grid;gap:0;max-width:620px;border-top:1px solid var(--line)}.lab-method li{display:grid;grid-template-columns:9.5em minmax(0,1fr);gap:16px;padding-block:13px;border-bottom:1px solid var(--line);color:var(--ink-2);font-size:15.5px}.lab-method-step{padding-top:3px;color:var(--accent);font-family:var(--font-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase}.lab-approche-visual{align-self:center;opacity:.85}.lab-approche-visual svg{display:block;width:100%;height:auto}.lab-rule{width:min(1320px,100% - 2 * var(--gutter));height:1px;margin:clamp(60px,8vw,110px) auto 0;background:linear-gradient(90deg,transparent,var(--line-strong) 20%,var(--line-strong) 80%,transparent)}.lab-explore{--from: var(--tone-approche);--tone: var(--tone-explore);padding-top:clamp(70px,9vw,130px)}.lab-explore:before,.lab-infra:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(140,200,220,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(140,200,220,.05) 1px,transparent 1px);background-size:64px 64px;-webkit-mask-image:linear-gradient(to bottom,transparent,#000 24vh,#000 calc(100% - 24vh),transparent);mask-image:linear-gradient(to bottom,transparent,#000 24vh,#000 calc(100% - 24vh),transparent);pointer-events:none}.lab-modules{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin-top:44px}.lab-module{position:relative;padding:22px 4px 8px 0;border-top:1px solid var(--line-strong)}.lab-module:before{content:"";position:absolute;top:-1px;left:0;width:100%;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease)}.lab-module:hover:before{transform:scaleX(1)}.lab-module-visual{height:120px;margin-bottom:22px}.lab-module-visual svg{display:block;width:auto;height:100%;overflow:visible}.lab-module-title{margin-bottom:10px;font-family:var(--font-title);font-size:22px;font-weight:600;letter-spacing:-.01em}.lab-module-text{margin-bottom:16px;color:var(--ink-2);font-size:15.5px}.lab-module-meta{color:var(--ink-3);font-family:var(--font-mono);font-size:11.5px;letter-spacing:.05em}.lab-orbit-sats{transform-origin:0 0;transition:transform .9s var(--ease)}.lab-module:hover .lab-orbit-sats{transform:rotate(18deg)}.lab-wire{fill:none;stroke:#8cc8dc4d;stroke-width:1}.lab-wire--pulse{stroke:var(--accent);stroke-width:2.4;stroke-linecap:round;stroke-dasharray:3 97;animation:lab-dash 6s linear infinite}.lab-module:hover .lab-wire--pulse{animation-duration:1.4s}.lab-rise,.lab-converge path{fill:none;stroke:var(--accent);stroke-width:1.2;stroke-dasharray:100;stroke-dashoffset:100;transition:stroke-dashoffset .6s var(--ease)}.lab-module:hover .lab-rise,.lab-module:hover .lab-converge path{stroke-dashoffset:0}.lab-led{fill:var(--ink-3);transition:fill .25s ease}.lab-module:hover .lab-led{fill:var(--accent)}.lab-core{fill:#12303f;stroke:var(--accent);transition:fill .4s ease .3s}.lab-module:hover .lab-core{fill:var(--accent)}.lab-projet{--from: var(--tone-explore);--tone: var(--tone-projet);min-height:80vh}.lab-horizon{position:absolute;z-index:3;right:-820px;bottom:-1310px;width:1700px;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 34% 12%,#10263c 0,#091524 26%,#04080e 60%);box-shadow:inset 0 2px 2px #7fe3ee73,inset 30px 40px 120px -40px #46d9e633,0 -24px 90px -30px #46d9e659;pointer-events:none}.lab-capture{display:block;border:1px solid var(--line-strong);border-radius:10px;background:var(--space-2);box-shadow:0 24px 60px -30px #000c;overflow:hidden}.lab-capture-bar{display:flex;align-items:center;gap:6px;height:30px;padding-inline:12px;border-bottom:1px solid var(--line);color:var(--ink-3);font-family:var(--font-mono);font-size:11px}.lab-capture-bar i{width:7px;height:7px;border-radius:50%;background:#a7b4c44d}.lab-capture-bar span{margin-left:10px}.lab-capture img{width:100%;transition:transform .5s var(--ease)}.lab-capture:hover img{transform:scale(1.015)}.lab-projet-copy .lab-h2{margin-bottom:12px;font-size:clamp(40px,4.6vw,64px)}.lab-projet-copy .lab-status{margin-bottom:22px}.lab-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}.lab-tags li{padding:4px 10px;border:1px solid var(--line);border-radius:4px;color:var(--ink-2);font-family:var(--font-mono);font-size:11.5px}.lab-works{margin-top:clamp(64px,8vw,110px)}.lab-works-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:14px}.lab-works-head .lab-label{margin-bottom:0}.lab-works-list{border-top:1px solid var(--line)}.lab-work{display:grid;grid-template-columns:4.5em minmax(0,1.1fr) minmax(0,1fr) 13em;align-items:baseline;gap:8px 24px;padding:17px 12px;border-bottom:1px solid var(--line);background:#05080d8c;transition:background .25s ease}.lab-work:hover{background:#46d9e60d}.lab-work-year,.lab-work-stack{color:var(--ink-3);font-family:var(--font-mono);font-size:12px}.lab-work-title{font-family:var(--font-title);font-size:18px;font-weight:500;transition:color .25s ease}.lab-work:hover .lab-work-title{color:var(--accent)}.lab-work .lab-status{justify-self:end}.lab-ailab{--from: var(--tone-projet);--tone: var(--tone-ailab);min-height:90vh;background:linear-gradient(to bottom,var(--from) 0,var(--tone) 28vh,var(--tone) calc(100% - 26vh),var(--tone-infra) 100%)}.lab-ailab-planet{position:absolute;z-index:3;left:88%;top:72%;width:clamp(320px,30vw,450px);translate:-50% -50%;opacity:.62;pointer-events:none}.lab-ailab:after{content:"";position:absolute;z-index:4;inset:auto 0 0;height:30vh;background:linear-gradient(to bottom,transparent,#070b11);pointer-events:none}.lab-ailab-planet .lab-planet-surface{animation-duration:180s}.lab-ailab-planet .lab-planet-body{box-shadow:-10px -8px 50px -16px #46d9e666}.lab-ailab:has(.lab-row:hover) .lab-planet-ring{opacity:1}.lab-ailab .lab-planet-ring{opacity:.6}.lab-rows{border-top:1px solid var(--line)}.lab-row{position:relative;display:grid;grid-template-columns:6.5em minmax(0,1fr) auto;align-items:center;gap:8px 22px;min-height:84px;padding:16px 16px 16px 18px;border-bottom:1px solid var(--line);background:#05080d80;transition:background .25s ease}.lab-row:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--accent);transform:scaleY(0);transition:transform .25s ease}.lab-row:hover{background:#46d9e60f}.lab-row:hover:before{transform:scaleY(1)}.lab-row-id{color:var(--ink-3);font-family:var(--font-mono);font-size:12px;letter-spacing:.08em}.lab-row-body{display:grid;gap:2px}.lab-row-title{font-family:var(--font-title);font-size:19px;font-weight:500}.lab-row-text{color:var(--ink-2);font-size:14.5px;line-height:1.45}.lab-row .lab-status{opacity:.8;transition:opacity .25s ease}.lab-row:hover .lab-status{opacity:1}.lab-infra{--from: var(--tone-infra);--tone: var(--tone-infra);min-height:85vh}.lab-infra:before{background-size:40px 40px}.lab-rack{position:absolute;z-index:5;right:3vw;top:50%;width:clamp(180px,19vw,270px);height:auto;translate:0 -50%;opacity:.16;pointer-events:none}.lab-stack{position:relative;z-index:6;display:flex;flex-direction:column;align-items:center;width:min(76%,860px);margin:40px auto 0}.lab-stack-node{display:grid;justify-items:center;gap:2px;width:100%;padding:11px 18px;border:1px solid var(--line-strong);border-radius:8px;background:var(--space-2);text-align:center}.lab-stack>.lab-stack-node:nth-of-type(1){max-width:240px}.lab-stack>.lab-stack-node:nth-of-type(2){max-width:360px}.lab-stack>.lab-stack-node:nth-of-type(3){max-width:560px}.lab-stack>.lab-stack-node:nth-of-type(4){border-color:#46d9e680}.lab-stack-title{font-family:var(--font-mono);font-size:13px;font-weight:500;letter-spacing:.1em}.lab-stack-sub{color:var(--ink-3);font-size:13px}.lab-stack-line{width:1px;height:24px;background:var(--line-strong);transform-origin:top}.lab-stack-branch{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;width:100%;padding-top:30px}.lab-stack-branch:before{content:"";position:absolute;left:50%;top:0;width:1px;height:15px;background:var(--line-strong)}.lab-stack-branch:after{content:"";position:absolute;left:calc((100% - 36px) / 6);right:calc((100% - 36px) / 6);top:15px;height:1px;background:var(--line-strong)}.lab-stack-node--base{position:relative}.lab-stack-node--base:before{content:"";position:absolute;left:50%;top:-16px;width:1px;height:15px;background:var(--line-strong)}.lab-stack-pulse{position:absolute;z-index:1;left:50%;top:0;width:5px;height:5px;margin-left:-2px;border-radius:50%;background:#c9f6fb;box-shadow:0 0 8px 2px #46d9e6b3;opacity:0}.lab-stack.is-in .lab-stack-pulse{animation:lab-stack-pulse 12s linear 3s infinite}.js .lab-stack .lab-stack-node,.js .lab-stack .lab-stack-branch:before,.js .lab-stack .lab-stack-branch:after{opacity:0;transition:opacity .45s ease calc(var(--i) * .13s)}.js .lab-stack .lab-stack-line{transform:scaleY(0);transition:transform .3s ease calc(var(--i) * .13s)}.js .lab-stack.is-in .lab-stack-node,.js .lab-stack.is-in .lab-stack-branch:before,.js .lab-stack.is-in .lab-stack-branch:after{opacity:1}.js .lab-stack.is-in .lab-stack-line{transform:none}.lab-background{--from: var(--tone-infra);--tone: var(--tone-background);min-height:72vh;background:linear-gradient(to bottom,var(--from) 0,var(--tone) 26vh,var(--tone) calc(100% - 26vh),var(--space-0) 100%)}.lab-skills{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 36px;border-top:1px solid var(--line)}.lab-skill{padding:16px 0 18px;border-bottom:1px solid var(--line)}.lab-skill dt{margin-bottom:6px;color:var(--ink-3);font-family:var(--font-mono);font-size:11.5px;letter-spacing:.1em}.lab-skill dd{font-family:var(--font-title);font-size:18px;font-weight:500;line-height:1.35}.lab-skill-proof{display:block;width:fit-content;margin-top:6px;color:var(--ink-3)!important;font-family:var(--font-mono);font-size:12px;font-weight:400;transition:color .2s ease}.lab-skill-proof:hover{color:var(--accent)!important}.lab-footer{position:relative;z-index:1;padding:80px var(--gutter) 36px;border-top:1px solid var(--line);background:var(--space-0)}.lab-footer-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px;width:min(1320px,100%);margin-inline:auto}.lab-footer-grid>div:last-child{justify-self:end}.lab-footer-brand{margin-bottom:18px;font-family:var(--font-title);font-size:18px;font-weight:700;letter-spacing:.04em}.lab-footer-title{margin-bottom:18px;color:var(--ink-2);font-family:var(--font-mono);font-size:12px;letter-spacing:.08em}.lab-footer-list{display:grid;gap:8px;color:var(--ink-3);font-family:var(--font-mono);font-size:12px;letter-spacing:.08em}.lab-footer-links a{color:var(--ink-2);letter-spacing:.02em;transition:color .2s ease}.lab-footer-links a:hover{color:var(--accent)}.lab-footer-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 24px;width:min(1320px,100%);margin:64px auto 0;padding-top:22px;border-top:1px solid var(--line);color:var(--ink-3);font-size:13px}@keyframes lab-in{0%{opacity:0;transform:translateY(16px)}}@keyframes lab-node-in{0%{opacity:0;transform:translateY(8px)}}@keyframes lab-fade{0%{opacity:0}}@keyframes lab-spin{to{transform:translate(-50%)}}@keyframes lab-rotate{to{transform:rotate(360deg)}}@keyframes lab-float{0%,to{transform:translateY(-4px)}50%{transform:translateY(6px)}}@keyframes lab-drift{to{transform:translate(-4px)}}@keyframes lab-pulse{0%,to{opacity:.6}50%{opacity:1}}@keyframes lab-dash{0%{stroke-dashoffset:3}to{stroke-dashoffset:-97}}@keyframes lab-flow-g1{0%,1%,19%,to{stroke-opacity:.2}4%,14%{stroke-opacity:.85}}@keyframes lab-flow-g2{0%,15%,44%,to{stroke-opacity:.2}19%,38%{stroke-opacity:.85}}@keyframes lab-flow-g3{0%,40%,64%,to{stroke-opacity:.2}44%,58%{stroke-opacity:.85}}@keyframes lab-flow-g4{0%,60%,84%,to{stroke-opacity:.2}64%,78%{stroke-opacity:.85}}@keyframes lab-glow-g1{0%,11%,26%,to{border-color:var(--line-strong);box-shadow:none}15%,19%{border-color:var(--accent);box-shadow:0 0 18px -6px var(--accent)}}@keyframes lab-glow-g2{0%,35%,50%,to{border-color:var(--line-strong);box-shadow:none}40%,44%{border-color:var(--accent);box-shadow:0 0 18px -6px var(--accent)}}@keyframes lab-glow-g3{0%,55%,70%,to{border-color:var(--line-strong);box-shadow:none}60%,64%{border-color:var(--accent);box-shadow:0 0 18px -6px var(--accent)}}@keyframes lab-glow-g4{0%,75%,92%,to{border-color:var(--line-strong);box-shadow:none}80%,85%{border-color:var(--accent);box-shadow:0 0 18px -6px var(--accent)}}@keyframes lab-stack-pulse{0%{top:0;opacity:0}1%{opacity:1}17%{opacity:1}19%,to{top:calc(100% - 60px);opacity:0}}@media(max-width:1199px){.lab-hero-inner{grid-template-columns:minmax(0,1fr) 44vw}.lab-agents{padding:20px}.lab-node{gap:0;padding-inline:10px}.lab-node--s .lab-node-icon{display:none}.lab-node--m .lab-node-icon,.lab-node--l .lab-node-icon{margin-right:8px}.lab-node--m{width:40%}.lab-node--l{width:52%}.lab-node--s{width:29%}.lab-modules{grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 28px}.lab-work{grid-template-columns:4.5em minmax(0,1fr) 13em}.lab-work-stack{display:none}}@media(max-width:899px){.lab-hero-inner{grid-template-columns:minmax(0,1fr);gap:52px;padding-top:118px}.lab-hero-copy{padding-top:0}.lab-hero-panel{width:min(100%,560px)}.lab-hero-planet{left:auto;right:-200px;top:96px;width:560px;translate:none;opacity:calc(.6 - var(--exit) * .2)}.lab-split--55,.lab-split--38,.lab-split--50,.lab-split--capture{grid-template-columns:minmax(0,1fr)}.lab-approche-visual{max-width:520px}.lab-stack{width:100%}.lab-rack{display:none}.lab-ailab-planet{left:82%;top:84%;opacity:.45}}@media(max-width:699px){:root{--gutter: 20px}body.lab{font-size:16px}.lab-header{height:60px}.js .lab-menu-button{display:inline-flex;align-items:center}.js .lab-nav{position:absolute;inset:60px 0 auto;display:none;flex-direction:column;gap:0;padding:8px var(--gutter) 16px;border-bottom:1px solid var(--line);background:#05080df5;font-size:14px}.js .lab-header.is-open .lab-nav{display:flex}.js .lab-nav a{padding-block:12px}html:not(.js) .lab-header{position:absolute;height:auto;flex-wrap:wrap;padding-block:12px}html:not(.js) .lab-nav{flex-wrap:wrap;gap:4px 16px}.lab-hero-inner{gap:48px;padding-top:116px;padding-bottom:64px}.lab-h1{font-size:clamp(42px,12vw,52px);line-height:1;margin-bottom:22px}.lab-keywords{line-height:1.8;margin-bottom:28px}.lab-cta-row{flex-direction:column}.lab-hero-planet{right:-190px;width:460px;opacity:calc(.55 - var(--exit) * .2)}.lab-agents{padding:16px}.lab-agents-stage{aspect-ratio:100 / 136}.lab-agents-links--desktop{display:none}.lab-agents-links--mobile{display:block}.lab-node{justify-content:center;height:clamp(48px,17.2cqw,64px);padding-inline:6px;text-align:center}.lab-node .lab-node-icon{display:none}.lab-node--s{width:29%}.lab-node--m{width:56%}.lab-node--l{width:74%}.lab-node-title{font-size:12px;letter-spacing:.03em}.lab-node-sub{font-size:11px}.lab-method li{grid-template-columns:minmax(0,1fr);gap:4px}.lab-modules{grid-template-columns:minmax(0,1fr)}.lab-module-visual{height:100px}.lab-work{grid-template-columns:minmax(0,1fr);gap:6px;padding-inline:4px}.lab-work-year{display:none}.lab-work .lab-status{justify-self:start}.lab-row{grid-template-columns:minmax(0,1fr) auto;padding-right:8px}.lab-row-body{grid-column:1 / -1;grid-row:2}.lab-stack-branch{gap:8px}.lab-stack-branch:after{left:calc((100% - 16px) / 6);right:calc((100% - 16px) / 6)}.lab-stack-node{padding:12px 8px}.lab-stack-title{font-size:12px;letter-spacing:.06em}.lab-stack-sub{font-size:12px}.lab-skills{grid-template-columns:minmax(0,1fr)}.lab-footer{padding-top:64px}.lab-footer-grid{grid-template-columns:minmax(0,1fr)}.lab-footer-grid>div:last-child{justify-self:start}}@media(prefers-reduced-motion:reduce){.lab *,.lab *:before,.lab *:after{animation:none!important}.lab-flow-dots,.lab-stack-pulse{display:none}.lab-stars-layer,.lab-agents,.lab-hero-planet>div{translate:none}.js [data-reveal],.js .lab-stack .lab-stack-node,.js .lab-stack .lab-stack-line{transform:none;transition:opacity .2s ease}.js .lab-stack .lab-stack-line{opacity:0}.js .lab-stack.is-in .lab-stack-line{opacity:1}}
