@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=IBM+Plex+Mono:wght@400;500&family=Instrument+Serif:ital@0;1&display=swap');
:root{--bg:#f5f4f0;--ink:#242521;--muted:#6c6d66;--line:#d8d9d0;--accent:#727951;--panel:#eeeee7;--mono:'IBM Plex Mono',monospace}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:40px}body{margin:0;background:var(--bg);color:var(--ink);font-family:'DM Sans',Arial,sans-serif;font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,a,summary{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:6px}::selection{background:#d7dcc3}.wrap{max-width:1280px;width:calc(100% - 112px);margin-inline:auto}.header{height:112px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.wordmark{font-size:23px;font-weight:700;letter-spacing:-1px}.logo-dot,.accent{color:var(--accent)}nav{display:flex;gap:36px;font-size:14px}nav a{transition:color .2s}nav a:hover{color:var(--accent)}.external{font-size:17px;margin-left:4px}.hero{padding-top:76px}.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:1.4px;display:flex;align-items:center;gap:12px}.small-line{width:26px;height:1px;background:var(--accent)}h1,h2,h3,p{margin:0}h1{font-weight:500;font-size:clamp(68px,7.9vw,112px);letter-spacing:-6px;line-height:.99;margin:40px 0 34px}.serif{font-family:'Instrument Serif',Georgia,serif;font-weight:400;font-style:italic;letter-spacing:-.035em}h1 .serif{color:#737866}.hero-bottom{display:flex;justify-content:space-between;align-items:end;gap:30px}.hero-bottom p{max-width:425px;font-size:18px;line-height:1.65;color:var(--muted)}.pill{display:inline-flex;align-items:center;gap:35px;border-radius:50px;padding:15px 23px;font-size:14px;line-height:1.5;transition:background .2s,transform .2s}.pill:hover{transform:translateY(-3px);background:#414536}.dark{background:var(--ink);color:#fff}.button-plus{font-size:21px;font-weight:400}.hero-note{display:flex;justify-content:space-between;border-top:1px solid var(--line);margin-top:68px;padding:20px 0;font-family:var(--mono);font-size:11px;letter-spacing:.5px;color:var(--muted)}.projects{padding-top:72px}.section-heading{display:flex;justify-content:space-between;gap:20px;margin-bottom:34px;align-items:center}.muted{font-size:14px;color:var(--muted)}.featured{background:var(--panel);padding:44px;border:1px solid #dedfd5;border-radius:8px;display:grid;grid-template-columns:.9fr 1.1fr;gap:40px 58px}.project-label{font-family:var(--mono);font-size:11px;letter-spacing:.7px;display:flex;align-items:center;gap:12px;color:var(--muted)}.number{border:1px solid #c8cbbd;border-radius:50%;width:29px;height:29px;display:inline-flex;align-items:center;justify-content:center;font-size:11px}.feature-copy h2{font-size:64px;font-weight:500;letter-spacing:-3.6px;line-height:1.1;margin-top:28px}.project-subtitle{font-size:26px;line-height:1.35;letter-spacing:-.7px;margin:18px 0}.description{color:var(--muted);font-size:15px;line-height:1.8;max-width:410px}.tags{display:flex;gap:7px;flex-wrap:wrap;margin:25px 0}.tags span{font-family:var(--mono);font-size:11px;padding:4px 9px;border:1px solid #cdd0c3;border-radius:4px;color:#626657}.text-link{font-size:14px;border-bottom:1px solid #a9ae9a;padding-bottom:6px;display:inline-flex;gap:28px}.demo{align-self:center;background:#20231f;color:#e8ebe2;border-radius:8px;box-shadow:0 20px 35px #242c1a18;overflow:hidden;transform:rotate(-1deg)}.demo-header{padding:18px 20px;border-bottom:1px solid #373b33;display:flex;align-items:center;justify-content:space-between;gap:12px}.demo-brand{display:flex;align-items:center;gap:9px;font-weight:500;font-size:14px}.model-mark{display:inline-flex;background:#bcc9a0;color:#20231f;border-radius:6px;width:27px;height:27px;align-items:center;justify-content:center;font-family:Georgia,serif;font-style:italic;font-size:24px}.mono{font-family:var(--mono);font-size:11px;color:#b0b6a7}.replay{background:none;border:0;font-size:12px;color:#c4c9bb;padding:4px}.replay:hover{color:#fff}.demo-content{padding:24px;min-height:318px;font-family:var(--mono)}.chat-label{font-size:10px;letter-spacing:1.4px;color:#afb8a1}.prompt{font-size:14px;margin-top:7px}.model-label{margin-top:24px}.thought{margin-top:10px;border-left:1px solid #59634a;padding-left:14px}.thought-title{font-family:'DM Sans',sans-serif;font-size:12px;color:#b6bfa9;display:flex;justify-content:space-between}.reasoning{font-size:12px;line-height:1.9;color:#acb59f;min-height:92px;margin-top:8px;white-space:pre-line}.answer{font-size:19px;margin-top:14px;min-height:31px}.cursor{display:inline-block;vertical-align:middle;width:6px;height:16px;background:#b5c69b;margin-left:5px;animation:blink 1s steps(1) infinite}.demo-footer{border-top:1px solid #373b33;padding:14px 20px;display:flex;flex-direction:column;gap:12px}.demo-footer>span{font-size:10px;color:#a7af9d}.example-buttons{display:flex;gap:6px}.example-buttons button{font-size:11px;background:transparent;border:1px solid #49513f;border-radius:20px;padding:5px 13px;color:#c7cebd}.example-buttons button.selected{background:#3c4433;border-color:#697556;color:#eef1e8}.metrics{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #d2d5c7;padding-top:26px;gap:20px}.metrics>div+div{border-left:1px solid #d2d5c7;padding-left:30px}.metrics strong{font-weight:500;font-size:38px;letter-spacing:-1.5px}.metrics strong span{font-size:23px;margin-left:3px}.metrics p{font-size:12px;color:var(--muted)}.project-details{grid-column:1/-1;border-top:1px solid #d2d5c7}summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;font-size:14px;padding:19px 0 0;gap:16px}summary::-webkit-details-marker{display:none}summary>span{font-size:22px;line-height:1}details[open] summary>span{transform:rotate(45deg)}.detail-body{font-size:14px;line-height:1.8;color:var(--muted);padding-top:18px;max-width:850px}.detail-body p+p{margin-top:12px}.detail-body a{display:inline-block;margin-top:14px;text-decoration:underline;text-underline-offset:4px;color:var(--ink)}.secondary-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;margin-top:54px}.secondary{padding-bottom:24px}.secondary h2{font-size:31px;font-weight:500;letter-spacing:-1px;margin:26px 0 15px}.secondary-lead{font-size:21px;line-height:1.4;letter-spacing:-.3px;margin-bottom:18px}.secondary .description{max-width:470px;min-height:108px}.runtime-visual,.spec-visual{height:118px;display:flex;align-items:center;background:#eeeee9;border:1px solid #e2e3da;border-radius:6px;margin-top:26px;justify-content:center;gap:10px;font-family:var(--mono);font-size:12px}.runtime-visual>span{border:1px solid #c8cdbe;padding:8px 12px;border-radius:4px;background:#f7f7f2;white-space:nowrap}.runtime-visual i{width:25px;height:1px;background:#a3ab96}.runtime-visual .cursor{height:12px;width:4px;margin-left:3px}.spec-visual{position:relative;gap:5px;padding-bottom:16px}.spec-visual>span{border:1px solid #bfc8af;background:#e2e8d8;padding:5px 8px;border-radius:4px;animation:tokenPulse 6s infinite}.spec-visual>span:nth-child(2){animation-delay:.3s}.spec-visual>span:nth-child(3){animation-delay:.6s}.spec-visual .rejected{background:#e9e5df;border-color:#d3c7bb;color:#8f7c6b;text-decoration:line-through;animation:none}.spec-visual .corrected{background:#f8f8f4;animation:none}.spec-visual small{position:absolute;bottom:12px;left:0;width:100%;text-align:center;color:var(--muted);font-size:10px}.approach{padding-top:108px;padding-bottom:95px}.approach-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;margin-top:45px}.approach h2{font-size:46px;font-weight:500;letter-spacing:-2px;line-height:1.2}.principles>div{display:flex;gap:25px;padding:24px 0;border-top:1px solid var(--line)}.principles>div:first-child{padding-top:0;border-top:0}.principles>div>span{font-family:var(--mono);font-size:11px;color:var(--muted);padding-top:5px}.principles h3{font-size:16px;font-weight:500;margin-bottom:8px}.principles p{font-size:14px;color:var(--muted);line-height:1.8}.contact{border-top:1px solid var(--line);padding:46px 0 65px}.contact>div{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-top:30px}.contact h2{font-size:65px;line-height:1.06;letter-spacing:-3px;font-weight:500}footer{border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:30px 0 35px}footer>span,footer>a:last-child{font-size:12px;color:var(--muted)}.skip{position:fixed;top:-100px;left:20px;padding:12px;background:var(--ink);color:white;z-index:10}.skip:focus{top:15px}@keyframes blink{50%{opacity:0}}@keyframes tokenPulse{0%,65%,100%{opacity:1}75%{opacity:.45}}
@media(min-width:1450px){.hero{padding-top:100px}h1{font-size:120px}.hero-note{margin-top:90px}}
@media(max-width:1000px){.wrap{width:calc(100% - 64px)}.featured{padding:30px;gap:30px}.feature-copy h2{font-size:52px}.project-subtitle{font-size:23px}.demo-header{padding:15px}.demo-content{padding:20px}.mono{display:none}.metrics strong{font-size:32px}.metrics>div+div{padding-left:20px}.secondary-grid,.approach-grid{gap:35px}.approach h2{font-size:38px}.runtime-visual{gap:5px}.runtime-visual i{width:12px}.runtime-visual>span{padding:7px 9px}}
@media(max-width:700px){.wrap{width:calc(100% - 40px)}.header{height:82px}.wordmark{font-size:21px}nav{gap:18px;font-size:12px}.hero{padding-top:50px}h1{font-size:clamp(59px,12.5vw,88px);letter-spacing:-3.5px;margin:34px 0 28px}.eyebrow{font-size:10px;letter-spacing:1px}.hero-bottom{display:block}.hero-bottom p{font-size:16px;max-width:345px}.hero-bottom .pill{margin-top:25px}.hero-note{margin-top:42px;gap:16px;font-size:9px}.hero-note>span:last-child{text-align:right;max-width:170px}.projects{padding-top:40px}.section-heading{align-items:start;flex-direction:column;gap:10px;margin-bottom:23px}.muted{font-size:12px}.featured{padding:24px 20px;grid-template-columns:1fr;gap:30px}.feature-copy h2{font-size:52px;margin-top:22px}.project-subtitle{font-size:24px}.description{font-size:15px}.demo{transform:none;width:100%;max-width:480px;justify-self:center}.demo-content{min-height:315px}.demo-footer>span{font-size:9px}.metrics{grid-template-columns:1fr 1fr;gap:20px}.metrics>div+div{padding-left:16px}.metrics>div:nth-child(3){border:0;padding-left:0}.metrics p{font-size:11px}.metrics strong{font-size:35px}.metrics strong span{font-size:21px}summary{font-size:12px}.secondary-grid{grid-template-columns:1fr;gap:34px;margin-top:40px}.secondary+.secondary{border-top:1px solid var(--line);padding-top:35px}.secondary .description{min-height:0}.secondary h2{margin-top:18px}.secondary-lead{font-size:22px}.runtime-visual,.spec-visual{max-width:none}.runtime-visual{gap:12px}.runtime-visual i{width:24px}.approach{padding-top:65px;padding-bottom:55px}.approach-grid{grid-template-columns:1fr;gap:35px;margin-top:25px}.approach h2{font-size:40px}.contact{padding-top:32px;padding-bottom:42px}.contact>div{display:block}.contact h2{font-size:54px}.contact .pill{margin-top:28px}footer{flex-wrap:wrap;gap:16px}footer .wordmark{width:100%}footer>span,footer>a:last-child{font-size:11px}.pill{font-size:13px}.detail-body{font-size:14px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

/* Nexa - architecture distribuée */
.nexa-project .description{min-height:0}

/* Motion and interactive project demonstrations */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.reading-progress{position:fixed;z-index:20;inset:0 0 auto;height:3px;background:var(--accent);transform:scaleX(0);transform-origin:left;pointer-events:none}
.hero-line{display:block;animation:heroEnter .9s cubic-bezier(.16,1,.3,1) both}
.hero-line:nth-child(2){animation-delay:.12s}.hero-line:nth-child(3){animation-delay:.24s}
.hero h1{perspective:800px}.hero .serif{transition:color .4s}.hero h1:hover .serif{color:#444d30}
@keyframes heroEnter{from{opacity:0;transform:translateY(32px) rotateX(7deg)}to{opacity:1;transform:none}}
.motion-reveal{animation:sectionEnter .8s cubic-bezier(.16,1,.3,1) both}
@keyframes sectionEnter{from{opacity:.2;transform:translateY(26px)}to{opacity:1;transform:none}}
.featured,.secondary{position:relative}.secondary h2{transition:color .25s,transform .35s}.secondary:hover h2{color:#66734d;transform:translateX(4px)}
.demo{transition:transform .35s ease,box-shadow .35s ease;transform:perspective(1000px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)) rotate(-1deg)}
.demo:hover{box-shadow:0 24px 46px #242c1a26}
.pill{position:relative;translate:var(--magnet-x,0px) var(--magnet-y,0px);transition:translate .25s ease,background .2s,transform .2s}.pill .button-plus{transition:transform .3s}.pill:hover .button-plus{transform:rotate(90deg)}
.tags span{transition:background .2s,transform .2s}.tags span:hover{background:#e0e5d4;transform:translateY(-3px)}
nav a{position:relative}nav a::after{content:'';position:absolute;inset:auto 0 -5px;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .25s}nav a:hover::after,nav a[aria-current]::after{transform:scaleX(1)}
details[open] .detail-body{animation:sectionEnter .35s ease both}
.experiment{margin-top:26px;padding:20px;border:1px solid #d8dcce;background:#eeeee7;border-radius:7px;overflow:hidden;--speed:1.8s}
.experiment-heading{display:flex;justify-content:space-between;gap:12px;font:10px/1.5 var(--mono);letter-spacing:.5px;color:#68705b;margin-bottom:20px}
.segmented{display:flex;width:fit-content;padding:3px;border:1px solid #d0d5c5;border-radius:6px;gap:3px}.segmented button{border:0;background:transparent;padding:7px 13px;border-radius:4px;font-size:12px;transition:background .2s,color .2s}.segmented button[aria-pressed=true]{background:#33392b;color:#f4f5ef}
.speed-readout{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;margin-top:14px}.speed-readout strong{font-size:42px;font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:-2px;line-height:1.3}.speed-readout>span{font-size:12px;color:var(--muted)}.speed-readout>span:last-child{margin-left:auto;font:10px var(--mono)}
.speed-track{height:5px;border-radius:5px;background:#d7ddcd;margin:12px 0 18px;overflow:hidden}#speed-bar{height:100%;background:#77895d;width:100%;transition:width .7s cubic-bezier(.2,.7,.2,1)}
.token-stream{display:flex;flex-wrap:wrap;gap:5px}.token-stream span{font:11px var(--mono);padding:4px 6px;background:#f7f8f3;border:1px solid #d1d9c5;border-radius:3px}
.runtime-experiment.is-flowing .token-stream span{animation:tokenArrive var(--speed) both;animation-delay:calc(var(--i)*var(--speed)/10)}
@keyframes tokenArrive{from{opacity:.25;transform:translateY(5px)}to{opacity:1;transform:none}}
.experiment-note{font-size:11px;line-height:1.65;color:#69705f;margin-top:16px;max-width:440px}
.spec-tokens{display:flex;flex-wrap:wrap;gap:6px;min-height:48px;align-items:center;margin:25px 0 22px}.spec-tokens>span{padding:6px 9px;border:1px dashed #bfc7b3;color:#767e6c;border-radius:4px;font:12px var(--mono);transition:background .3s,transform .3s,opacity .3s}.spec-tokens>span.proposed{background:#f9faf6;border-style:solid;color:#343e29;transform:translateY(-3px)}.spec-tokens>span.accepted{background:#dfe7d2;border-color:#9dad85;color:#38442d;transform:none}.spec-tokens>span.refused{background:#e7e0d7;border-color:#c4b7a7;color:#887563;text-decoration:line-through;transform:none}.spec-tokens>span.replacement{opacity:.15}.spec-tokens>span.replacement.accepted{opacity:1}
.step-track{display:flex;gap:8px}.step-track>span{flex:1;border-top:2px solid #d1d7c8;padding-top:7px;font:10px var(--mono);color:#78816c;transition:color .3s,border-color .3s}.step-track>span.current{border-color:#66794a;color:#39472a}
.simulation-status{font-size:13px;line-height:1.7;min-height:45px;margin:17px 0;color:#58614c}.experiment-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.motion-button{display:inline-flex;align-items:center;gap:17px;border:1px solid #adb89b;border-radius:5px;background:#f7f8f2;padding:9px 12px;font-size:12px;transition:background .2s,transform .2s}.motion-button:hover{background:#e0e7d4;transform:translateY(-2px)}.motion-button:disabled{opacity:.55;cursor:wait;transform:none}.quiet-button{font-size:11px;background:transparent;border:0;border-bottom:1px solid #b0b99f;padding:6px 0;color:#556143}.quiet-button[aria-pressed=true]{color:#8b6a43;border-color:#a28b6e}
@media(max-width:700px){.experiment{padding:16px}.experiment-heading{font-size:9px}.speed-readout>span:last-child{width:100%;margin-left:0}.demo{transform:none}.spec-tokens>span{padding:6px 7px}.experiment-actions{gap:10px}.hero-line{line-height:1.03}.pill{translate:none}}
@media(prefers-reduced-motion:reduce){.hero-line,.motion-reveal,details[open] .detail-body{animation:none!important}.demo,.pill,.secondary:hover h2{transform:none!important;translate:none!important}.reading-progress{display:none}}
@media(max-width:380px){h1{font-size:48px;letter-spacing:-2.8px}.contact h2{font-size:46px;letter-spacing:-2px}nav{gap:12px}.header .wordmark{font-size:19px}.experiment-heading{flex-wrap:wrap}}

/* Nexa: two local terminals */
.nexa-project{grid-column:1/-1;display:block;border-top:1px solid var(--line);padding-top:38px}
.nexa-project .description{min-height:0;max-width:680px}
.nexa-architecture{min-width:0;margin-top:32px}
.nexa-architecture .experiment{margin:0 0 24px;padding:23px}
.terminal-pair{display:grid;grid-template-columns:minmax(0,1fr) 46px minmax(0,1fr);align-items:center;gap:12px}
.chat-terminal{min-width:0;background:#20231f;color:#e7ebe0;border:1px solid #3d4535;border-radius:7px;overflow:hidden;box-shadow:0 10px 25px #27301a13}
.terminal-top{height:45px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 15px;border-bottom:1px solid #3a4137}
.terminal-title{display:flex;align-items:center;gap:8px;white-space:nowrap;font:10px var(--mono);letter-spacing:.3px}
.terminal-id{color:#9da995}.terminal-led{width:6px;height:6px;border-radius:50%;background:#a4c483;box-shadow:0 0 0 3px #a4c48322;flex:none}
.chat-terminal.is-offline .terminal-led{background:#a49a84;box-shadow:none}
.terminal-toggle{border:1px solid #58634f;background:transparent;border-radius:3px;color:#b7c7a9;padding:4px 7px;font:10px var(--mono);white-space:nowrap;transition:background .2s,color .2s}
.terminal-toggle:hover{background:#384532;color:white}.chat-terminal.is-offline .terminal-toggle{color:#e0ccb1;border-color:#847462}
.terminal-log{height:225px;overflow-y:auto;overscroll-behavior:contain;padding:17px 17px 11px;scrollbar-color:#6b775b transparent;scrollbar-width:thin;font:12px/1.65 var(--mono)}
.terminal-log p{overflow-wrap:anywhere;margin:0 0 9px}.terminal-log .terminal-system{color:#879380;font-size:11px}.terminal-line{position:relative;padding-right:50px;animation:terminalArrive .35s ease both}
.terminal-outgoing{color:#e9eddf}.terminal-incoming{color:#b0c997}.terminal-outgoing::after{content:attr(data-delivery);position:absolute;right:0;top:0;color:#8b9a7c;font:10px/1.9 var(--mono)}
.terminal-form{height:50px;display:flex;align-items:center;gap:9px;padding:0 10px 0 15px;border-top:1px solid #3a4137}
.terminal-prompt{color:#a9c78d;white-space:nowrap;font:12px var(--mono)}
.terminal-form input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:#f2f5ed;font:12px var(--mono)}
.terminal-form input::placeholder{color:#899586}.terminal-form input:focus-visible{outline:1px solid #a9c78d;outline-offset:4px;border-radius:1px}
.terminal-form button{width:27px;height:27px;flex:none;border:1px solid #657456;border-radius:4px;background:#3a4834;color:#dae9cd;font-size:18px;line-height:1;display:grid;place-items:center}
.terminal-form button:hover{background:#566b49}.terminal-form button:disabled{opacity:.45;cursor:not-allowed}
.terminal-link{display:flex;align-items:center;justify-content:center;color:#637650;gap:3px}.link-line{height:1px;background:#aab99b;flex:1}.link-node{height:28px;width:28px;display:grid;place-items:center;border:1px solid #aebfa0;border-radius:50%;font:12px var(--mono);background:#f6f7f0;flex:none}
.nexa-experiment.is-transmitting .link-node{animation:relayPulse .55s ease both}.terminal-status{min-height:24px;margin:17px 0 0;font-size:13px;color:#58614c}
.nexa-experiment .experiment-note{max-width:none;margin-top:8px}
@keyframes terminalArrive{from{opacity:.4;transform:translateY(7px)}to{opacity:1;transform:none}}
@keyframes relayPulse{50%{background:#dce7ce;box-shadow:0 0 0 7px #dce7ce77}}
@media(max-width:900px){.terminal-pair{grid-template-columns:1fr;gap:10px}.terminal-link{height:22px;flex-direction:column}.link-line{width:1px;height:4px;flex:1}.link-node{height:22px;width:22px;font-size:10px}.terminal-log{height:160px}}
@media(max-width:700px){.nexa-architecture .experiment{padding:16px}.terminal-log{height:155px}.terminal-id{display:none}}
@media(prefers-reduced-motion:reduce){.terminal-line,.nexa-experiment.is-transmitting .link-node{animation:none!important}}
