:root{
  --bg:#090b08;
  --bg2:#0d100a;
  --ink:#11130d;
  --white:#f4f6ee;
  --pale:#f7ffdd;
  --lime:#d7ff38;
  --lime-hot:#e8ff76;
  --olive:#5b6a14;
  --muted:#9aa290;
  --lum:.18;
  --mx:50vw;
  --my:50vh;
  --ease:cubic-bezier(.2,.7,.2,1);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--white);font-family:Inter,"Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif;overflow-x:clip;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}
img{display:block;max-width:100%;height:auto}
:focus-visible{outline:2px solid var(--lime);outline-offset:3px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.skip{position:fixed;z-index:200;left:16px;top:-60px;padding:10px 14px;background:var(--lime);color:var(--ink);font-weight:700;transition:top .2s}.skip:focus{top:12px}

/* --- Lumière & curseur --- */
.progress{position:fixed;z-index:120;top:0;left:0;right:0;height:2px;pointer-events:none}.progress i{display:block;height:100%;background:var(--lime);box-shadow:0 0 12px var(--lime);transform-origin:0 50%;transform:scaleX(var(--p,0))}
.ambient-light{position:fixed;z-index:0;inset:0;pointer-events:none;background:
  radial-gradient(circle at 70% 20%,rgba(215,255,56,calc(.08 * var(--lum))),transparent 34%),
  radial-gradient(circle at var(--mx) var(--my),rgba(215,255,56,calc(.05 * var(--lum))),transparent 24%)}
.cursor-halo,.cursor-dot{display:none}
@media (pointer:fine){
  .cursor-halo{display:block;position:fixed;z-index:90;left:0;top:0;width:360px;height:360px;border-radius:50%;pointer-events:none;transform:translate(-50%,-50%) scale(calc(.72 + var(--cursor-power,.25)*.35));background:radial-gradient(circle,rgba(215,255,56,calc(.22 * var(--cursor-power,.25))) 0%,rgba(215,255,56,calc(.09 * var(--cursor-power,.25))) 22%,transparent 68%);mix-blend-mode:screen}
  .cursor-dot{display:block;position:fixed;z-index:91;left:0;top:0;width:8px;height:8px;border-radius:50%;background:var(--lime);box-shadow:0 0 8px var(--lime),0 0 20px rgba(215,255,56,.85),0 0 45px rgba(215,255,56,.4);pointer-events:none;transform:translate(-50%,-50%)}
}

/* --- Navigation --- */
.nav{position:fixed;z-index:60;top:17px;left:50%;transform:translateX(-50%);width:min(1440px,calc(100% - 34px));height:68px;padding:0 22px;display:flex;align-items:center;gap:34px;border:1px solid rgba(255,255,255,.07);background:rgba(8,10,7,.78);backdrop-filter:blur(17px);-webkit-backdrop-filter:blur(17px);border-radius:16px;box-shadow:0 18px 50px rgba(0,0,0,.2),inset 0 1px 0 rgba(255,255,255,.045);transition:transform .45s var(--ease),opacity .3s}
.nav.is-hidden{transform:translate(-50%,-130%);opacity:0}.nav.is-hidden:focus-within{transform:translateX(-50%);opacity:1}
.brand{display:flex;align-items:baseline;gap:8px;margin-right:auto}.brand b{font-weight:950;font-size:18px;letter-spacing:-.055em}.brand span{font-size:10px;letter-spacing:.31em;color:var(--lime);text-shadow:0 0 calc(5px + 10px * var(--lum)) rgba(215,255,56,calc(.3 + .45 * var(--lum)))}
.nav nav{display:flex;gap:28px;font-size:12px;text-transform:uppercase;letter-spacing:.13em;color:#b5bcaa}
.nav nav a{position:relative;padding:6px 0;transition:color .2s}.nav nav a:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--lime);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.nav nav a:hover,.nav nav a.is-active{color:var(--lime)}.nav nav a.is-active:after,.nav nav a:hover:after{transform:scaleX(1)}
.menu-cta{display:none}
.nav-cta{font-size:12px;text-transform:uppercase;letter-spacing:.13em;padding:12px 18px;border:1px solid rgba(215,255,56,.6);color:var(--lime);transition:background .25s,color .25s,box-shadow .25s;box-shadow:0 0 calc(18px * var(--lum)) rgba(215,255,56,calc(.08 + .12 * var(--lum)))}.nav-cta:hover{background:var(--lime);color:#10120c;box-shadow:0 0 25px rgba(215,255,56,.25)}
.burger{display:none;width:44px;height:44px;position:relative}.burger i{position:absolute;left:11px;right:11px;height:2px;background:var(--white);transition:transform .3s var(--ease)}.burger i:first-child{top:17px}.burger i:last-child{top:25px}
.burger[aria-expanded=true] i:first-child{transform:translateY(4px) rotate(45deg)}.burger[aria-expanded=true] i:last-child{transform:translateY(-4px) rotate(-45deg)}

main{position:relative;z-index:2}

/* --- Hero --- */
.hero{min-height:790px;height:100vh;padding:120px 6.5vw 55px;position:relative;display:grid;grid-template-columns:1fr 1fr;align-items:center;overflow:hidden}
.hero-grid{position:absolute;inset:-68px 0 0;background-image:linear-gradient(rgba(215,255,56,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(215,255,56,.03) 1px,transparent 1px);background-size:68px 68px;mask-image:radial-gradient(ellipse at 30% 50%,black 20%,transparent 75%);opacity:calc(.45 + .35 * var(--lum));transform:translateY(calc(var(--hero-y,0) * .25px))}
.hero-copy{z-index:3;max-width:720px}
.micro{font-size:12px;letter-spacing:.27em;text-transform:uppercase;color:var(--lime);margin:0 0 18px}.micro.dark{color:var(--olive)}
.hero h1{margin:0;display:flex;flex-direction:column;line-height:.78;letter-spacing:-.075em}
.hero h1 i{font-style:normal;display:inline-block}
.h-pro{font-size:clamp(78px,9vw,145px);font-weight:950}
.h-pro i{opacity:0;transform:translateY(60%) rotate(6deg);animation:rise .9s var(--ease) forwards;animation-delay:calc(.15s + var(--i) * .08s)}
.h-inv{font-style:normal;font-size:clamp(29px,3.4vw,54px);letter-spacing:.28em;color:var(--lime);margin-top:20px;text-shadow:0 0 calc(7px + 22px * var(--lum)) rgba(215,255,56,calc(.28 + .45 * var(--lum))),0 0 calc(25px + 50px * var(--lum)) rgba(215,255,56,calc(.08 + .18 * var(--lum)))}
.h-inv i{opacity:0;animation:neon 1.1s steps(1) forwards;animation-delay:calc(.75s + var(--i) * .09s)}
@keyframes rise{to{opacity:1;transform:none}}
@keyframes neon{0%{opacity:0}20%{opacity:.8}30%{opacity:.1}45%{opacity:1}55%{opacity:.35}70%,100%{opacity:1}}
.tagline{font-size:clamp(24px,2.5vw,42px);line-height:1.02;font-weight:800;letter-spacing:-.04em;margin:36px 0 0}.tagline strong{color:var(--lime);text-shadow:0 0 calc(10px + 22px * var(--lum)) rgba(215,255,56,calc(.23 + .38 * var(--lum)))}
.rotator{display:flex;gap:.4em;align-items:baseline;margin:18px 0 0;font-size:clamp(16px,1.3vw,20px);color:#c7cdbd}
.rotator-words{position:relative;display:inline-grid;color:var(--lime);font-weight:700;overflow:hidden;height:1.3em}
.rotator-words b{grid-area:1/1;font-weight:inherit;white-space:nowrap;transform:translateY(110%);opacity:0;transition:transform .6s var(--ease),opacity .4s}
.rotator-words b.is-on{transform:none;opacity:1}.rotator-words b.is-out{transform:translateY(-110%);opacity:0}
.hero-text{max-width:570px;color:#a9b19f;line-height:1.74;font-size:15px;margin-top:20px}
.hero-actions{display:flex;gap:28px;align-items:center;margin-top:32px}
.btn,.link{white-space:nowrap}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:22px;padding:15px 22px;border:1px solid currentColor;font-size:12px;letter-spacing:.13em;text-transform:uppercase;transition:background .25s,color .25s,box-shadow .25s}
.btn-fluo{background:var(--lime);color:#0c0f08;border-color:var(--lime);box-shadow:0 0 calc(12px + 30px * var(--lum)) rgba(215,255,56,calc(.12 + .24 * var(--lum)))}.btn-fluo:hover{background:var(--lime-hot);box-shadow:0 0 32px rgba(215,255,56,.34),0 0 80px rgba(215,255,56,.12)}
.link{font-size:12px;letter-spacing:.13em;text-transform:uppercase;color:#9aa291;transition:color .2s}.link:hover{color:var(--lime)}
.iceberg-wrap{position:relative;height:min(76vh,700px);z-index:2;opacity:0;animation:fadein 1.6s .4s ease forwards}
.iceberg-float{position:absolute;inset:0;transform:translate3d(calc(var(--tx,0) * 18px),calc(var(--ty,0) * 14px + var(--hero-y,0) * .06px),0) rotate(calc(var(--tx,0) * 1.5deg));transition:transform .2s linear}
.iceberg{position:absolute;width:min(43vw,625px);left:50%;top:50%;transform:translate(-50%,-49%);overflow:visible;animation:bob 7s ease-in-out infinite}
@keyframes bob{50%{translate:0 -10px}}
@keyframes fadein{to{opacity:1}}
.ice-top{opacity:.92}.ice-under{opacity:calc(.27 + .73 * var(--lum));filter:saturate(calc(.8 + .4 * var(--lum)))}
.ice-lines{stroke-dasharray:1400;stroke-dashoffset:1400;animation:draw 3.4s 1s var(--ease) forwards}@keyframes draw{to{stroke-dashoffset:0}}
.waterline{position:absolute;left:9%;right:8%;top:40%;height:1px;background:linear-gradient(90deg,transparent,#eefcaa 15%,var(--lime) 50%,#eefcaa 85%,transparent);box-shadow:0 0 calc(5px + 16px * var(--lum)) rgba(215,255,56,calc(.2 + .55 * var(--lum))),0 0 calc(20px + 45px * var(--lum)) rgba(215,255,56,calc(.06 + .18 * var(--lum)))}
.label{position:absolute;font-size:10px;letter-spacing:.22em;text-transform:uppercase}.label-top{right:8%;top:30%;color:#a7ad9f}.label-bottom{left:2%;top:71%;color:var(--lime);text-shadow:0 0 calc(6px + 11px * var(--lum)) rgba(215,255,56,.58)}
.scroll-hint{position:absolute;left:6.5vw;bottom:30px;width:22px;height:36px;border:1px solid rgba(215,255,56,.45);border-radius:12px;display:flex;justify-content:center}.scroll-hint span{width:3px;height:7px;margin-top:7px;border-radius:2px;background:var(--lime);animation:wheel 1.8s ease-in-out infinite}
@keyframes wheel{0%{opacity:0;transform:translateY(-3px)}30%{opacity:1}100%{opacity:0;transform:translateY(12px)}}

/* --- Manifeste : les mots s'allument au scroll --- */
.manifesto{background:var(--pale);color:var(--ink);padding:140px 7vw}
.manifesto-inner{max-width:1260px;margin:auto;display:grid;grid-template-columns:1.1fr .9fr;gap:0 8vw}.manifesto-inner>.micro{grid-column:1}
.manifesto h2{grid-column:1;margin:0;font-size:clamp(46px,5.5vw,86px);line-height:.98;letter-spacing:-.05em}.manifesto h2 em{font-style:normal;color:#6a7a12}
.light-words .w{opacity:.38;transition:opacity .35s}.light-words .w.is-lit{opacity:1}
.manifesto-copy{grid-column:2;grid-row:1/3;padding-top:38px}.manifesto-copy p{font-size:16px;line-height:1.8;color:#4b5143;margin:0 0 20px}.manifesto-copy strong{color:#181b13}

/* --- Savoir-faire --- */
.expertise{padding:120px 7vw 130px;background:var(--bg)}
.section-head{display:grid;grid-template-columns:1.05fr .95fr;gap:0 8vw;align-items:end;margin-bottom:62px}.section-head .micro,.section-head h2{grid-column:1}.section-head h2{margin:0;font-size:clamp(46px,5.5vw,86px);line-height:.96;letter-spacing:-.055em}.section-head>p:last-child{grid-column:2;grid-row:1/3;color:var(--muted);max-width:520px;line-height:1.75;font-size:15px}
.expertise-list{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;perspective:1100px}
@media(min-width:1001px) and (max-width:1280px){.expertise-list{grid-template-columns:repeat(2,1fr)}}
.exp{--px:50%;--py:0%;background:var(--bg2);padding:36px 32px 34px;min-height:320px;position:relative;overflow:hidden;border:1px solid rgba(215,255,56,.12);border-radius:6px;display:flex;flex-direction:column;transform-style:preserve-3d;transition:border-color .3s}
.js .exp.enter.on,.exp{transform:rotateX(var(--rx,0)) rotateY(var(--ry,0));transition:opacity .75s ease,transform .25s ease-out,border-color .3s}
.exp:before{content:"";position:absolute;inset:0;background:radial-gradient(420px circle at var(--px) var(--py),rgba(215,255,56,.12),transparent 45%);opacity:0;transition:opacity .3s;pointer-events:none}
.exp:hover{border-color:rgba(215,255,56,.4)}.exp:hover:before{opacity:1}
.exp>span{font-size:12px;letter-spacing:.15em;color:var(--lime)}.exp h3{font-size:32px;margin:64px 0 13px;letter-spacing:-.04em}.exp p{margin:0;color:#959b8d;font-size:14px;line-height:1.7}
.exp ul{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:auto 0 0;padding:26px 0 0}.exp li{font-size:12px;letter-spacing:.06em;padding:6px 10px;border:1px solid rgba(215,255,56,.2);border-radius:99px;color:#c2c9b6}

/* --- Bandeau --- */
.impact{overflow:hidden;background:#0c0f08;border-top:1px solid rgba(215,255,56,.12);border-bottom:1px solid rgba(215,255,56,.12);padding:26px 0}
.impact-track{display:flex;width:max-content;transform:translate3d(var(--marquee,0px),0,0)}
.impact-set{display:flex;gap:42px;align-items:center;padding-right:42px;white-space:nowrap;font-size:clamp(32px,4.2vw,65px);font-weight:900;letter-spacing:-.05em}
.impact-set span{color:#5d6553}.impact-set strong{color:var(--lime);text-shadow:0 0 calc(7px + 20px * var(--lum)) rgba(215,255,56,calc(.2 + .35 * var(--lum)))}.impact-set i{font-style:normal;color:#596624;font-size:.5em}

/* --- Projets : défilement horizontal épinglé --- */
.projects{background:var(--pale);color:var(--ink);position:relative}
.projects-sticky{position:sticky;top:0;height:100vh;overflow:clip;display:flex;align-items:center}
.projects-track{display:flex;align-items:stretch;gap:40px;padding:0 7vw;will-change:transform;transform:translate3d(var(--track-x,0px),0,0)}
.projects-intro{flex:0 0 min(520px,80vw);display:flex;flex-direction:column;justify-content:center}
.projects-intro h2{font-size:clamp(44px,4.6vw,76px);line-height:.97;letter-spacing:-.05em;margin:0}
.projects-intro>p:not(.micro){max-width:440px;color:#4f5648;line-height:1.72;font-size:15px}
.stats{display:flex;gap:34px;margin:18px 0 0}.stats div{display:flex;flex-direction:column-reverse}.stats dd{margin:0;font-size:56px;font-weight:900;letter-spacing:-.06em;line-height:1;color:var(--ink)}.stats dt{font-size:12px;text-transform:uppercase;letter-spacing:.14em;color:var(--olive)}
.drag-hint{margin-top:34px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--olive)}.drag-hint span{display:inline-block;animation:nudge 1.6s ease-in-out infinite}@keyframes nudge{50%{transform:translateX(8px)}}

.project{flex:0 0 min(1060px,80vw);height:min(74vh,620px);display:grid;grid-template-columns:1.25fr .75fr;background:#fff;border:1px solid rgba(18,20,14,.1);border-radius:8px;box-shadow:0 25px 70px rgba(39,44,28,.08);overflow:hidden;position:relative}
.project:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--accent)}
.project-visual{position:relative;background:var(--tint);overflow:hidden;padding:7% 0 0 7%}
.project-visual:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 10%,color-mix(in srgb,var(--accent) 45%,transparent),transparent 60%);pointer-events:none;opacity:.6}
.browser{position:relative;z-index:1;height:100%;border-radius:8px 0 0 0;background:#1b1d18;box-shadow:0 30px 80px rgba(0,0,0,.35);display:flex;flex-direction:column;transform:translate3d(calc(var(--shift,0) * -14px),0,0);transition:transform .2s linear}
.browser-bar{flex:none;height:30px;display:flex;align-items:center;gap:6px;padding:0 12px}.browser-bar i{width:8px;height:8px;border-radius:50%;background:#3a3d35}.browser-bar span{margin-left:14px;font-size:12px;color:#8d9385;background:#262923;padding:3px 12px;border-radius:5px}
.screen{flex:1;overflow:hidden;container-type:size;background:#fff}
.screen img{width:100%;transition:transform 7s cubic-bezier(.45,0,.3,1)}
.project:hover .screen img,.project.is-playing .screen img{transform:translateY(calc(-100% + 100cqh))}
.phone{position:absolute;z-index:2;right:5%;bottom:-6%;width:24%;aspect-ratio:390/844;border-radius:22px;border:5px solid #121410;overflow:hidden;background:#121410;box-shadow:0 30px 60px rgba(0,0,0,.45);transform:translate3d(0,calc(var(--shift,0) * 26px),0) rotate(4deg);transition:transform .2s linear}
.phone img{width:100%;height:100%;object-fit:cover}
.project-copy{padding:44px 40px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}
.project-num{font-size:12px;letter-spacing:.13em;text-transform:uppercase;color:color-mix(in srgb,var(--accent) 75%,#000);font-weight:700}
.project-copy h3{font-size:clamp(30px,2.6vw,40px);letter-spacing:-.04em;margin:12px 0 14px;line-height:1}
.project-copy p{color:#545a4d;font-size:14.5px;line-height:1.7;margin:0}
.tags{list-style:none;display:flex;flex-wrap:wrap;gap:7px;margin:22px 0 0;padding:0}.tags li{font-size:12px;padding:6px 10px;border-radius:99px;background:color-mix(in srgb,var(--accent) 10%,#fff);color:color-mix(in srgb,var(--accent) 75%,#000)}
.project-open,.project-visit{margin-top:26px;font-size:12px;letter-spacing:.13em;text-transform:uppercase;font-weight:700;display:inline-flex;gap:10px;align-items:center;padding-bottom:5px;border-bottom:1px solid currentColor}
.project-visit{margin-top:12px;color:#6b7262;font-weight:500;border-bottom-color:transparent}.project-visit:hover{color:var(--accent)}
.project-open b,.project-visit b{transition:transform .3s var(--ease)}.project-open:hover b,.project-visit:hover b{transform:translate(3px,-3px)}
.projects-end{flex:0 0 min(420px,70vw);display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:20px}.projects-end p{margin:0;font-size:clamp(48px,5vw,84px);font-weight:900;letter-spacing:-.06em}
.projects-counter{position:absolute;left:7vw;bottom:5vh;font-size:12px;letter-spacing:.14em;color:#5f6656;display:flex;align-items:center;gap:6px}.projects-counter b{color:var(--ink);font-size:14px}.projects-counter i{display:block;width:120px;height:1px;background:rgba(17,19,13,.15);margin-left:14px}.projects-counter u{display:block;height:100%;background:var(--ink);transform-origin:0;transform:scaleX(var(--pp,0))}

/* --- Méthode --- */
.process{padding:120px 7vw;background:#0b0d09}
.process-title{font-size:clamp(40px,4.4vw,70px);line-height:.98;letter-spacing:-.05em;margin:0}
.process-row{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin-top:56px;background:rgba(215,255,56,.1)}
.process-row:before{content:"";position:absolute;left:0;right:0;top:-1px;height:2px;background:var(--lime);box-shadow:0 0 14px var(--lime);transform-origin:0;transform:scaleX(var(--step,0))}
.process article{padding:31px 27px 35px;background:#0e110b;min-height:230px;transition:background .4s}
.process article.is-reached{background:#12160d}
.process article>span{font-size:12px;color:var(--lime);letter-spacing:.14em}.process h3{font-size:25px;margin:45px 0 10px}.process article p{margin:0;color:#8f9688;font-size:14px;line-height:1.7}

/* --- Contact --- */
.contact{min-height:650px;background:var(--pale);color:var(--ink);padding:120px 7vw;display:flex;align-items:center;position:relative;overflow:hidden}
.contact-bg{position:absolute;width:700px;height:700px;border-radius:50%;right:-8%;top:50%;transform:translateY(-50%);background:radial-gradient(circle,rgba(215,255,56,calc(.16 * var(--lum))),rgba(215,255,56,calc(.04 * var(--lum))) 36%,transparent 68%);animation:pulse 6s ease-in-out infinite}@keyframes pulse{50%{transform:translateY(-50%) scale(1.08)}}
.contact-copy{max-width:770px;position:relative;z-index:2}.contact h2{font-size:clamp(50px,6vw,94px);line-height:.93;letter-spacing:-.06em;margin:0}.contact h2 em{font-style:normal;color:#6a7a12}
.contact-copy>p:not(.micro){max-width:620px;color:#4b5143;line-height:1.75;font-size:16px;margin:24px 0 30px}
.contact-actions{display:flex;flex-wrap:wrap;gap:24px;align-items:center}.contact .link{color:#5b6252}.contact .link:hover{color:var(--ink)}
.btn-dark{color:#151810;border-color:#20241a}.btn-dark:hover{background:#11140d;color:var(--lime)}
.contact-logo{position:absolute;right:5vw;bottom:8%;display:flex;flex-direction:column;opacity:.13}.contact-logo b{font-size:130px;letter-spacing:-.08em}.contact-logo span{font-size:21px;letter-spacing:.36em;color:#677a15}

footer{padding:48px 6vw 30px;background:#080a07;border-top:1px solid rgba(215,255,56,.12)}.footer-main{display:flex;justify-content:space-between;gap:40px;align-items:flex-end}.footer-brand{margin:0}.footer-main p{font-size:clamp(28px,4vw,58px);font-weight:900;letter-spacing:-.055em;margin:0;color:#e8ebe2}.footer-main p strong{color:var(--lime);text-shadow:0 0 calc(8px + 18px * var(--lum)) rgba(215,255,56,.35)}.footer-bottom{display:flex;justify-content:space-between;margin-top:42px;padding-top:20px;border-top:1px solid rgba(255,255,255,.08);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#7c8276}

/* --- Lightbox --- */
.lightbox{width:min(1200px,94vw);height:min(88vh,900px);max-width:none;max-height:none;padding:0;border:1px solid rgba(215,255,56,.25);border-radius:10px;background:#0d100a;color:var(--white);overflow:hidden}
.lightbox[open]{display:flex;flex-direction:column;animation:lbIn .4s var(--ease)}
html:has(.lightbox[open]){overflow:hidden}
.lightbox::backdrop{background:rgba(5,6,4,.82);backdrop-filter:blur(6px)}
@keyframes lbIn{from{opacity:0;transform:translateY(24px) scale(.98)}}
.lb-head{display:flex;align-items:center;gap:20px;padding:16px 22px;border-bottom:1px solid rgba(255,255,255,.08)}.lb-head h2{margin:0 auto 0 0;font-size:22px;letter-spacing:-.03em}
.lb-visit{font-size:12px;letter-spacing:.13em;text-transform:uppercase;color:var(--lime)}
.lb-close{width:40px;height:40px;font-size:28px;line-height:1;border-radius:50%;border:1px solid rgba(255,255,255,.15)}.lb-close:hover{border-color:var(--lime);color:var(--lime)}
.lb-body{flex:1;min-height:0;display:grid;grid-template-columns:1fr 300px;gap:24px;padding:22px}
.lb-desktop{overflow-y:auto;border-radius:6px;background:#fff;overscroll-behavior:contain}
.lb-mobile{align-self:start;max-height:100%;border:6px solid #1b1d18;border-radius:28px;overflow:hidden}.lb-mobile img{width:100%;height:100%;object-fit:cover;object-position:top}

.toast{position:fixed;z-index:150;left:50%;bottom:28px;transform:translate(-50%,calc(100% + 40px));visibility:hidden;padding:12px 18px;background:var(--lime);color:var(--ink);font-size:13px;font-weight:700;border-radius:6px;transition:transform .4s var(--ease),visibility 0s .4s;pointer-events:none}.toast.is-on{transform:translate(-50%,0);visibility:visible;transition:transform .4s var(--ease)}

/* --- Apparitions --- */
.js .enter{opacity:0;transform:translateY(22px);transition:opacity .8s ease,transform .8s var(--ease)}.js .enter.on{opacity:1;transform:none}.delay-1{transition-delay:.08s}.delay-2{transition-delay:.16s}.delay-3{transition-delay:.24s}.delay-4{transition-delay:.32s}
.hero .enter{transition-duration:1s}.hero .delay-2{transition-delay:1.1s}.hero .delay-3{transition-delay:1.25s}.hero .delay-4{transition-delay:1.4s}

/* --- Tablette --- */
@media(max-width:1000px){
  .nav{gap:12px}.nav-cta{display:none}.burger{display:block}
  .nav nav{position:fixed;inset:76px 0 auto;flex-direction:column;gap:0;padding:12px 22px 22px;background:rgba(8,10,7,.97);border:1px solid rgba(255,255,255,.07);border-radius:16px;font-size:15px;opacity:0;visibility:hidden;transform:translateY(-10px);transition:opacity .3s,transform .3s var(--ease),visibility 0s .3s}
  .nav nav a{padding:16px 0;border-bottom:1px solid rgba(255,255,255,.06)}.nav nav a:after{display:none}
  .nav.is-open nav{opacity:1;visibility:visible;transform:none;transition:opacity .3s,transform .3s var(--ease)}
  .nav nav{background:#080a07}
  .menu-cta{display:block;color:var(--lime);border-bottom:0!important}
  .hero{grid-template-columns:1fr}.hero-copy{z-index:4}.iceberg-wrap{position:absolute;right:-10vw;top:19%;width:55vw;height:70vh;opacity:.48;animation:none}.iceberg{width:55vw}
  .manifesto-inner{grid-template-columns:1fr}.manifesto-copy{grid-column:1;grid-row:auto;padding-top:0}
  .section-head{display:block}.section-head>p:last-child{margin-top:24px}.expertise-list{grid-template-columns:1fr}.exp{min-height:0}.exp h3{margin-top:36px}
  /* Projets : empilés verticalement */
  .projects{padding:100px 0}
  .projects-sticky{position:static;height:auto;overflow:visible;display:block}
  .projects-track{flex-direction:column;gap:28px;transform:none!important}
  .projects-intro{flex:none;margin-bottom:20px}.drag-hint,.projects-counter{display:none}
  .project{flex:none;height:auto;grid-template-columns:1fr}
  .project-visual{height:min(62vw,460px)}
  .projects-end{flex:none;padding:40px 0}
  .process-row{grid-template-columns:1fr 1fr}.contact-logo{opacity:.08}
  .lb-body{grid-template-columns:1fr;overflow-y:auto}.lb-desktop{overflow:visible}.lb-mobile{max-width:300px;justify-self:center}
}
/* --- Mobile --- */
@media(max-width:650px){
  .nav{top:8px;height:60px;width:calc(100% - 16px);padding:0 8px 0 14px}.brand b{font-size:16px}.brand span{font-size:10px}.nav nav{inset:72px 8px auto}
  .hero{height:auto;min-height:100svh;padding:100px 20px 80px;display:block}.hero-copy{margin-top:40px}
  .h-pro{font-size:78px}.h-inv{font-size:24px}.tagline{font-size:31px}.hero-text{font-size:15px}
  .hero-actions{flex-direction:column;align-items:flex-start;gap:20px}
  .iceberg-wrap{width:78vw;height:410px;right:-22vw;top:auto;bottom:-10px;opacity:.25}.iceberg{width:78vw}
  .scroll-hint{left:20px}
  .manifesto,.expertise,.process,.contact{padding:84px 20px}.projects{padding:84px 0}.projects-track{padding:0 20px}
  .manifesto h2,.section-head h2,.projects-intro h2,.contact h2,.process-title{font-size:42px}
  .stats{gap:24px}.stats dd{font-size:44px}
  .project-visual{height:300px;padding:8% 0 0 8%}.phone{width:30%;right:4%}
  .project-copy{padding:28px 24px 32px}
  .process-row{grid-template-columns:1fr}
  .contact-logo b{font-size:80px}.contact-logo span{font-size:13px}
  .footer-main{display:block}.footer-main p{margin-top:30px;font-size:36px}.footer-bottom{flex-direction:column;gap:12px}
  .lightbox{width:100vw;height:100svh;border-radius:0}.lb-body{padding:14px}
  .lb-head{gap:12px;padding:12px 14px}.lb-head h2{font-size:18px}.lb-visit{white-space:nowrap}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*:before,*:after{animation-duration:.001ms!important;animation-delay:0s!important;animation-iteration-count:1!important;transition-duration:.001ms!important;transition-delay:0s!important}
  .js .enter{opacity:1;transform:none}.light-words .w{opacity:1}
  .projects{padding:100px 0;height:auto!important}.projects-sticky{position:static;height:auto;overflow:visible;display:block}
  .projects-track{flex-direction:column;gap:28px;transform:none!important}.projects-intro{flex:none}.drag-hint,.projects-counter{display:none}
  .project{flex:none;height:auto;grid-template-columns:1fr}.project-visual{height:min(46vw,460px)}.projects-end{flex:none;padding:40px 0}
  @media(min-width:1001px){.project{grid-template-columns:1.25fr .75fr}.project-visual{height:460px}.phone{width:min(24%,170px)}}
  .cursor-halo,.cursor-dot{display:none!important}
}

/* --- Pages simples (mentions légales, 404) --- */
.simple-page{background:var(--bg)}
.simple{max-width:760px;margin:0 auto;padding:60px 20px 100px;line-height:1.75;color:#c7cdbd}
.simple .brand{margin-bottom:70px}
.simple h1{font-size:clamp(40px,6vw,72px);line-height:.98;letter-spacing:-.05em;color:var(--white);margin:0 0 30px}.simple h1 em{font-style:normal;color:var(--lime)}
.simple h2{font-size:20px;color:var(--white);margin:40px 0 8px}
.simple a:not(.btn):not(.brand){color:var(--lime);text-decoration:underline;text-underline-offset:3px}
.simple .btn{margin-top:20px}
