@charset "UTF-8";
main:focus{outline:none}
:root{color-scheme:dark;--bg:#111113;--surface:#1c1c20;--surface2:#232328;--border:#34343c;--text:#f4f1ee;--muted:#b5b2bd;--accent:#b7abc9;--accent-bg:#35303f;--radius:25px;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);line-height:1.6}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button{cursor:pointer}a,button{-webkit-tap-highlight-color:transparent}button:disabled{cursor:default}img{display:block;max-width:100%}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible{outline:3px solid var(--accent);outline-offset:5px}button{color:inherit}p{color:var(--muted);margin:0 0 1.2em}h1,h2,h3{line-height:1.1;letter-spacing:-.04em;font-weight:530;margin:0 0 .6em}h1{font-size:clamp(2.9rem,6.1vw,5.8rem)}h2{font-size:clamp(1.8rem,3.2vw,3rem)}h3{font-size:1.4rem}.wrap{max-width:1240px;margin:0 auto;padding-left:32px;padding-right:32px}.draft{border-bottom:1px solid #29292f;padding:8px 32px;display:flex;justify-content:space-between;color:#b6b1be;font-size:10px;letter-spacing:.13em;text-transform:uppercase}.header{display:flex;justify-content:space-between;align-items:center;gap:30px;height:112px}.brand{display:flex;align-items:center;gap:12px;font-weight:550;letter-spacing:-.035em;white-space:nowrap}.brand-mark{border:1px solid #4c4656;background:var(--accent-bg);font-size:25px;width:40px;height:40px;text-align:center;border-radius:12px;line-height:36px}.brand-dot{width:5px;height:5px;background:var(--accent);border-radius:50%;margin:4px 0 0 1px}.header nav{display:flex;align-items:center;gap:29px;font-size:13px;color:var(--muted)}nav a{padding:10px 0}nav a:hover,nav a[aria-current=page]{color:var(--text)}nav .nav-contact{padding:11px 18px;border:1px solid #4c4558;border-radius:50px;color:#ded6e8;background:#242129}.nav-contact span{margin-left:20px}.menu-toggle{display:none}.eyebrow{font-size:10px;letter-spacing:.21em;text-transform:uppercase;color:var(--accent);font-weight:600}.intro-heading{display:flex;justify-content:space-between;align-items:flex-end;padding:46px 0 39px;gap:40px}.intro-heading h1{max-width:780px;margin:15px 0 0}.intro-heading h1 em{font-family:Georgia,serif;font-weight:normal;color:var(--accent)}.intro-aside{max-width:235px;padding-bottom:5px;font-size:13px}.intro-aside p{margin-bottom:23px}.quiet-button{background:none;border:0;padding:4px 0;border-bottom:1px solid #716779;color:#d4cbdf;font-size:11px;letter-spacing:.02em}.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:18px}.card{position:relative;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);isolation:isolate}.card-link{display:block;transition:transform .35s ease,border-color .35s}.card-link:hover{transform:translateY(-4px);border-color:#746981}.card-link:hover .circle-arrow{background:var(--accent);color:#17141c;transform:rotate(45deg)}.circle-arrow{width:39px;height:39px;display:grid;place-items:center;border:1px solid #706b77;border-radius:50%;font-size:20px;transition:.3s}.hero-card{grid-column:span 7;grid-row:span 2;min-height:546px}.hero-image,.image-card>img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;z-index:-2}.hero-image{object-position:51% 50%;filter:saturate(.65)}.hero-card:after,.image-card:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#12121405 22%,#101012c7 70%,#101012f5);z-index:-1}.hero-top{position:absolute;top:26px;left:28px;right:28px;display:flex;justify-content:space-between;align-items:center}.chip{display:inline-flex;align-items:center;gap:8px;padding:6px 11px;border:1px solid #ffffff40;border-radius:50px;background:#1e1d2580;backdrop-filter:blur(12px);font-size:9px;letter-spacing:.12em;text-transform:uppercase}.chip i{width:5px;height:5px;border-radius:50%;background:#c7bdcf}.hero-bottom{position:absolute;bottom:33px;left:32px;right:32px}.hero-bottom h2{font-size:clamp(2.8rem,5vw,4.5rem);max-width:470px;margin:14px 0}.hero-bottom p{max-width:375px;font-size:13px;color:#d0c9cc}.hero-bottom .link-line{color:#eee8ef}.link-line{display:flex;justify-content:space-between;align-items:center;font-size:12px;margin-top:24px}.profile-card{grid-column:span 5;padding:29px;min-height:260px;background:radial-gradient(ellipse at 100% 0%,#38303f77,transparent 70%),var(--surface)}.profile-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.initials{font-family:Georgia,serif;color:#cfc3dc;font-size:32px;width:68px;height:68px;border-radius:50%;background:#302b36;border:1px solid #5c5165;display:grid;place-items:center}.profile-card h2{font-size:28px;margin:0 0 10px}.profile-card p{font-size:12px;max-width:320px;margin-bottom:0}.project-card{grid-column:span 5;min-height:268px;padding:28px;background:linear-gradient(125deg,#27242e,#1c1c20)}.project-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.bookmark-icon{display:flex;gap:7px;align-items:center;color:#ddd3e6;font-size:20px}.bookmark-icon span{display:grid;place-items:center;border:1px solid #60566c;border-radius:12px;width:40px;height:40px;line-height:1;background:#332e3d}.project-card h2{font-size:26px;margin:9px 0}.project-card p{font-size:12px;max-width:300px;margin:0}.image-card{grid-column:span 4;height:280px}.image-card>img{filter:saturate(.65)}.image-card .image-label{position:absolute;bottom:24px;left:25px;right:25px}.image-card h2{font-size:27px;margin:13px 0 0}.image-card .circle-arrow{position:absolute;right:0;bottom:0}.image-card p{font-size:11px;margin:9px 0 0}.contact-card{grid-column:span 4;min-height:280px;padding:26px;display:flex;flex-direction:column;justify-content:space-between;background:#25222b}.contact-card h2{font-family:Georgia,serif;font-weight:normal;font-size:35px;line-height:1.18;max-width:210px}.contact-card p{font-size:12px}.bottom-note{display:flex;justify-content:space-between;gap:24px;margin:28px 0 52px;font-size:11px;color:#97929e}.bottom-note .dot{display:inline-block;width:5px;height:5px;background:#99909f;border-radius:50%;margin-right:7px}.footer{border-top:1px solid var(--border);padding-top:27px;padding-bottom:34px;display:flex;gap:25px;align-items:center;font-size:10px;color:#99949f}.footer .brand{font-size:25px;color:#bfb5ce}.footer a:nth-last-child(2){margin-left:auto}.page-heading{max-width:850px;padding:55px 0 45px}.page-heading h1{margin-top:19px}.page-heading p{max-width:660px;font-size:17px}.breadcrumb{font-size:11px;color:#aaa3b2;display:inline-flex;gap:12px;margin-bottom:25px}.button{display:inline-flex;gap:25px;justify-content:space-between;align-items:center;padding:12px 21px;border-radius:50px;background:var(--accent);color:#18141d;border:1px solid var(--accent);font-size:12px}.button.secondary{background:transparent;color:#ddd5e5;border-color:#595061}.button-row{display:flex;gap:12px;flex-wrap:wrap;margin:25px 0}.section{margin:30px 0 65px}.section-lead{display:flex;align-items:baseline;justify-content:space-between;gap:25px;margin-bottom:20px}.section-lead h2{margin:0}.section-lead p{font-size:12px;margin:0}.two-col{display:grid;grid-template-columns:1.1fr 1fr;gap:25px}.panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:32px}.panel h2{font-size:30px}.panel h3{margin-top:20px}.panel p,.panel li{font-size:14px;color:var(--muted)}.panel ul{padding-left:20px}.highlight{color:#ded4e8}.timeline{position:relative}.timeline article{border-top:1px solid var(--border);padding:26px 0;display:grid;grid-template-columns:175px 1fr;gap:30px}.timeline .date{color:var(--accent);font-size:12px}.timeline h3{font-size:22px;margin:0 0 10px}.timeline p{max-width:740px;font-size:14px}.timeline .company{font-size:12px;color:#b8acbf;margin-bottom:9px}.timeline ul{padding-left:18px;color:var(--muted);font-size:14px}.full-photo{width:100%;height:450px;object-fit:cover;border-radius:var(--radius);border:1px solid var(--border)}.photo-caption{font-size:11px;margin-top:11px}.local-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.local-grid .panel{padding:25px}.local-grid p{font-size:13px}.gallery{display:grid;grid-template-columns:1.3fr 1fr;gap:20px}.gallery button{border:1px solid var(--border);border-radius:var(--radius);padding:0;text-align:left;background:var(--surface);overflow:hidden}.gallery button img{width:100%;height:300px;object-fit:cover;transition:transform .6s}.gallery button:hover img{transform:scale(1.035)}.gallery button span{display:block;padding:15px 20px;font-size:12px}.gallery button small{display:block;color:var(--muted)}.editor-note{border-left:2px solid #786b85;padding:8px 18px;font-size:12px;color:#b9b0c2;margin:25px 0}.projects-feature{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;padding:40px}.bridge-demo{min-height:240px;display:grid;place-content:center;background:radial-gradient(ellipse,#4b405840,transparent 70%);border:1px solid #4b4256;border-radius:18px}.bridge-apps{display:flex;gap:30px;align-items:center;font-size:25px;color:var(--accent)}.bridge-apps span{display:grid;place-items:center;border:1px solid #63566f;width:85px;height:85px;border-radius:22px;background:#2d2735;font-family:Georgia,serif;font-size:38px;color:#e0d4ec}.bridge-demo p{font-size:11px;text-align:center;margin:20px 0 0}.contact-address{font-size:clamp(22px,4vw,45px);overflow-wrap:anywhere;color:#dfd4e9;letter-spacing:-.04em;display:inline-block;margin:20px 0}.menu-toggle{border:1px solid var(--border);border-radius:50px;background:var(--surface);padding:9px 14px;font-size:12px;gap:14px}.skip-link{position:fixed;top:-70px;left:20px;padding:10px;background:var(--accent);color:#111;z-index:99}.skip-link:focus{top:10px}#intro{position:fixed;inset:0;z-index:100;background:#111113}#intro[hidden]{display:none}#intro .intro-photo{position:absolute;inset:0;background:url('/montpellier-soir.jpg') center/cover;filter:saturate(.65)}.intro-shade{position:absolute;inset:0;background:linear-gradient(180deg,#11111310,#11111391)}.intro-caption{position:absolute;bottom:15%;left:9%;transition:opacity .3s}.intro-caption p{font-size:clamp(48px,8vw,110px);letter-spacing:-.055em;line-height:1.06;margin:22px 0 28px;color:#f9f4ef}.intro-caption>span:last-child{font-size:11px;color:#ddd0db}#skip-intro{position:absolute;top:32px;right:32px;border:1px solid #ded4e56a;background:#24202770;backdrop-filter:blur(15px);border-radius:50px;padding:11px 20px;font-size:11px;color:white}body.intro-active{overflow:hidden}body.intro-active .card{opacity:0;transform:translateY(24px)}body.intro-active .hero-card{opacity:1;transform:none}.reveal .card{animation:card-in .7s both}.reveal .card:nth-child(2){animation-delay:.07s}.reveal .card:nth-child(3){animation-delay:.14s}.reveal .card:nth-child(4){animation-delay:.21s}.reveal .card:nth-child(5){animation-delay:.28s}.reveal .card:nth-child(6){animation-delay:.35s}@keyframes card-in{from{opacity:0;transform:translateY(25px)}to{opacity:1;transform:none}}dialog{width:min(1100px,calc(100vw - 35px));max-height:93vh;padding:25px;background:#1c1b20;color:var(--text);border:1px solid #6b5e78;border-radius:20px}dialog::backdrop{background:#000d;backdrop-filter:blur(8px)}dialog img{max-height:67vh;width:100%;object-fit:contain}dialog h2{font-size:24px;margin-top:15px}dialog p{font-size:12px;margin:15px 0 0}#close-lightbox{float:right}.gallery button:focus-visible{outline-offset:3px}.contact-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:22px}
@media(min-width:1500px){.hero-card{min-height:580px}}
@media(max-width:1000px){.header nav{gap:18px}.brand{font-size:14px}.intro-heading{padding-top:32px}.intro-aside{max-width:185px}.hero-card{grid-column:span 7;min-height:560px}.profile-card,.project-card{grid-column:span 5;padding:23px}.profile-card h2{font-size:24px}.footer{gap:16px}.image-card h2{font-size:24px}.contact-card h2{font-size:29px}.projects-feature{gap:25px;padding:28px}}
@media(max-width:760px){.wrap{padding-left:20px;padding-right:20px}.draft{padding:7px 20px;font-size:8px;letter-spacing:.06em}.draft span:first-child{display:none}.header{height:87px;position:relative;z-index:20;gap:10px}.menu-toggle{display:flex}.header nav{display:none;position:absolute;top:76px;left:20px;right:20px;flex-direction:column;align-items:stretch;background:#222126;border:1px solid #554b60;border-radius:20px;padding:18px;box-shadow:0 16px 40px #0008;gap:6px}.header nav.open{display:flex}.header nav a{padding:10px 15px}.nav-contact span{float:right}.intro-heading{display:block;padding:28px 0}.intro-heading h1{font-size:clamp(44px,8.2vw,63px);margin:15px 0 23px;letter-spacing:-.055em}.intro-aside{max-width:unset;display:flex;gap:25px;justify-content:space-between;align-items:flex-end}.intro-aside p{max-width:225px;font-size:12px;margin:0}.quiet-button{font-size:10px;white-space:nowrap}.grid{gap:15px;grid-template-columns:repeat(2,minmax(0,1fr))}.hero-card{grid-column:1/-1;grid-row:auto;min-height:490px}.hero-bottom{left:25px;right:25px;bottom:27px}.hero-bottom h2{font-size:51px}.hero-top{left:25px;right:25px}.profile-card,.project-card{grid-column:span 1;min-height:290px;padding:24px}.profile-card h2,.project-card h2{font-size:24px}.profile-top{margin-bottom:22px}.initials{width:55px;height:55px;font-size:25px}.image-card{grid-column:span 1;height:255px}.contact-card{grid-column:1/-1;min-height:215px;flex-direction:row;align-items:center;gap:25px}.contact-card h2{font-size:36px;max-width:300px}.contact-card .eyebrow{position:absolute;top:24px}.contact-card>div{padding-top:25px}.bottom-note{font-size:10px;margin:22px 0 35px}.footer{flex-wrap:wrap;font-size:9px;gap:18px}.footer a:nth-last-child(2){margin-left:0}.footer span:last-child{margin-left:auto}.page-heading{padding:30px 0}.page-heading p{font-size:15px}.two-col,.contact-grid,.projects-feature{grid-template-columns:1fr}.full-photo{height:340px}.local-grid{grid-template-columns:1fr}.gallery{grid-template-columns:1fr 1fr}.gallery button img{height:230px}.timeline article{grid-template-columns:125px 1fr;gap:20px}.timeline h3{font-size:20px}.section{margin-bottom:45px}.section-lead{display:block}.section-lead p{margin-top:12px}.panel{padding:25px}.page-heading h1{font-size:52px}.intro-caption{left:25px;bottom:20%}.intro-caption p{font-size:61px}#skip-intro{right:20px;top:20px}}
@media(max-width:480px){.profile-card,.project-card{grid-column:1/-1;min-height:240px}.project-card{min-height:265px}.profile-top{margin-bottom:17px}.hero-card{min-height:465px}.hero-bottom h2{font-size:47px}.hero-bottom p{max-width:250px}.image-card{grid-column:1/-1;height:280px}.image-card h2{font-size:30px}.image-card p{font-size:12px}.contact-card{display:block;padding:27px}.contact-card h2{max-width:235px}.contact-card .circle-arrow{position:absolute;bottom:27px;right:27px}.intro-aside{align-items:flex-start;gap:15px}.intro-aside p{max-width:200px}.quiet-button{margin-top:3px}.brand{font-size:14px;gap:8px}.brand-mark{width:35px;height:35px;line-height:31px;font-size:23px}.brand-dot{display:none}.footer span:last-child{width:100%;margin:0}.bottom-note span:last-child{max-width:120px;text-align:right}.full-photo{height:290px}.gallery{grid-template-columns:1fr}.gallery button img{height:260px}.timeline article{grid-template-columns:1fr;gap:9px}.timeline .date{margin:0}.timeline p{margin-bottom:0}.page-heading h1{font-size:43px}.page-heading{padding-top:22px}.bridge-apps{gap:22px}.bridge-apps span{width:70px;height:70px}.projects-feature{padding:24px}.contact-address{font-size:28px}.intro-caption p{font-size:52px}.section-lead h2{font-size:30px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.card-link:hover,.gallery button:hover img{transform:none!important}#intro{display:none!important}}
