/* ═══════════════════════════════════════════════════════════════════════════
   FOCUS PRODUCTION — Vitrine
   Concept : « faire le focus » — mise au point, viseur, profondeur de champ.
   ═══════════════════════════════════════════════════════════════════════════ */

@font-face{font-family:"Focus Display";src:url(fonts/interdisplay-900.woff) format("woff");font-weight:900;font-display:swap}
@font-face{font-family:"Focus Display";src:url(fonts/interdisplay-800.woff) format("woff");font-weight:800;font-display:swap}
@font-face{font-family:"Focus Display";src:url(fonts/interdisplay-500.woff) format("woff");font-weight:500;font-display:swap}
@font-face{font-family:"Focus Sans";src:url(fonts/inter-400.woff) format("woff");font-weight:400;font-display:swap}
@font-face{font-family:"Focus Sans";src:url(fonts/inter-500.woff) format("woff");font-weight:500;font-display:swap}
@font-face{font-family:"Focus Sans";src:url(fonts/inter-600.woff) format("woff");font-weight:600 700;font-display:swap}
@font-face{font-family:"Focus Serif";src:url(fonts/lora-italic.woff) format("woff");font-weight:400 700;font-style:italic;font-display:swap}
@font-face{font-family:"Focus Mono";src:url(fonts/mono-400.woff) format("woff");font-weight:400;font-display:swap}

:root{
 --paper:#faf8f3;--paper-2:#f1ede5;--paper-3:#e8e3d9;
 --ink:#141414;--ink-2:#1d1c1b;--ink-3:#2a2826;
 --lilac:#c8bdf0;--lilac-2:#ad9de6;--lilac-deep:#6e58b0;--lilac-wash:#ede8fa;
 --rec:#ff4b3e;
 --muted:#6c6760;--muted-light:#a6a19a;
 --line:rgba(20,20,20,.13);--line-light:rgba(250,248,243,.14);
 --display:"Focus Display","Focus Sans",Arial,sans-serif;
 --sans:"Focus Sans",Arial,Helvetica,sans-serif;
 --serif:"Focus Serif",Georgia,"Times New Roman",serif;
 --mono:"Focus Mono",ui-monospace,Menlo,Consolas,monospace;
 --gutter:clamp(20px,5vw,80px);
 --ease:cubic-bezier(.2,.75,.2,1);
 --ease-io:cubic-bezier(.7,0,.2,1);
 --nav-h:84px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:90px}
body{margin:0;background:var(--paper);color:var(--ink);font:400 16px/1.6 var(--sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overflow-x:hidden}
img,video,canvas,svg{display:block;max-width:100%}
img{width:100%;object-fit:cover}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
button{background:none;border:0;padding:0;cursor:pointer}
p{margin:0 0 1em}
h1,h2,h3{margin:0;font-weight:800}
em,.serif{font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:-.02em}
.mono{font-family:var(--mono);font-weight:400;letter-spacing:.06em;font-variant-numeric:tabular-nums}
::selection{background:var(--lilac);color:var(--ink)}
:focus-visible{outline:2px solid var(--lilac-deep);outline-offset:4px;border-radius:2px}
.dark :focus-visible,.footer :focus-visible{outline-color:var(--lilac)}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
[hidden]{display:none!important}
.skip{position:fixed;left:16px;top:-80px;z-index:200;background:var(--ink);color:var(--paper);padding:12px 18px;border-radius:40px}
.skip:focus{top:12px}

/* Grain pellicule */
.grain{position:fixed;inset:-50%;z-index:90;pointer-events:none;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:grain 1.2s steps(6) infinite}
@keyframes grain{0%{transform:translate(0,0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-3%)}60%{transform:translate(-2%,-1%)}80%{transform:translate(3%,3%)}100%{transform:translate(0,0)}}

/* ───────── Curseur autofocus ───────── */
.cursor{position:fixed;left:0;top:0;z-index:150;pointer-events:none;display:none}
.has-cursor .cursor{display:block}
.has-cursor,.has-cursor a,.has-cursor button,.has-cursor summary,.has-cursor label{cursor:none}
.has-cursor input,.has-cursor textarea,.has-cursor select{cursor:auto}
.cursor-dot{position:fixed;left:0;top:0;width:6px;height:6px;margin:-3px 0 0 -3px;border-radius:50%;background:var(--ink);transition:opacity .2s,background .2s}
.cursor-box{position:fixed;left:0;top:0;width:36px;height:36px;transform:translate(-50%,-50%);transition:width .35s var(--ease),height .35s var(--ease),opacity .25s}
.cursor-box i{position:absolute;width:9px;height:9px;border:1.5px solid var(--ink);transition:border-color .25s,width .3s,height .3s}
.cursor-box i:nth-child(1){left:0;top:0;border-right:0;border-bottom:0}
.cursor-box i:nth-child(2){right:0;top:0;border-left:0;border-bottom:0}
.cursor-box i:nth-child(3){left:0;bottom:0;border-right:0;border-top:0}
.cursor-box i:nth-child(4){right:0;bottom:0;border-left:0;border-top:0}
.cursor-label{position:fixed;left:0;top:0;font:500 10px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;background:var(--lilac);color:var(--ink);padding:5px 7px 4px;border-radius:2px;opacity:0;transform:translate(14px,14px) scale(.8);transition:opacity .2s,transform .3s var(--ease);white-space:nowrap}
.cursor.is-lock .cursor-box i{border-color:var(--lilac-deep);width:12px;height:12px}
.cursor.is-lock .cursor-dot{opacity:0}
.cursor.has-label .cursor-label{opacity:1;transform:translate(14px,14px) scale(1)}
.cursor.on-dark .cursor-box i{border-color:var(--paper)}
.cursor.on-dark .cursor-dot{background:var(--paper)}
.cursor.on-dark.is-lock .cursor-box i{border-color:var(--lilac)}
.cursor.is-down .cursor-box{width:26px;height:26px}
.cursor.is-hidden{opacity:0}

/* ───────── Boutons ───────── */
.btn{position:relative;display:inline-flex;align-items:center;gap:14px;min-height:54px;padding:0 10px 0 26px;border-radius:60px;font:500 15px/1 var(--sans);letter-spacing:-.01em;white-space:nowrap;transition:background .3s,color .3s,border-color .3s,transform .35s var(--ease);will-change:transform;isolation:isolate;overflow:hidden}
.btn i{font-style:normal;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;font-size:15px;transition:transform .4s var(--ease),background .3s}
.btn:hover i{transform:rotate(-45deg)}
.btn-ink{background:var(--ink);color:var(--paper)}
.btn-ink i{background:var(--lilac);color:var(--ink)}
.btn-ink:hover{background:var(--lilac-deep)}
.btn-line{border:1px solid currentColor;color:var(--ink)}
.btn-line i{background:var(--ink);color:var(--paper)}
.btn-line:hover{background:var(--ink);color:var(--paper)}
.btn-line:hover i{background:var(--lilac);color:var(--ink)}
.btn-lilac{background:var(--lilac);color:var(--ink);padding:0 24px}
.btn-lilac:hover{background:var(--paper)}
.btn-line-light{border:1px solid var(--line-light);color:var(--paper);padding:0 24px}
.btn-line-light:hover{border-color:var(--paper)}
.btn-sm{min-height:44px;font-size:13px;padding:0 20px}
.btn-xl{min-height:64px;font-size:16px;padding-left:30px}
.btn:disabled{opacity:.4;cursor:not-allowed}
.link-arrow{display:inline-flex;align-items:center;gap:10px;font-weight:500;border-bottom:1px solid currentColor;padding-bottom:6px;transition:gap .3s var(--ease),color .2s}
.link-arrow:hover{gap:18px;color:var(--lilac-deep)}
.dark .link-arrow:hover{color:var(--lilac)}
.link-under{border-bottom:1px solid currentColor}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font:500 11px/1.3 var(--mono);letter-spacing:.16em;text-transform:uppercase}
.chips{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}
.chips li{border:1px solid var(--line);border-radius:40px;padding:7px 14px;font-size:13px}
.dark .chips li{border-color:var(--line-light)}
.rec-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--rec);margin-right:8px;vertical-align:1px;animation:blink 1.4s steps(2) infinite}
.pulse-dot{width:8px;height:8px;border-radius:50%;background:var(--lilac-deep);box-shadow:0 0 0 0 rgba(110,88,176,.5);animation:pulse 2s infinite}
@keyframes blink{50%{opacity:.15}}
@keyframes pulse{70%{box-shadow:0 0 0 10px rgba(110,88,176,0)}100%{box-shadow:0 0 0 0 rgba(110,88,176,0)}}

/* ───────── Navigation ───────── */
.nav{position:fixed;inset:0 0 auto;z-index:60;height:var(--nav-h);padding:0 var(--gutter);display:flex;align-items:center;justify-content:space-between;transition:transform .5s var(--ease),background .4s,color .4s,height .4s}
.nav::before{content:"";position:absolute;inset:0;z-index:-1;background:rgba(250,248,243,.78);backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);border-bottom:1px solid var(--line);opacity:0;transition:opacity .4s}
.nav.is-scrolled::before{opacity:1}
.nav.is-scrolled{--nav-h:70px}
.nav.is-hidden{transform:translateY(-105%)}
.nav.on-dark{color:var(--paper)}
.nav.on-dark::before{background:rgba(20,20,20,.72);border-color:var(--line-light)}
.logo{display:inline-grid;grid-template-columns:auto auto;align-items:end;line-height:.82;position:relative;z-index:2}
.logo-word{font:900 30px/.82 var(--display);letter-spacing:-.065em}
.logo-dot{width:9px;height:9px;border-radius:50%;background:var(--lilac);margin:0 0 2px 3px;transition:transform .5s var(--ease)}
.logo:hover .logo-dot{transform:scale(1.6)}
.logo small{grid-column:1/-1;font:500 8.5px/1 var(--mono);letter-spacing:.48em;margin-top:8px}
.nav-links{display:flex;align-items:center;gap:clamp(16px,2.2vw,34px);font-size:14px}
.nav-links>a:not(.nav-cta){position:relative;padding:6px 0}
.nav-links>a:not(.nav-cta)::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease)}
.nav-links>a:not(.nav-cta):hover::after,.nav-links>a.is-active::after{transform:scaleX(1);transform-origin:left}
.nav-client{display:inline-flex;align-items:center;gap:7px;opacity:.75}
.nav-client svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.6}
.nav-client:hover{opacity:1}
.nav-cta{display:inline-flex;align-items:center;gap:12px;background:var(--ink);color:var(--paper);border-radius:40px;padding:12px 12px 12px 20px;font-weight:500;transition:background .3s}
.nav-cta i{width:9px;height:9px;border-radius:50%;background:var(--lilac);transition:transform .4s var(--ease)}
.nav-cta:hover{background:var(--lilac-deep)}
.nav-cta:hover i{transform:scale(1.5)}
.on-dark .nav-cta{background:var(--paper);color:var(--ink)}
.on-dark .nav-cta:hover{background:var(--lilac)}
.menu{display:none;align-items:center;gap:12px;font-size:13px;font-weight:500;position:relative;z-index:2;padding:10px 0}
.menu-icon{position:relative;width:26px;height:10px}
.menu-icon i{position:absolute;left:0;right:0;height:1.5px;background:currentColor;transition:transform .45s var(--ease),top .45s var(--ease)}
.menu-icon i:first-child{top:0}.menu-icon i:last-child{top:8px}
.menu[aria-expanded=true] .menu-icon i:first-child{top:4px;transform:rotate(45deg)}
.menu[aria-expanded=true] .menu-icon i:last-child{top:4px;transform:rotate(-45deg)}

/* ───────── Échelle de mise au point (progression) ───────── */
.lens-scale{position:fixed;right:22px;top:50%;z-index:40;height:46vh;transform:translateY(-50%);display:none;pointer-events:none;mix-blend-mode:difference;color:#fff;opacity:0;transition:opacity .5s}
.lens-scale.is-on{opacity:1}
.lens-scale:not(.is-on) a{pointer-events:none!important}
.lens-track{position:absolute;right:0;top:0;bottom:0;width:1px;background:rgba(255,255,255,.35)}
.lens-needle{position:absolute;right:-4px;width:9px;height:9px;border-radius:50%;background:#fff;top:0;transform:translateY(-50%)}
.lens-marks{position:absolute;right:12px;top:0;bottom:0;width:60px}
.lens-marks a{position:absolute;right:0;transform:translateY(-50%);font:400 10px/1 var(--mono);letter-spacing:.08em;opacity:.55;pointer-events:auto;padding:4px 0;transition:opacity .2s}
.lens-marks a:hover,.lens-marks a.is-active{opacity:1}
@media(min-width:1180px){.lens-scale{display:block}}

/* ───────── Révélations « rack focus » ───────── */
.js .reveal{opacity:0;transform:translateY(22px);transition:opacity .8s var(--ease),transform .9s var(--ease)}
.js .reveal.is-in{opacity:1;transform:none}
.statement .w{display:inline-block;transition:filter .5s,opacity .5s;will-change:filter}

/* ═════════════ HERO ═════════════ */
.hero{position:relative;min-height:100svh;padding:calc(var(--nav-h) + 30px) var(--gutter) 150px;display:flex;flex-direction:column;justify-content:center;overflow:hidden;isolation:isolate}
.viewfinder{position:absolute;inset:calc(var(--nav-h) + 6px) clamp(12px,2.2vw,32px) 26px;pointer-events:none;z-index:1}
.vf-corner{position:absolute;width:26px;height:26px;border:1.5px solid currentColor;opacity:.75}
.vf-corner.tl{left:0;top:0;border-right:0;border-bottom:0}
.vf-corner.tr{right:0;top:0;border-left:0;border-bottom:0}
.vf-corner.bl{left:0;bottom:0;border-right:0;border-top:0}
.vf-corner.br{right:0;bottom:0;border-left:0;border-top:0}
.osd{position:absolute;display:flex;gap:18px;font:400 11px/1 var(--mono);letter-spacing:.1em;color:var(--ink);opacity:.8}
.osd-tl{left:40px;top:6px}.osd-tr{right:40px;top:6px}.osd-bl{left:40px;bottom:6px}.osd-br{right:40px;bottom:6px;align-items:center}
.rec{display:inline-flex;align-items:center;gap:7px}
.rec b{width:8px;height:8px;border-radius:50%;background:var(--rec);animation:blink 1.4s steps(2) infinite}
.battery{display:inline-flex;gap:2px;border:1px solid currentColor;padding:2px;position:relative}
.battery::after{content:"";position:absolute;right:-4px;top:3px;width:2px;height:4px;background:currentColor}
.battery i{width:4px;height:6px;background:currentColor}
.battery i:last-child{opacity:.25}
.hero:hover 
















@keyframes spin{to{transform:rotate(360deg)}}

.hero-inner{position:relative;z-index:2;max-width:1600px;width:100%;margin:0 auto}
.hero-eyebrow{margin-bottom:clamp(18px,3vh,36px)}
.hero-title{display:flex;flex-direction:column;line-height:.8;font-weight:900}
.hero-line{font-size:clamp(34px,5.4vw,92px);line-height:1;letter-spacing:-.035em;display:block}
.hero-line.right{align-self:flex-end;margin-right:4vw;margin-top:.12em}
.focus-word{display:flex;align-items:flex-end;font:900 clamp(108px,24vw,400px)/.78 var(--display);letter-spacing:-.035em;margin-left:-.04em;user-select:none}
.focus-word>span{display:inline-block;transition:filter .45s var(--ease),transform .6s var(--ease),opacity .45s;will-change:filter}
.focus-dot{width:.15em;height:.15em;border-radius:50%;background:var(--ink);margin:0 0 .05em .04em;flex-shrink:0;position:relative}
.focus-dot::after{content:"";position:absolute;inset:-.035em;border:2px solid var(--lilac-deep);border-radius:50%;opacity:0;transform:scale(.6);transition:opacity .3s,transform .5s var(--ease)}
.hero.is-locked .focus-dot::after{opacity:1;transform:scale(1)}
.js .focus-word:not(.is-ready)>span{filter:blur(22px);opacity:.25}
.hero-foot{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-top:clamp(26px,4.5vh,56px)}
.hero-copy{max-width:470px;font-size:clamp(16px,1.25vw,19px);line-height:1.55;margin:0}
.hero-copy strong{font-weight:600;background:linear-gradient(transparent 62%,var(--lilac) 0);padding:0 2px}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px}

.focus-scale{position:absolute;left:var(--gutter);right:var(--gutter);bottom:46px;height:44px;z-index:3;touch-action:none;outline-offset:6px}
.fs-ticks{position:absolute;inset:0 0 auto;height:24px;display:flex;justify-content:space-between;align-items:flex-start}
.fs-ticks span{position:relative;width:1px;height:8px;background:var(--ink);opacity:.35}
.fs-ticks span.major{height:14px;opacity:.75}
.fs-ticks span b{position:absolute;top:18px;left:50%;transform:translateX(-50%);font:400 10px/1 var(--mono);letter-spacing:.06em;white-space:nowrap;opacity:.9}
.fs-needle{position:absolute;top:-8px;left:50%;width:0;height:30px;transition:left .5s var(--ease)}
.fs-needle::before{content:"";position:absolute;left:-1px;top:0;width:2px;height:24px;background:var(--lilac-deep)}
.fs-needle b{position:absolute;left:-6px;top:-8px;width:12px;height:12px;background:var(--lilac-deep);clip-path:polygon(0 0,100% 0,50% 100%)}
.fs-hint{position:absolute;right:0;top:-26px;font-size:10px;letter-spacing:.14em;text-transform:uppercase;opacity:.6}
.hint-touch{display:none}
@media(hover:none){.hint-desk{display:none}.hint-touch{display:inline}}

/* ═════════════ BANDEAU ═════════════ */
.ticker{position:relative;z-index:2;background:var(--lilac);color:var(--ink);overflow:hidden;white-space:nowrap;padding:18px 0;font:800 clamp(24px,3vw,44px)/1 var(--display);letter-spacing:-.04em;margin-top:-1px}
.ticker-track{display:flex;width:max-content;animation:ticker 40s linear infinite}
.ticker-group{display:flex;align-items:center;gap:.5em;padding-right:.5em;flex-shrink:0}
.ticker-group i{font-style:normal;font-size:.45em;color:var(--lilac-deep)}
.ticker-group .serif{font-weight:400}
@keyframes ticker{to{transform:translateX(-50%)}}

/* ═════════════ SECTIONS ═════════════ */
.section{position:relative;padding:clamp(90px,12vw,170px) var(--gutter)}
.section>*{max-width:1600px;margin-left:auto;margin-right:auto}
.dark{background:var(--ink);color:var(--paper)}
.manifesto+.work{padding-top:clamp(40px,5vw,80px)}
.manifesto{padding-bottom:clamp(70px,8vw,120px)}
.section-label{display:flex;align-items:center;gap:14px;font:500 11px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;margin-bottom:28px}
.section-label span{display:inline-grid;place-items:center;min-width:30px;height:30px;padding:0 8px;border:1px solid currentColor;border-radius:30px;font-size:10px}
h2{font:800 clamp(46px,7vw,118px)/.98 var(--display);letter-spacing:-.055em}
h2 em{font-weight:400;letter-spacing:-.04em}
.dark h2 em{color:var(--lilac)}
.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:50px;margin-bottom:clamp(44px,6vw,80px)}
.section-intro{max-width:390px;font-size:16px;color:var(--muted);margin:0}
.dark .section-intro{color:var(--muted-light)}

/* 01 — Manifeste */
.statement{font:500 clamp(28px,4.1vw,68px)/1.12 var(--display);letter-spacing:-.04em;max-width:1350px;margin-bottom:clamp(60px,8vw,120px)}
.statement em{color:var(--lilac-deep)}
.meanings{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,1.6vw,24px)}
.meaning{position:relative;border:1px solid var(--line);border-radius:4px;padding:34px 30px 30px;min-height:330px;display:flex;flex-direction:column;transition:background .5s,border-color .5s;overflow:hidden}
.meaning:hover{background:var(--paper-2);border-color:transparent}
.meaning h3{font:800 clamp(30px,2.6vw,42px)/1 var(--display);letter-spacing:-.045em;margin:auto 0 14px}
.meaning h3 em{color:var(--lilac-deep)}
.meaning p{font-size:15px;color:var(--muted);margin:0;max-width:340px}
.m-num{position:absolute;right:26px;top:30px;font-size:11px;opacity:.6}
.m-icon{position:relative;width:78px;height:78px}
.m-lens i{position:absolute;border-radius:50%;border:1px solid var(--ink);transition:transform .8s var(--ease)}
.m-lens i:nth-child(1){inset:0}.m-lens i:nth-child(2){inset:13px;background:var(--lilac);border-color:transparent}.m-lens i:nth-child(3){inset:28px;background:var(--ink)}
.meaning:hover .m-lens i:nth-child(2){transform:scale(1.18)}
.meaning:hover .m-lens i:nth-child(3){transform:scale(.6)}
.m-af i{position:absolute;width:18px;height:18px;border:1.5px solid var(--ink);transition:inset .6s var(--ease),left .6s var(--ease),top .6s var(--ease),right .6s var(--ease),bottom .6s var(--ease),border-color .3s}
.m-af i:nth-child(1){left:0;top:0;border-right:0;border-bottom:0}.m-af i:nth-child(2){right:0;top:0;border-left:0;border-bottom:0}
.m-af i:nth-child(3){left:0;bottom:0;border-right:0;border-top:0}.m-af i:nth-child(4){right:0;bottom:0;border-left:0;border-top:0}
.m-af b{position:absolute;inset:32px;border-radius:50%;background:var(--lilac-deep);transition:transform .5s var(--ease)}
.meaning:hover .m-af i:nth-child(1){left:16px;top:16px}.meaning:hover .m-af i:nth-child(2){right:16px;top:16px}
.meaning:hover .m-af i:nth-child(3){left:16px;bottom:16px}.meaning:hover .m-af i:nth-child(4){right:16px;bottom:16px}
.meaning:hover .m-af i{border-color:var(--lilac-deep)}
.m-target i{position:absolute;background:var(--ink);transition:transform .7s var(--ease)}
.m-target i:nth-child(1){left:0;right:0;top:50%;height:1px}.m-target i:nth-child(2){top:0;bottom:0;left:50%;width:1px}
.m-target b{position:absolute;inset:20px;border-radius:50%;border:1.5px solid var(--ink);transition:inset .6s var(--ease),background .4s}
.meaning:hover .m-target b{inset:30px;background:var(--lilac)}
.meaning:hover .m-target i{transform:rotate(90deg)}
.facts{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);margin-top:clamp(60px,7vw,100px)}
.fact{padding:30px 26px 0 0;border-right:1px solid var(--line);margin-right:26px}
.fact:last-child{border:0;margin:0}
.fact strong{display:flex;align-items:baseline;font:800 clamp(44px,5vw,78px)/1 var(--display);letter-spacing:-.06em}
.fact strong small{font-size:.42em;letter-spacing:-.02em;margin-left:4px;color:var(--lilac-deep)}
.fact>span{display:block;margin-top:14px;font-size:14px;color:var(--muted);max-width:230px}

/* 02 — Réalisations */
.filters{display:flex;flex-wrap:wrap;gap:8px}
.filters button{border:1px solid var(--line);border-radius:40px;padding:11px 18px;font-size:14px;transition:background .3s,color .3s,border-color .3s}
.filters button sup{font:400 9px/1 var(--mono);margin-left:3px;opacity:.6}
.filters button:hover{border-color:var(--ink)}
.filters button.active{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.preview-note{display:flex;align-items:center;font-size:14px;background:var(--paper-2);border-radius:4px;padding:16px 20px;margin-bottom:34px}
.work-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(40px,4vw,64px) clamp(16px,1.8vw,28px)}
.work-card{grid-column:span 6;text-align:left;display:block;min-width:0}
.work-card.is-wide{grid-column:span 12}
.work-card.is-wide .work-visual{aspect-ratio:21/9}
.work-visual{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;border-radius:4px;background:var(--lilac-wash)}
.work-visual img{position:absolute;inset:0;height:100%;filter:blur(5px) saturate(.6);transform:scale(1.06);transition:filter .9s var(--ease),transform 1.2s var(--ease)}
.work-card:hover .work-visual img,.work-card:focus-visible .work-visual img{filter:none;transform:scale(1.01)}
.af-frame{position:absolute;inset:18%;opacity:0;transition:inset .7s var(--ease),opacity .4s;pointer-events:none;z-index:2}
.af-frame i{position:absolute;width:24px;height:24px;border:2px solid var(--paper)}
.af-frame i:nth-child(1){left:0;top:0;border-right:0;border-bottom:0}.af-frame i:nth-child(2){right:0;top:0;border-left:0;border-bottom:0}
.af-frame i:nth-child(3){left:0;bottom:0;border-right:0;border-top:0}.af-frame i:nth-child(4){right:0;bottom:0;border-left:0;border-top:0}
.work-card:hover .af-frame,.work-card:focus-visible .af-frame{inset:24px;opacity:1}
.art-0 .af-frame i,.art-1 .af-frame i{border-color:var(--ink)}
.work-index{position:absolute;left:24px;top:22px;font-size:10px;letter-spacing:.16em;z-index:3}
.work-arrow{position:absolute;right:20px;bottom:20px;z-index:3;width:54px;height:54px;border-radius:50%;display:grid;place-items:center;background:var(--paper);color:var(--ink);font-size:20px;transform:scale(.85);transition:transform .5s var(--ease),background .3s}
.work-card:hover .work-arrow{transform:scale(1.06);background:var(--lilac)}
.work-meta{display:grid;grid-template-columns:1fr auto;gap:6px 20px;padding-top:20px}
.work-title{font:800 clamp(22px,2vw,30px)/1.1 var(--display);letter-spacing:-.04em}
.work-sub{grid-column:1;color:var(--muted);font-size:15px}
.work-tags{grid-column:2;grid-row:1;font-size:11px;opacity:.6;align-self:center}
/* Compositions graphiques (mires) */
.mire{position:absolute;inset:0;transition:filter .9s var(--ease),transform 1.2s var(--ease);filter:blur(3px);transform:scale(1.04)}
.work-card:hover .mire{filter:none;transform:none}
.mire i{position:absolute}
.art-0 .work-visual{background:var(--lilac)}
.art-0 .mire i:nth-child(1){width:min(62%,560px);aspect-ratio:1;right:-6%;top:50%;transform:translateY(-50%);border-radius:50%;border:clamp(24px,4vw,56px) solid var(--ink)}
.art-0 .mire i:nth-child(2){width:min(36%,320px);aspect-ratio:1;right:calc(min(62%,560px)/2 - 6% - min(36%,320px)/2);top:50%;transform:translateY(-50%);border-radius:50%;border:1px solid var(--ink)}
.art-0 .mire i:nth-child(3){width:4%;aspect-ratio:1;right:calc(min(62%,560px)/2 - 6% - 2%);top:50%;transform:translateY(-50%);border-radius:50%;background:var(--paper)}
.art-0 .mire i:nth-child(n+4){left:0;right:0;height:1px;background:rgba(20,20,20,.15)}
.art-0 .mire i:nth-child(4){top:25%}.art-0 .mire i:nth-child(5){top:50%}.art-0 .mire i:nth-child(6){top:75%}
.art-1 .work-visual{background:var(--paper-3)}
.art-1 .mire{display:flex}
.art-1 .mire i{position:relative;flex:1;height:68%}
.art-1 .mire i:nth-child(1){background:#faf8f3}.art-1 .mire i:nth-child(2){background:#e1dbef}.art-1 .mire i:nth-child(3){background:var(--lilac)}.art-1 .mire i:nth-child(4){background:var(--lilac-2)}.art-1 .mire i:nth-child(5){background:var(--lilac-deep)}.art-1 .mire i:nth-child(6){background:#3b3450}.art-1 .mire i:nth-child(7){background:var(--ink)}
.art-2 .work-visual{background:var(--ink);color:var(--paper)}
.art-2 .mire i:nth-child(1){width:70%;aspect-ratio:1;left:30%;top:-20%;border-radius:20% 50%;border:clamp(20px,3vw,40px) solid var(--lilac);transform:rotate(-20deg)}
.art-2 .mire i:nth-child(2){width:24%;aspect-ratio:1;right:10%;bottom:10%;border-radius:50%;background:radial-gradient(circle,rgba(200,189,240,.6),transparent 70%)}
.art-2 .mire i:nth-child(3){width:12%;aspect-ratio:1;left:56%;top:30%;border-radius:50%;background:radial-gradient(circle,rgba(250,248,243,.5),transparent 70%)}
.art-title{position:absolute;left:26px;bottom:26px;z-index:2;font:900 clamp(40px,5.6vw,92px)/.86 var(--display);letter-spacing:-.06em}
.art-title em{font-weight:400}

.filter-empty{padding:40px 0;color:var(--muted)}

/* Confiance */
.trust{padding-top:0}
.logos{overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.logos-track{display:flex;width:max-content;animation:ticker 50s linear infinite}
.logos-group{display:flex;flex-shrink:0}
.logo-item{display:grid;place-items:center;min-width:220px;height:110px;padding:0 40px;font:800 22px/1 var(--display);letter-spacing:-.03em;opacity:.55;transition:opacity .3s}
.logo-item:hover{opacity:1}
.logo-item img{max-height:44px;width:auto;object-fit:contain;filter:grayscale(1)}
.quotes{position:relative;margin-top:clamp(60px,7vw,100px);min-height:280px}
.quote{margin:0;position:absolute;inset:0;opacity:0;filter:blur(12px);transition:opacity .8s var(--ease),filter .8s var(--ease);pointer-events:none}
.quote.is-active{position:relative;opacity:1;filter:none;pointer-events:auto}
.quote blockquote{margin:0 0 28px;font:500 clamp(26px,3.4vw,52px)/1.15 var(--display);letter-spacing:-.035em;max-width:1200px}
.quote figcaption{display:flex;gap:14px;align-items:baseline;font-size:15px}
.quote figcaption span{color:var(--muted)}
.quote-nav{display:flex;align-items:center;gap:18px;margin-top:30px}
.quote-nav button{width:48px;height:48px;border:1px solid var(--line);border-radius:50%;transition:background .3s}
.quote-nav button:hover{background:var(--ink);color:var(--paper)}

/* 03 — Savoir-faire */
.craft{overflow:hidden}
.craft-list{border-top:1px solid var(--line-light)}
.craft-item{border-bottom:1px solid var(--line-light)}
.craft-item summary{list-style:none;display:grid;grid-template-columns:70px 1fr 50px;align-items:center;gap:20px;padding:clamp(22px,2.6vw,38px) 0;transition:padding .5s var(--ease),color .3s}
.craft-item summary::-webkit-details-marker{display:none}
.craft-item summary .mono{font-size:12px;color:var(--lilac)}
.craft-title{font:800 clamp(32px,5.2vw,86px)/1 var(--display);letter-spacing:-.055em;transition:transform .6s var(--ease),color .4s}
.craft-item summary:hover .craft-title{transform:translateX(18px);color:var(--lilac)}
.craft-item summary b{position:relative;width:44px;height:44px;border:1px solid var(--line-light);border-radius:50%;justify-self:end}
.craft-item summary b::before,.craft-item summary b::after{content:"";position:absolute;left:50%;top:50%;width:14px;height:1.5px;background:currentColor;transform:translate(-50%,-50%);transition:transform .4s var(--ease)}
.craft-item summary b::after{transform:translate(-50%,-50%) rotate(90deg)}
.craft-item[open] summary b::after{transform:translate(-50%,-50%) rotate(0)}
.craft-item[open] summary b{background:var(--lilac);border-color:var(--lilac);color:var(--ink)}
.craft-body{display:grid;grid-template-columns:70px 1.1fr 1fr;gap:20px;padding:0 0 40px;align-items:start}
.craft-body p{grid-column:2;color:#cfcac2;font-size:17px;max-width:560px;margin:0}
.craft-body .chips{grid-column:3}
.craft-body .link-arrow{grid-column:2;justify-self:start;margin-top:8px}
.craft-item[open] .craft-body{animation:rack .8s var(--ease)}
@keyframes rack{from{opacity:0;filter:blur(10px);transform:translateY(-8px)}}
.craft-lens{position:absolute;left:0;top:0;width:150px;height:150px;border-radius:50%;background:var(--lilac);color:var(--ink);display:grid;place-items:center;pointer-events:none;opacity:0;transform:translate(-50%,-50%) scale(.3);transition:opacity .35s,transform .5s var(--ease);mix-blend-mode:difference;z-index:3;margin:0}
.craft-lens span{font-size:12px;letter-spacing:.2em}
.craft.lens-on .craft-lens{opacity:1;transform:translate(-50%,-50%) scale(1)}

/* 04 — Méthode */
.steps{list-style:none;margin:0 auto;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:24px;position:relative}
.steps::before{content:"";position:absolute;left:0;right:0;top:51px;height:1px;background:var(--line)}
.steps-line{position:absolute;left:0;right:0;top:51px;height:1px;background:var(--lilac-deep);transform-origin:left;transform:scaleX(var(--p,0));z-index:0;transition:transform .2s linear}
.steps-progress{display:none}
.step{position:relative}
.step-num{display:block;font-size:11px;opacity:.6;margin-bottom:28px}
.step-dot{position:absolute;top:44px;left:0;width:15px;height:15px;border-radius:50%;background:var(--paper);border:1.5px solid var(--ink);transition:background .5s,transform .5s var(--ease),border-color .5s;z-index:1}
.step.is-on .step-dot{background:var(--lilac);border-color:var(--lilac-deep);transform:scale(1.3)}
.step-verb{display:block;margin-top:40px;font-size:clamp(20px,1.7vw,26px);color:var(--lilac-deep)}
.step h3{font:800 clamp(22px,1.8vw,28px)/1.1 var(--display);letter-spacing:-.04em;margin:6px 0 12px}
.step p{font-size:15px;color:var(--muted);margin:0}

/* 05 — Équipe */
.team{background:var(--paper-2)}
.team-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2vw,30px)}
.portrait{position:relative;aspect-ratio:1;background:var(--lilac);border-radius:4px;display:grid;place-items:center;overflow:hidden;isolation:isolate}
.portrait-orb{position:relative;width:64%;aspect-ratio:1;border-radius:50%;z-index:1}
.portrait-orb::before,.portrait-orb::after{content:"";position:absolute;border:1px solid rgba(20,20,20,.3);border-radius:50%;pointer-events:none;transition:inset .8s var(--ease)}
.portrait-orb::before{inset:-8%}.portrait-orb::after{inset:-17%;border-color:rgba(20,20,20,.14)}
.portrait:hover .portrait-orb::before{inset:-4%}.portrait:hover .portrait-orb::after{inset:-10%}
.portrait-orb img{width:100%;height:100%;border-radius:50%;object-position:50% 27%;filter:blur(3px) grayscale(.3);transition:filter .9s var(--ease);box-shadow:0 20px 50px rgba(50,35,68,.2)}
.portrait:hover .portrait-orb img,.person.is-in .portrait-orb img{filter:none}
.portrait-initials{display:grid;place-items:center;background:var(--paper);font:900 140px/1 var(--display)}
.portrait-label{position:absolute;left:24px;top:22px;font-size:10px;letter-spacing:.16em}
.portrait-meta{position:absolute;right:24px;bottom:22px;font-size:10px;letter-spacing:.16em;opacity:0;transition:opacity .4s .2s}
.portrait:hover .portrait-meta{opacity:1}
.portrait-af{position:absolute;inset:6%;z-index:2;pointer-events:none;opacity:0;transition:inset .6s var(--ease),opacity .4s}
.portrait:hover .portrait-af{inset:13%;opacity:1}
.portrait-af i{position:absolute;width:26px;height:26px;border:2px solid var(--ink)}
.portrait-af i:nth-child(1){left:0;top:0;border-right:0;border-bottom:0}.portrait-af i:nth-child(2){right:0;top:0;border-left:0;border-bottom:0}
.portrait-af i:nth-child(3){left:0;bottom:0;border-right:0;border-top:0}.portrait-af i:nth-child(4){right:0;bottom:0;border-left:0;border-top:0}
.person h3{font:800 clamp(26px,2.4vw,36px)/1 var(--display);letter-spacing:-.045em;margin:26px 0 10px}
.person .role{font-size:11px;text-transform:uppercase;color:var(--lilac-deep);margin-bottom:14px}
.person p:last-child{color:var(--muted);max-width:480px}
.talent{border:1px solid var(--line);border-radius:4px;padding:clamp(28px,4vw,56px);display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;gap:24px;background:var(--paper)}
.talent-mark{font-size:clamp(90px,10vw,150px);line-height:1;color:var(--lilac-2);transition:transform 1s var(--ease);margin-bottom:auto}
.talent:hover .talent-mark{transform:rotate(90deg)}
.talent h3{font:800 clamp(32px,3.2vw,52px)/1 var(--display);letter-spacing:-.05em}
.talent h3 em{color:var(--lilac-deep)}

/* 06 — Configurateur */
.brief-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,420px);gap:clamp(30px,5vw,80px);align-items:start}
.brief-step{border:0;padding:0 0 clamp(36px,4vw,54px);margin:0 0 clamp(36px,4vw,54px);border-bottom:1px solid var(--line);min-width:0}
.brief-step legend{display:flex;align-items:center;gap:14px;font:800 clamp(22px,2vw,30px)/1.1 var(--display);letter-spacing:-.04em;margin-bottom:24px;padding:0}
.brief-step legend .mono{font-size:11px;font-weight:400;letter-spacing:.1em;display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--ink);color:var(--paper)}
.choice-row{display:flex;flex-wrap:wrap;gap:10px}
.choice,.package,.option{position:relative}
.choice input,.package input,.option input{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}
.choice span{display:inline-flex;align-items:center;min-height:50px;padding:0 22px;border:1px solid var(--line);border-radius:40px;font-size:15px;transition:background .3s,color .3s,border-color .3s;cursor:pointer}
.choice:hover span{border-color:var(--ink)}
.choice input:checked+span{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.choice input:focus-visible+span,.package:has(input:focus-visible),.option input:focus-visible+.opt-box{outline:2px solid var(--lilac-deep);outline-offset:3px}
.packages{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.package{display:flex;flex-direction:column;gap:16px;padding:24px;border:1px solid var(--line);border-radius:4px;background:var(--paper);cursor:pointer;transition:border-color .3s,background .3s,color .3s}
.package:hover{border-color:var(--ink)}
.package:has(input:checked){background:var(--ink);color:var(--paper);border-color:var(--ink)}
.pk-head{display:flex;flex-direction:column;gap:6px}
.pk-head strong{font:800 24px/1 var(--display);letter-spacing:-.04em}
.pk-head b{font:500 15px/1 var(--sans);color:var(--lilac-deep)}
.package:has(input:checked) .pk-head b{color:var(--lilac)}
.pk-body{font-size:13px;line-height:1.7;color:var(--muted)}
.package:has(input:checked) .pk-body{color:#cfcac2}
.pk-flag{position:absolute;right:14px;top:-10px;background:var(--lilac);color:var(--ink);font-size:9px;letter-spacing:.12em;text-transform:uppercase;padding:5px 8px;border-radius:2px}
.hint{font-size:13px;line-height:1.6;color:var(--muted);margin:18px 0 0}
.options{display:grid;grid-template-columns:1fr 1fr;gap:0 30px}
.option{display:flex;align-items:center;gap:14px;padding:16px 0;border-bottom:1px solid var(--line);font-size:15px;cursor:pointer}
.opt-box{flex-shrink:0;width:20px;height:20px;border:1.5px solid var(--ink);border-radius:3px;display:grid;place-items:center;transition:background .2s}
.opt-box::after{content:"";width:9px;height:5px;border:2px solid var(--paper);border-top:0;border-right:0;transform:rotate(-45deg) translate(1px,-1px) scale(0);transition:transform .25s var(--ease)}
.option input:checked+.opt-box{background:var(--ink)}
.option input:checked+.opt-box::after{transform:rotate(-45deg) translate(1px,-1px) scale(1)}
.opt-price{margin-left:auto;white-space:nowrap;font:400 12px/1 var(--mono);color:var(--muted)}
.field-pair{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}
.field{display:grid;gap:8px;font-size:13px;font-weight:500}
.field input,.field textarea,.field select{width:100%;min-height:52px;padding:14px 16px;border:1px solid var(--line);border-radius:4px;background:#fffdf9;color:var(--ink);font-size:16px;font-weight:400;transition:border-color .2s,box-shadow .2s;-webkit-appearance:none;appearance:none}
.field select{background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - 22px) 50%,calc(100% - 16px) 50%;background-size:6px 6px;background-repeat:no-repeat;padding-right:44px}
.field input:focus,.field textarea:focus,.field select:focus{outline:0;border-color:var(--lilac-deep);box-shadow:0 0 0 4px rgba(200,189,240,.45)}
.field textarea{resize:vertical;min-height:120px}
.field input[aria-invalid=true]{border-color:#b33b2e}
.feedback{font-size:14px;margin:14px 0 0;min-height:1em}
.monitor{position:sticky;top:96px}
.monitor-screen{position:relative;background:var(--ink);color:var(--paper);border-radius:6px;padding:34px 30px 30px;overflow:hidden}
.monitor-screen .vf-corner{width:18px;height:18px;opacity:.5}
.monitor-screen .vf-corner.tl{left:12px;top:12px}.monitor-screen .vf-corner.tr{right:12px;top:12px}.monitor-screen .vf-corner.bl{left:12px;bottom:12px}.monitor-screen .vf-corner.br{right:12px;bottom:12px}
.monitor-screen::after{content:"F";position:absolute;right:-20px;bottom:-60px;font:900 280px/1 var(--display);color:rgba(200,189,240,.08);filter:blur(var(--mblur,10px));transition:filter .6s;pointer-events:none}
.monitor-osd{display:flex;justify-content:space-between;font-size:10px;letter-spacing:.12em;opacity:.85}
.monitor-osd b{font-weight:400;color:var(--lilac)}
.sharp-meter{height:3px;background:rgba(250,248,243,.12);margin:14px 0 26px;border-radius:3px;overflow:hidden}
.sharp-meter span{display:block;height:100%;width:20%;background:var(--lilac);transition:width .6s var(--ease)}
.monitor h3{font:800 clamp(32px,2.8vw,42px)/1 var(--display);letter-spacing:-.05em;margin-bottom:18px}
.summary-items ul{list-style:none;margin:0;padding:0}
.summary-items li{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line-light);font-size:14px;color:#ddd8d0}
.summary-items li span:last-child{font-family:var(--mono);font-size:12px;white-space:nowrap}
.total{margin-top:24px}
.total small{font-size:10px;letter-spacing:.14em;opacity:.7}
.total strong{display:block;font:800 clamp(44px,4vw,60px)/1 var(--display);letter-spacing:-.05em;margin-top:10px;color:var(--lilac)}
.monitor-note{font-size:12px;line-height:1.6;color:var(--muted-light);margin:20px 0 0;position:relative;z-index:1}
.monitor-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.monitor-actions .btn{justify-content:center;padding:0 12px}

/* 07 — Boîte à outils */
.tool-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:34px}
.tool-tabs button{display:inline-flex;align-items:center;gap:12px;min-height:52px;padding:0 22px 0 8px;border:1px solid var(--line-light);border-radius:40px;font-size:15px;transition:background .3s,color .3s,border-color .3s}
.tool-tabs button .mono{display:inline-grid;place-items:center;width:36px;height:36px;border-radius:50%;background:rgba(250,248,243,.1);font-size:11px}
.tool-tabs button:hover{border-color:var(--paper)}
.tool-tabs button[aria-selected=true]{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.tool-tabs button[aria-selected=true] .mono{background:var(--lilac)}
.tool-panel{border:1px solid var(--line-light);border-radius:6px;padding:clamp(22px,3.5vw,50px);background:var(--ink-2);animation:rack .7s var(--ease)}
.tools .field input,.tools .field select{background-color:var(--ink-3);border-color:var(--line-light);color:var(--paper);color-scheme:dark}
.tools .hint{color:var(--muted-light)}
.planner{display:grid;grid-template-columns:minmax(260px,360px) 1fr;gap:clamp(30px,5vw,80px)}
.planner-form{display:grid;gap:18px;align-content:start}
.planner-actions{display:flex;flex-wrap:wrap;gap:10px}
.timeline{list-style:none;margin:0;padding:0;position:relative}
.timeline::before{content:"";position:absolute;left:7px;top:10px;bottom:10px;width:1px;background:var(--line-light)}
.timeline li{position:relative;display:grid;grid-template-columns:170px 1fr;gap:20px;padding:0 0 26px 40px;animation:rack .6s var(--ease) both}
.timeline li::before{content:"";position:absolute;left:0;top:6px;width:15px;height:15px;border-radius:50%;border:1.5px solid var(--lilac);background:var(--ink-2)}
.timeline li.is-key::before{background:var(--lilac);box-shadow:0 0 0 6px rgba(200,189,240,.18)}
.timeline time{font:400 12px/1.8 var(--mono);letter-spacing:.06em;color:var(--lilac);text-transform:uppercase}
.timeline strong{display:block;font:800 22px/1.2 var(--display);letter-spacing:-.03em}
.timeline span{display:block;color:var(--muted-light);font-size:14px;margin-top:3px}
.timeline li.timeline-empty{color:var(--muted-light);grid-template-columns:1fr}
.timeline li.timeline-empty::before{border-style:dashed}
.formats{display:grid;grid-template-columns:1fr 1.3fr 1fr;gap:clamp(24px,4vw,60px);align-items:center}
.format-picker{display:grid;gap:8px}
.format-picker button{text-align:left;padding:16px 20px;border:1px solid var(--line-light);border-radius:4px;font:800 26px/1 var(--display);letter-spacing:-.03em;transition:background .3s,color .3s,padding .4s var(--ease)}
.format-picker button:hover{padding-left:28px}
.format-picker button[aria-checked=true]{background:var(--lilac);color:var(--ink);border-color:var(--lilac)}
.format-stage{display:grid;place-items:center;height:min(52vh,460px);min-width:0}
.format-frame{position:relative;aspect-ratio:var(--ratio);height:100%;max-width:100%;background:radial-gradient(circle at 50% 45%,#3a3352,var(--ink) 75%);border:1px solid var(--line-light);transition:aspect-ratio .8s var(--ease);display:grid;place-items:center}
.format-frame.is-wide{width:100%;height:auto}
.format-frame .vf-corner{width:16px;height:16px;opacity:.6}
.format-frame .vf-corner.tl{left:10px;top:10px}.format-frame .vf-corner.tr{right:10px;top:10px}.format-frame .vf-corner.bl{left:10px;bottom:10px}.format-frame .vf-corner.br{right:10px;bottom:10px}
.format-label{font-size:clamp(20px,2vw,28px);letter-spacing:.1em}
.format-safe{position:absolute;inset:10%;border:1px dashed rgba(200,189,240,.35)}
.format-info{margin:0;display:grid;gap:20px}
.format-info dt{font:400 10px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--lilac);margin-bottom:6px}
.format-info dd{margin:0;font-size:16px}
.guides{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.guide{position:relative;display:flex;flex-direction:column;gap:14px;min-height:300px;padding:28px;border:1px solid var(--line-light);border-radius:4px;transition:background .4s,color .4s,border-color .4s;overflow:hidden}
.guide::before{content:"";position:absolute;right:-40px;top:-40px;width:140px;height:140px;border-radius:50%;border:1px solid var(--line-light);transition:transform .8s var(--ease)}
.guide:hover{background:var(--lilac);color:var(--ink);border-color:var(--lilac)}
.guide:hover::before{transform:scale(2.4);border-color:rgba(20,20,20,.15)}
.guide-tag{font-size:10px;letter-spacing:.14em;text-transform:uppercase;opacity:.7}
.guide strong{font:800 28px/1.05 var(--display);letter-spacing:-.04em}
.guide-text{font-size:14px;opacity:.75}
.guide-dl{margin-top:auto;display:flex;align-items:center;gap:10px;font-weight:500}
.guide-dl i{font-style:normal;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;border:1px solid currentColor;transition:transform .4s var(--ease)}
.guide:hover .guide-dl i{transform:translateY(4px)}

/* 08 — FAQ */
.faq-layout{display:grid;grid-template-columns:1fr 1.25fr;gap:clamp(30px,6vw,110px);align-items:start}
.faq-layout>div:first-child{position:sticky;top:110px}
.faq-layout .section-intro{margin-top:28px}
.faq-list{border-top:1px solid var(--line)}
.faq-item{border-bottom:1px solid var(--line)}
.faq-item summary{list-style:none;display:grid;grid-template-columns:44px 1fr 30px;gap:14px;align-items:center;padding:26px 0;font:800 clamp(19px,1.6vw,24px)/1.25 var(--display);letter-spacing:-.03em}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary .mono{font-size:11px;font-weight:400;color:var(--lilac-deep)}
.faq-item summary b{position:relative;width:30px;height:30px}
.faq-item summary b::before,.faq-item summary b::after{content:"";position:absolute;left:50%;top:50%;width:14px;height:1.5px;background:currentColor;transform:translate(-50%,-50%);transition:transform .4s var(--ease)}
.faq-item summary b::after{transform:translate(-50%,-50%) rotate(90deg)}
.faq-item[open] summary b::after{transform:translate(-50%,-50%)}
.faq-item p{padding:0 44px 26px 58px;color:var(--muted);margin:0;animation:rack .6s var(--ease)}

/* Clap de fin */
.closing{position:relative;background:var(--lilac);padding:clamp(90px,12vw,170px) var(--gutter);overflow:hidden;text-align:center}
.closing>*{position:relative;z-index:1}
.closing .eyebrow{justify-content:center}
.closing-title{font:900 clamp(56px,10.5vw,190px)/.86 var(--display);letter-spacing:-.065em;margin:30px auto 50px;max-width:1500px}
.closing-title em{display:block;font-weight:400}
.closing-choice{display:flex;justify-content:center;flex-wrap:wrap;gap:14px}
.choice-big{display:inline-flex;align-items:center;gap:20px;min-height:84px;padding:0 44px;border-radius:90px;background:var(--ink);color:var(--paper);font:800 clamp(26px,2.6vw,38px)/1 var(--display);letter-spacing:-.04em;transition:background .3s,color .3s,transform .4s var(--ease)}
.choice-big i{font-style:normal;color:var(--rec);font-size:.6em;animation:blink 1.4s steps(2) infinite}
.choice-big:hover{background:var(--lilac-deep)}
.choice-big.ghost{background:transparent;color:var(--ink);border:1.5px solid var(--ink)}
.choice-big.ghost:hover{background:var(--paper)}
.choice-big[aria-pressed=true]{outline:3px solid var(--ink);outline-offset:4px}
.closing-answer{margin-top:40px;animation:rack .7s var(--ease)}
.closing-answer p{font-size:20px;margin-bottom:20px}
.closing-answer .hero-actions{justify-content:center}
.closing::before{content:"";position:absolute;left:50%;top:50%;width:140vmax;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;background:repeating-radial-gradient(circle,transparent 0 60px,rgba(20,20,20,.05) 60px 61px);pointer-events:none}

/* Pied de page */
.footer{background:var(--ink);color:var(--paper);padding:clamp(70px,8vw,120px) var(--gutter) 30px;overflow:hidden}
.footer-top{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.1fr;gap:40px;max-width:1600px;margin:0 auto}
.footer-col{display:flex;flex-direction:column;align-items:flex-start;gap:12px;font-size:15px}
.footer-col .eyebrow{color:var(--muted-light);margin-bottom:10px}
.footer-col a{opacity:.85;transition:opacity .2s,color .2s}
.footer-col a:hover{opacity:1;color:var(--lilac)}
.footer-col p{color:var(--muted-light);margin:0;font-size:14px}
.footer-big{font:800 clamp(22px,2.2vw,32px)/1.1 var(--display);letter-spacing:-.04em;opacity:1!important;overflow-wrap:anywhere}
.footer-clock strong{font-size:clamp(26px,2.4vw,36px);font-weight:400;letter-spacing:.04em}
.footer-mark{display:flex;align-items:flex-end;justify-content:center;margin:clamp(50px,7vw,110px) auto 0;transition:filter .3s linear;font:900 clamp(90px,26vw,460px)/.74 var(--display);letter-spacing:-.075em;color:var(--paper);filter:blur(var(--fblur,0px));user-select:none}
.footer-mark i{width:.15em;height:.15em;border-radius:50%;background:var(--lilac);margin:0 0 .05em .04em;flex-shrink:0}
.footer-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;border-top:1px solid var(--line-light);padding-top:24px;margin:40px auto 0;max-width:1600px;font-size:12px;color:var(--muted-light)}
.footer-bottom a:hover{color:var(--paper)}

/* Fiche réalisation */
.project-dialog{border:0;padding:0;margin:auto;width:min(1180px,94vw);max-height:92vh;background:var(--paper);color:var(--ink);border-radius:6px;overflow:auto;box-shadow:0 40px 120px rgba(0,0,0,.4)}
.project-dialog[open]{animation:dialog-in .6s var(--ease)}
@keyframes dialog-in{from{opacity:0;filter:blur(16px);transform:scale(.97)}}
.project-dialog::backdrop{background:rgba(14,14,14,.82);backdrop-filter:blur(8px)}
.pd-bar{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;align-items:center;padding:14px 22px;background:rgba(250,248,243,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);font-size:11px;letter-spacing:.12em}
.pd-nav{display:flex;gap:6px}
.pd-nav button{min-width:40px;height:40px;border:1px solid var(--line);border-radius:40px;padding:0 14px;font:inherit;transition:background .3s,color .3s}
.pd-nav button:hover{background:var(--ink);color:var(--paper)}
#project-content{padding:clamp(24px,4vw,56px)}
#project-content .section-label{margin-bottom:16px}
#project-content h2{font-size:clamp(38px,5vw,76px);margin-bottom:20px}
.modal-sub{font-size:19px;color:var(--muted);max-width:720px}
.modal-media{width:100%;max-height:68vh;object-fit:contain;background:#0e0e0e;border-radius:4px;margin:30px 0}
.modal-gallery{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:20px}
.modal-gallery img{border-radius:4px;max-height:560px;object-fit:cover;background:var(--paper-2)}
.modal-description{white-space:pre-line;font-size:16px;max-width:760px;color:var(--ink-3)}
.modal-empty{display:grid;place-items:center;aspect-ratio:21/9;background:var(--lilac-wash);border-radius:4px;margin:30px 0;font:400 12px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;text-align:center;padding:20px}

/* Intro diaphragme */
.intro{position:fixed;inset:0;z-index:300;pointer-events:none;transition:opacity .5s}
.intro svg{width:100%;height:100%}
.intro-word{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:var(--paper);font:900 clamp(60px,12vw,180px)/1 var(--display);letter-spacing:-.07em;filter:blur(18px);opacity:0;transition:filter .9s var(--ease),opacity .5s}
.intro-word.is-sharp{filter:none;opacity:1}
.intro-f{position:absolute;left:50%;bottom:12vh;transform:translateX(-50%);color:var(--lilac);font:400 12px/1 var(--mono);letter-spacing:.2em}
.intro.is-done{opacity:0}

/* Pages secondaires */
.page{padding:calc(var(--nav-h) + clamp(60px,8vw,120px)) var(--gutter) clamp(80px,10vw,140px);min-height:80vh}
.page>*{max-width:1100px;margin-left:auto;margin-right:auto}
.page h1{font:900 clamp(52px,9vw,140px)/.88 var(--display);letter-spacing:-.065em;margin:20px auto 40px}
.page h1 em{font-weight:400}
.page h2{font-size:clamp(28px,3vw,42px);margin:56px auto 18px;letter-spacing:-.04em}
.page p,.page li{font-size:17px;color:var(--ink-3)}
.page .prose p,.page .prose li{max-width:780px}
.legal-table{display:grid;grid-template-columns:200px 1fr;border-top:1px solid var(--line);margin-top:0;margin-bottom:0}
.legal-table>*{padding:16px 0;border-bottom:1px solid var(--line);margin:0}
.legal-table dt{font:400 11px/1.6 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.legal-table dd{font-size:16px}
.todo{color:#9a4b20}
.access-card{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,80px);align-items:start}
.access-panel{background:var(--ink);color:var(--paper);border-radius:6px;padding:clamp(30px,4vw,52px);position:relative}
.access-panel .vf-corner{width:18px;height:18px;opacity:.5}
.access-panel .vf-corner.tl{left:12px;top:12px}.access-panel .vf-corner.tr{right:12px;top:12px}.access-panel .vf-corner.bl{left:12px;bottom:12px}.access-panel .vf-corner.br{right:12px;bottom:12px}
.access-panel h2{font-size:clamp(28px,2.6vw,38px);margin:0 0 14px}
.access-panel p{color:#cfcac2;font-size:15px}
.access-panel .field input{background:var(--ink-3);border-color:var(--line-light);color:var(--paper)}
.access-panel .btn{margin-top:18px}
.access-steps{list-style:none;padding:0;margin:30px 0 0;counter-reset:s}
.access-steps li{counter-increment:s;display:grid;grid-template-columns:44px 1fr;gap:10px;padding:16px 0;border-top:1px solid var(--line)}
.access-steps li::before{content:"0" counter(s);font:400 11px/1.9 var(--mono);color:var(--lilac-deep)}
.error-hero{min-height:100svh;display:grid;place-items:center;text-align:center;padding:var(--gutter)}
.error-hero h1{font:900 clamp(120px,30vw,420px)/.8 var(--display);letter-spacing:-.08em;animation:hunt 3.2s var(--ease) infinite}
.error-hero p{font-size:19px;margin:30px 0}
@keyframes hunt{0%,100%{filter:blur(14px)}40%{filter:blur(2px)}55%{filter:blur(6px)}70%{filter:blur(0)}85%{filter:blur(9px)}}

/* ═════════════ RESPONSIVE ═════════════ */
@media(min-width:1700px){.section,.hero,.closing{padding-left:max(var(--gutter),calc((100vw - 1600px)/2));padding-right:max(var(--gutter),calc((100vw - 1600px)/2))}}
@media(max-width:1180px){
 .nav-links{gap:16px;font-size:13px}
 .nav-links>a:nth-child(4){display:none}
 .meanings{grid-template-columns:1fr 1fr}
 .meaning:last-child{grid-column:1/-1;min-height:260px}
 .facts{grid-template-columns:1fr 1fr}
 .fact:nth-child(2){border:0;margin-right:0}
 .steps{grid-template-columns:repeat(3,1fr);row-gap:50px}
 .steps::before,.steps-line{display:none}
 .formats{grid-template-columns:1fr 1fr}
 .format-info{grid-column:1/-1;grid-template-columns:repeat(3,1fr)}
}
@media(max-width:960px){
 :root{--nav-h:72px}
 .menu{display:flex}
 .nav-links{position:fixed;inset:0;z-index:1;flex-direction:column;align-items:flex-start;justify-content:center;gap:6px;padding:100px var(--gutter) 40px;background:var(--ink);color:var(--paper);font:800 clamp(34px,8vw,56px)/1.1 var(--display);letter-spacing:-.04em;clip-path:circle(0 at calc(100% - 44px) 36px);transition:clip-path .8s var(--ease-io),visibility 0s .8s;visibility:hidden}
 .nav-links.open{clip-path:circle(150% at calc(100% - 44px) 36px);visibility:visible;transition:clip-path .8s var(--ease-io),visibility 0s}
 .nav-links>a:nth-child(4){display:block}
 .nav-links .nav-client{font:500 16px/1 var(--sans);letter-spacing:0;margin-top:24px;opacity:.8}
 .nav-links .nav-cta{font:500 16px/1 var(--sans);letter-spacing:0;margin-top:12px;background:var(--lilac);color:var(--ink)}
 .nav.menu-open{color:var(--paper)}
 .nav.menu-open::before{opacity:0}
 .hero-foot{flex-direction:column;align-items:flex-start}
  .section-head{flex-direction:column;align-items:flex-start;gap:24px}
 .work-card,.work-card.is-wide{grid-column:span 12}
 .work-card.is-wide .work-visual{aspect-ratio:4/3}
 .craft-body{grid-template-columns:1fr}
 .craft-body p,.craft-body .chips,.craft-body .link-arrow{grid-column:1}
 .craft-item summary{grid-template-columns:40px 1fr 44px}
 .craft-lens{display:none}
 .team-grid{grid-template-columns:1fr}
 .talent{min-height:380px}
 .brief-layout{grid-template-columns:1fr}
 .monitor{position:static}
 .packages{grid-template-columns:1fr}
 .options{grid-template-columns:1fr}
 .planner{grid-template-columns:1fr}
 .guides{grid-template-columns:1fr}
 .guide{min-height:220px}
 .faq-layout{grid-template-columns:1fr}
 .faq-layout>div:first-child{position:static}
 .footer-top{grid-template-columns:1fr 1fr}
 .access-card{grid-template-columns:1fr}
}
@media(max-width:640px){
 .osd-tr span:nth-child(-n+2),.osd-bl span:last-child{display:none}
 .osd{font-size:9px;gap:10px}
 .osd-tl,.osd-bl{left:30px}.osd-tr,.osd-br{right:30px}
 .hero{padding-bottom:130px}
 .hero-line.right{margin-right:0}
 .focus-word{font-size:clamp(76px,24.5vw,200px)}
 .btn{min-height:50px;font-size:14px}
 .hero-actions .btn{width:100%;justify-content:space-between}
 .fs-ticks span b{font-size:8px}
 .fs-ticks span:not(.major) b{display:none}
 .meanings,.facts{grid-template-columns:1fr}
 .meaning{min-height:250px}
 .meaning:last-child{grid-column:auto}
 .fact,.fact:nth-child(2){border-right:0;margin-right:0;border-bottom:1px solid var(--line);padding-bottom:24px}
 .steps{grid-template-columns:1fr;row-gap:36px}
 .step-dot{top:0;left:auto;right:0}
 .step-verb{margin-top:10px}
 .field-pair{grid-template-columns:1fr}
 .formats{grid-template-columns:1fr}
 .format-picker{grid-template-columns:repeat(5,1fr);gap:6px}
 .format-picker button{font-size:15px;padding:12px 4px;text-align:center}
 .format-picker button:hover{padding-left:4px}
 .format-stage{height:300px}
 .format-info{grid-template-columns:1fr}
 .timeline li{grid-template-columns:1fr;gap:2px}
 .faq-item p{padding:0 0 22px 0}
 .faq-item summary{grid-template-columns:34px 1fr 26px}
 .choice-big{min-height:70px;padding:0 32px}
 .footer-top{grid-template-columns:1fr}
 .footer-bottom{flex-direction:column}
 .monitor-actions{grid-template-columns:1fr}
 .modal-gallery{grid-template-columns:1fr}
 .legal-table{grid-template-columns:1fr}
 .legal-table dt{border-bottom:0;padding-bottom:0}
 .tool-tabs button{flex:1 1 100%}
}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 *,*::before,*::after{animation:none!important;transition:none!important}
 .js .reveal{opacity:1;filter:none;transform:none}
 .js .focus-word:not(.is-ready)>span{filter:none;opacity:1}
 .grain{display:none}
 .work-visual img,.mire,.portrait-orb img{filter:none}
}
@media print{
 .nav,.stage,.hero,.ticker,.manifesto,.work,.trust,.craft,.method,.team,.tools,.faq,.closing,.footer,.grain,.cursor,.lens-scale,dialog,.skip,.monitor-actions,#brief-form>.btn,#brief-form>.hint,.brief .section-head,.intro{display:none!important}
 body{background:#fff}
 .brief{padding:0}
 .brief-layout{display:block}
 .monitor{position:static;margin-bottom:24px}
 .monitor-screen{background:#fff;color:#000;border:1px solid #000}
 .monitor-screen::after{display:none}
 .total strong{color:#000}
 .summary-items li{color:#000;border-color:#ccc}
 .package:has(input:checked){background:#fff;color:#000;border:2px solid #000}
 .field input,.field textarea{border:1px solid #999}
}

/* ═══════════════════════════════════════════════════════════════════════════
   V2 — Symbole « Le Point », logo animé, page d'ouverture, filtres FOCUS
   ═══════════════════════════════════════════════════════════════════════════ */

/* Symbole : viseur + point de force au tiers (comme le point du logo) */
.sym{display:inline-block;width:1em;height:1em;overflow:visible;vertical-align:-.12em}
.sym-frame{fill:none;stroke:currentColor;stroke-width:8}
.sym-ring{fill:none;stroke:currentColor;stroke-width:2.6;opacity:.5}
.sym-dot{fill:var(--lilac)}
.ticker-group .sym{width:.62em;height:.62em;color:var(--ink);margin:0 .1em}
.ticker-group .sym .sym-dot{fill:var(--lilac-deep)}

/* Logo animé : boucle de 4,8 s — le mot cherche le point, puis verrouille */
.logo-word{display:inline-flex}
.logo-word>span{display:inline-block;animation:logo-rack 4.8s var(--ease) infinite}
.logo-word>span:nth-child(2){animation-delay:.05s}.logo-word>span:nth-child(3){animation-delay:.1s}.logo-word>span:nth-child(4){animation-delay:.15s}.logo-word>span:nth-child(5){animation-delay:.2s}
.logo-dot{position:relative;animation:logo-dot 4.8s var(--ease) infinite}
.logo-dot::before{content:"";position:absolute;inset:-6px;opacity:0;animation:logo-lock 4.8s var(--ease) infinite;
 --k:currentColor;background:linear-gradient(var(--k),var(--k)) left top/5px 1.5px,linear-gradient(var(--k),var(--k)) left top/1.5px 5px,linear-gradient(var(--k),var(--k)) right top/5px 1.5px,linear-gradient(var(--k),var(--k)) right top/1.5px 5px,linear-gradient(var(--k),var(--k)) left bottom/5px 1.5px,linear-gradient(var(--k),var(--k)) left bottom/1.5px 5px,linear-gradient(var(--k),var(--k)) right bottom/5px 1.5px,linear-gradient(var(--k),var(--k)) right bottom/1.5px 5px;background-repeat:no-repeat}
@keyframes logo-rack{0%,52%,100%{filter:none;transform:none}60%{filter:blur(2.4px);transform:translateY(-1px)}66%{filter:blur(.8px)}72%{filter:blur(1.6px)}80%{filter:none;transform:none}}
@keyframes logo-dot{0%,56%,100%{transform:none;background:var(--lilac)}66%{transform:scale(.4)}78%{transform:scale(1.5);background:var(--lilac-deep)}88%{transform:scale(1);background:var(--lilac)}}
@keyframes logo-lock{0%,74%,100%{opacity:0;transform:scale(1.8)}80%{opacity:1;transform:scale(1)}92%{opacity:1;transform:scale(1)}97%{opacity:0}}
.on-dark .logo-dot{background:var(--lilac)}

/* ═════════════ PAGE D'OUVERTURE — LE POINT ═════════════ */
.stage{position:relative;height:100svh;min-height:580px;overflow:hidden;background:#0c0c0c;color:var(--paper);isolation:isolate;touch-action:pan-y;--fs:min(50vmin,560px);--r:calc(var(--fs) * .19)}
.stage-media,.stage-media .stage-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.stage-media{transform:scale(1.03)}
.stage-blur{position:absolute;inset:0;pointer-events:none;-webkit-backdrop-filter:blur(var(--sb,18px)) saturate(.75) brightness(.62);backdrop-filter:blur(var(--sb,18px)) saturate(.75) brightness(.62);
 -webkit-mask-image:radial-gradient(circle var(--r) at var(--x,62%) var(--y,62%),transparent 86%,#000 100%);mask-image:radial-gradient(circle var(--r) at var(--x,62%) var(--y,62%),transparent 86%,#000 100%)}
.stage-shade{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 80% 70% at 50% 50%,transparent 45%,rgba(0,0,0,.6)),linear-gradient(rgba(0,0,0,.25),transparent 25%,transparent 70%,rgba(0,0,0,.5))}
.stage-flash{position:absolute;inset:0;background:var(--paper);opacity:0;pointer-events:none;z-index:6}
.stage.is-shot .stage-flash{animation:shot .45s ease-out}
@keyframes shot{0%{opacity:.85}20%{opacity:0}35%{opacity:.0;background:#000}50%{opacity:.6;background:#000}100%{opacity:0}}
.stage-osd .osd{color:var(--paper);z-index:5}
.stage-osd .osd-tl{left:28px;top:calc(var(--nav-h) + 8px)}.stage-osd .osd-tr{right:28px;top:calc(var(--nav-h) + 8px)}
.stage-osd .osd-bl{left:28px;bottom:22px}.stage-osd .osd-br{right:28px;bottom:22px}
.stage-frame{position:absolute;left:50%;top:47%;width:var(--fs);height:var(--fs);transform:translate(-50%,-50%) scale(var(--fk,1.06));filter:blur(var(--fb,3px));opacity:var(--fo,.7);transition:transform .5s var(--ease),filter .4s,opacity .4s;pointer-events:none;z-index:3}
.stage-frame>i{position:absolute;width:23.4%;height:23.4%;border:0 solid var(--paper);border-width:calc(var(--fs) * .066);transition:border-color .3s}
.stage-frame>i:nth-child(1){left:0;top:0;border-right:0;border-bottom:0}.stage-frame>i:nth-child(2){right:0;top:0;border-left:0;border-bottom:0}
.stage-frame>i:nth-child(3){left:0;bottom:0;border-right:0;border-top:0}.stage-frame>i:nth-child(4){right:0;bottom:0;border-left:0;border-top:0}
.stage-target{position:absolute;left:66.67%;top:66.67%;width:38.3%;height:38.3%;transform:translate(-50%,-50%);border:1.5px dashed rgba(250,248,243,.45);border-radius:50%;transition:opacity .3s}
.stage-lens{position:absolute;left:0;top:0;width:calc(var(--r) * 2);height:calc(var(--r) * 2);margin:calc(var(--r) * -1) 0 0 calc(var(--r) * -1);transform:translate(var(--lx,62vw),var(--ly,62vh));pointer-events:none;z-index:4}
.lens-ring{position:absolute;inset:0;border-radius:50%;border:2px solid rgba(250,248,243,.85);box-shadow:0 0 0 1px rgba(0,0,0,.15),0 0 60px rgba(0,0,0,.25);transition:border-color .3s,transform .4s var(--ease)}
.lens-dot{position:absolute;left:50%;top:50%;width:56%;height:56%;border-radius:50%;background:var(--lilac);transform:translate(-50%,-50%) scale(var(--dk,.18));transition:transform .45s var(--ease);mix-blend-mode:normal}
.lens-label{position:absolute;left:calc(100% + 12px);top:50%;transform:translateY(-50%);font-size:10px;letter-spacing:.16em;white-space:nowrap;background:rgba(12,12,12,.55);padding:5px 7px;border-radius:2px}
.stage.is-locked .stage-frame>i{border-color:var(--paper)}
.stage.is-locked .stage-target{opacity:0}
.stage.is-locked .lens-ring{border-color:var(--paper);transform:scale(1)}
.stage.is-locked .lens-label{background:var(--lilac);color:var(--ink)}
.stage-copy{position:absolute;left:var(--gutter);bottom:clamp(70px,11vh,120px);z-index:5;max-width:min(520px,60vw)}
.stage-eyebrow{color:rgba(250,248,243,.75);margin:0 0 14px}
.stage-hint{font:400 clamp(28px,3.2vw,48px)/1.05 var(--serif);font-style:italic;letter-spacing:-.02em;margin:0;transition:opacity .3s}
.stage-hint b{font:900 1em/1 var(--display);font-style:normal;letter-spacing:-.05em;color:var(--lilac)}
.stage-actions{position:absolute;right:var(--gutter);bottom:clamp(70px,11vh,120px);z-index:5;display:flex;align-items:center;gap:14px}
.stage-btn{display:inline-flex;align-items:center;gap:12px;min-height:54px;padding:0 24px 0 10px;border-radius:60px;background:rgba(250,248,243,.12);border:1px solid rgba(250,248,243,.3);color:var(--paper);font-weight:500;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:background .3s,color .3s}
.stage-btn small{opacity:.65;font-size:10px;letter-spacing:.1em}
.stage-btn:hover{background:var(--paper);color:var(--ink)}
.play-ico{width:36px;height:36px;border-radius:50%;background:var(--lilac);position:relative}
.play-ico::after{content:"";position:absolute;left:14px;top:11px;border-left:11px solid var(--ink);border-top:7px solid transparent;border-bottom:7px solid transparent}
.stage-scroll{display:inline-flex;flex-direction:column;align-items:center;gap:10px;color:var(--paper)}
.stage-scroll .mono{font-size:10px;letter-spacing:.18em;text-transform:uppercase}
.stage-scroll i{width:1px;height:46px;background:linear-gradient(var(--paper),transparent);animation:scrollcue 2.2s var(--ease) infinite;transform-origin:top}
@keyframes scrollcue{0%{transform:scaleY(0)}50%{transform:scaleY(1)}100%{transform:scaleY(1);opacity:0}}
.stage.no-js-fx .stage-blur{-webkit-mask-image:none;mask-image:none}

/* Lecteur showreel plein écran */
.reel-dialog{border:0;padding:0;width:min(1400px,96vw);max-height:94vh;background:#000;border-radius:6px;overflow:hidden}
.reel-dialog::backdrop{background:rgba(8,8,8,.92)}
.reel-dialog video{display:block;width:100%;max-height:88vh;background:#000}
.reel-dialog .pd-close{position:absolute;right:12px;top:12px;z-index:2;background:rgba(250,248,243,.9);color:var(--ink);border-radius:40px;padding:10px 16px;font:500 12px/1 var(--mono);letter-spacing:.1em}

/* ═════════════ ACCUEIL ALLÉGÉ ═════════════ */
.hero{min-height:92svh;padding-top:calc(var(--nav-h) + 50px);padding-bottom:140px}
.hero-disc{position:absolute;z-index:-1;right:-12vw;top:50%;width:min(52vw,760px);aspect-ratio:1;border-radius:50%;transform:translateY(-50%);background:radial-gradient(circle at 36% 32%,#e3dcfb 0%,var(--lilac) 45%,#b7a8ec 100%);opacity:.9}
.hero-disc::after{content:"";position:absolute;inset:14%;border-radius:50%;border:1px solid rgba(20,20,20,.14)}
.hero .focus-word{color:var(--ink)}
.focus-scale .fs-ticks span{opacity:.22}
.focus-scale .fs-ticks span.major{opacity:.5}
@media(max-width:960px){.hero-disc{width:88vw;right:-40vw;top:40%;opacity:.75}}

/* ═════════════ FILTRES FOCUS (identité des images) ═════════════
   Les fichiers ne sont pas modifiés : étalonnage, grain, vignettage et symbole
   sont des calques posés par-dessus. */
.ph{position:relative;isolation:isolate;overflow:hidden}
.ph>img,.ph>video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ph::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;mix-blend-mode:soft-light;opacity:1;transition:opacity .6s;
 background:linear-gradient(150deg,rgba(214,204,250,.85) 0%,rgba(200,189,240,.25) 38%,rgba(200,189,240,0) 55%),linear-gradient(0deg,rgba(26,18,52,.85) 0%,rgba(40,30,80,.35) 45%,rgba(40,30,80,0) 70%),linear-gradient(rgba(110,88,176,.18),rgba(110,88,176,.18))}
.ph::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.75;mix-blend-mode:overlay;
 background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .5 0 0 0 0 .5 0 0 0 0 .5 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"),radial-gradient(ellipse 75% 70% at 50% 45%,transparent 55%,rgba(8,8,8,.75) 100%)}
.ph-mark{position:absolute;left:22px;bottom:20px;z-index:3;color:var(--paper);font-size:30px;line-height:1;display:flex;align-items:center;gap:10px;pointer-events:none;filter:drop-shadow(0 2px 8px rgba(0,0,0,.35))}
.ph-mark .sym-ring{opacity:.6}
.ph-mark small{font:400 10px/1 var(--mono);letter-spacing:.16em}
.work-visual.ph img{filter:none!important;transform:scale(1.02)!important;transition:transform 1.2s var(--ease)!important}
.work-card:hover .work-visual.ph img{transform:scale(1.06)!important}
.work-card:hover .work-visual.ph::before{opacity:.45}
.work-preview{opacity:0;transition:opacity .6s}
.work-card.is-previewing .work-preview{opacity:1}
.work-visual.ph .work-index{color:var(--paper);text-shadow:0 1px 6px rgba(0,0,0,.4)}
.work-visual.ph .af-frame i{border-color:var(--paper)!important}
.work-visual.ph .work-arrow{font-size:16px}

/* Fiche réalisation : lecteur, onglets, galerie */
.pd-player{margin:30px 0 14px}
.pd-screen{position:relative;background:#0b0b0b;border-radius:4px;overflow:hidden;display:grid;place-items:center}
.pd-screen video{display:block;width:100%;max-height:72vh;background:#0b0b0b}
.pd-screen.is-vertical video{width:auto;height:min(72vh,820px);max-width:100%}
.pd-screen::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.25;mix-blend-mode:overlay;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.pd-tabs{display:flex;gap:10px;margin-top:12px;overflow-x:auto;padding-bottom:4px}
.pd-tab{flex:0 0 auto;display:flex;align-items:center;gap:12px;padding:6px 16px 6px 6px;border:1px solid var(--line);border-radius:6px;font-size:13px;text-align:left;transition:border-color .2s,background .2s}
.pd-tab span.ph{width:72px;height:44px;border-radius:3px;flex-shrink:0}
.pd-tab small{display:block;font:400 10px/1.4 var(--mono);letter-spacing:.1em;color:var(--muted)}
.pd-tab:hover{border-color:var(--ink)}
.pd-tab[aria-current=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.pd-tab[aria-current=true] small{color:var(--lilac)}
.pd-gallery{columns:3 260px;column-gap:12px;margin-top:26px}
.pd-gallery button{display:block;width:100%;margin:0 0 12px;break-inside:avoid;border-radius:4px;overflow:hidden;position:relative}
.pd-gallery .ph>img{position:relative;height:auto;display:block}
.pd-gallery .ph-mark{font-size:22px;left:14px;bottom:12px}
.lightbox-fx{position:fixed;inset:0;z-index:5;background:rgba(10,10,10,.96);display:grid;place-items:center;padding:56px 70px}
.lightbox-fx figure{margin:0;position:relative;max-width:100%;max-height:100%;display:grid;place-items:center}
.lightbox-fx .ph{display:inline-block}
.lightbox-fx .ph>img{position:relative;max-width:calc(96vw - 140px);max-height:calc(92vh - 110px);width:auto;height:auto;object-fit:contain}
.lightbox-fx figcaption{position:absolute;left:0;right:0;bottom:-34px;display:flex;justify-content:space-between;color:var(--muted-light);font:400 11px/1 var(--mono);letter-spacing:.12em}
.lb-btn{position:absolute;top:50%;transform:translateY(-50%);width:50px;height:50px;border-radius:50%;border:1px solid rgba(250,248,243,.3);color:var(--paper);font-size:18px;transition:background .2s}
.lb-btn:hover{background:var(--paper);color:var(--ink)}
.lb-prev{left:12px}.lb-next{right:12px}
.lb-close{position:absolute;right:14px;top:12px;color:var(--paper);font:500 12px/1 var(--mono);letter-spacing:.1em;padding:10px 14px;border:1px solid rgba(250,248,243,.3);border-radius:40px}
.modal-credits{font:400 12px/1.7 var(--mono);letter-spacing:.04em;color:var(--muted);margin-top:18px;white-space:pre-line}

/* Symbole dans le pied de page */
.footer-mark .sym{width:.62em;height:.62em;margin-left:.08em;color:var(--paper);align-self:center}
.footer-mark .sym .sym-ring{opacity:.35}

@media(max-width:760px){
 .stage{--fs:min(78vw,60vh)}
 .stage-osd .osd-tr span:nth-child(-n+2){display:none}
 .stage-copy{left:20px;right:20px;max-width:none;bottom:120px}
 .stage-actions{left:20px;right:20px;bottom:56px;justify-content:space-between}
 .stage-scroll i{height:30px}
 .ph-mark{font-size:24px;left:16px;bottom:14px}
 .lightbox-fx{padding:56px 10px}
 .lightbox-fx .ph>img{max-width:96vw}
 .lb-btn{top:auto;bottom:14px;transform:none}
}
@media(prefers-reduced-motion:reduce){
 .stage-blur{-webkit-mask-image:none;mask-image:none;-webkit-backdrop-filter:brightness(.6);backdrop-filter:brightness(.6)}
 .stage-lens,.stage-target{display:none}
 .stage-frame{filter:none;opacity:.9;transform:translate(-50%,-50%)}
}
.cursor.in-stage .cursor-box,.cursor.in-stage .cursor-dot{opacity:0}

/* ═══════════════════════════════════════════════════════════════════════════
   V4 — Proposition de valeur, offres, contact, pages dédiées
   ═══════════════════════════════════════════════════════════════════════════ */
.btn-lilac-ico{background:var(--lilac);color:var(--ink)}
.btn-lilac-ico i{background:var(--ink);color:var(--paper)}
.btn-lilac-ico:hover{background:var(--paper)}
.btn-glass{background:rgba(250,248,243,.1);border:1px solid rgba(250,248,243,.35);color:var(--paper);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.btn-glass i{background:rgba(250,248,243,.15)}
.btn-glass:hover{background:var(--paper);color:var(--ink)}
.btn-glass:hover i{background:var(--lilac)}

/* Ouverture : le message d'abord */
.stage-copy{left:var(--gutter);right:auto;bottom:clamp(56px,9vh,100px);max-width:min(760px,62vw)}
.stage-hint{font:400 10.5px/1.4 var(--mono);font-style:normal;letter-spacing:.14em;text-transform:uppercase;color:rgba(250,248,243,.7);margin:0 0 18px}
.stage-hint.is-locked{color:var(--lilac)}
.stage-title{font:900 clamp(46px,6.4vw,104px)/.9 var(--display);letter-spacing:-.055em;margin:0 0 20px;text-shadow:0 2px 30px rgba(0,0,0,.25)}
.stage-title em{font-weight:400;letter-spacing:-.03em;color:var(--lilac)}
.stage-focus{text-transform:uppercase;position:relative}
.stage-focus i{display:inline-block;width:.16em;height:.16em;border-radius:50%;background:var(--lilac);margin-left:.04em}
.stage-lead{font-size:clamp(17px,1.4vw,21px);line-height:1.45;max-width:600px;margin:0 0 26px;color:rgba(250,248,243,.92)}
.stage-lead span{color:rgba(250,248,243,.7)}
.stage-ctas{display:flex;flex-wrap:wrap;gap:12px}
.stage-actions{bottom:clamp(56px,9vh,100px)}
.stage-frame{left:68%;top:46%}

/* Portes d'entrée */
.doors{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line)}
.door{padding:clamp(40px,5vw,72px) var(--gutter);display:flex;flex-direction:column;gap:14px;position:relative}
.door+.door{border-left:1px solid var(--line)}
.door-num{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--lilac-deep)}
.door h2{font-size:clamp(32px,3.4vw,54px);line-height:1}
.door p{color:var(--muted);max-width:460px;margin:0}
.door-offers{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.door-offers a{display:inline-flex;gap:8px;border:1px solid var(--line);border-radius:40px;padding:9px 16px;font-size:14px;transition:background .3s,color .3s,border-color .3s}
.door-offers a:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.door-cta{margin-top:auto;padding-top:14px;font-weight:500;display:inline-flex;gap:8px;align-self:flex-start;border-bottom:1px solid currentColor;padding-bottom:4px}
.door-cta:hover{color:var(--lilac-deep)}

/* Confiance */
.trust{padding-top:0;padding-bottom:clamp(60px,7vw,100px)}
.trust-row{display:flex;align-items:center;gap:clamp(20px,4vw,60px);flex-wrap:wrap;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:30px 0}
.trust-row .eyebrow{color:var(--muted)}
.client-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:clamp(24px,4vw,64px);align-items:center}
.client-list li{font:800 clamp(22px,2.2vw,32px)/1 var(--display);letter-spacing:-.04em;opacity:.8}
.client-list img{max-height:40px;width:auto;filter:grayscale(1)}

/* Offres */
.offer-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}
.offer-tabs button{display:inline-flex;align-items:center;gap:12px;min-height:52px;padding:0 22px 0 8px;border:1px solid var(--line-light);border-radius:40px;font-size:15px;transition:background .3s,color .3s,border-color .3s}
.offer-tabs button .mono{display:inline-grid;place-items:center;width:36px;height:36px;border-radius:50%;background:rgba(250,248,243,.1);font-size:11px}
.offer-tabs button:hover{border-color:var(--paper)}
.offer-tabs button[aria-selected=true]{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.offer-tabs button[aria-selected=true] .mono{background:var(--lilac)}
.offer-panel{border:1px solid var(--line-light);border-radius:6px;padding:clamp(24px,3.5vw,50px);background:var(--ink-2);animation:rack .6s var(--ease)}
.offer-head{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:end;margin-bottom:30px}
.offer-head h3{font:800 clamp(32px,3.4vw,52px)/1 var(--display);letter-spacing:-.05em;margin-top:10px}
.offer-head .eyebrow{color:var(--lilac)}
.offer-head>p{color:#cfcac2;font-size:17px;margin:0}
.formulas{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.formula{position:relative;display:flex;flex-direction:column;gap:10px;padding:26px;border:1px solid var(--line-light);border-radius:6px;background:var(--ink);transition:border-color .3s,transform .4s var(--ease)}
.formula:hover{border-color:var(--lilac);transform:translateY(-3px)}
.formula-num{font-size:11px;color:var(--lilac)}
.formula h4{margin:0;font:800 26px/1.05 var(--display);letter-spacing:-.04em}
.formula-for{font-family:var(--serif);font-style:italic;color:#cfcac2;margin:0 0 6px}
.formula ul{list-style:none;margin:0;padding:0;display:grid;gap:8px;font-size:14.5px;color:#e4dfd7}
.formula li{display:flex;gap:10px}
.formula li::before{content:"";flex-shrink:0;width:9px;height:9px;margin-top:6px;border:1.5px solid var(--lilac);border-right:0;border-bottom:0}
.formula-cta{margin-top:auto;padding-top:14px;font-size:14px;font-weight:500;display:inline-flex;gap:8px;color:var(--lilac)}
.formula-cta:hover{color:var(--paper)}
.offer-foot{display:grid;grid-template-columns:1.2fr 1fr;gap:20px 40px;margin-top:28px;align-items:start}
.offer-included{font-size:14.5px;color:#cfcac2;margin:0}
.offer-included strong{color:var(--paper);font-weight:600}
.offer-options .eyebrow{color:var(--muted-light);display:block;margin-bottom:12px}
.offer-links{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:24px;margin-top:6px}
.formulas-light .formula{background:var(--paper);border-color:var(--line)}
.formulas-light .formula:hover{border-color:var(--ink)}
.formulas-light .formula-num,.formulas-light .formula-cta{color:var(--lilac-deep)}
.formulas-light .formula-for{color:var(--muted)}
.formulas-light .formula ul{color:var(--ink-3)}
.formulas-light .formula li::before{border-color:var(--lilac-deep)}
.page .offer-included{color:var(--muted);margin-top:22px}
.page .offer-included strong{color:var(--ink)}

/* À propos */
.about .team-grid{grid-template-columns:1fr 1fr}
.about-side{display:grid;gap:14px;align-content:start}
.about-side .meaning{min-height:0;padding:26px 26px 24px;display:grid;grid-template-columns:62px 1fr;gap:6px 20px;align-items:start}
.about-side .m-icon{grid-row:span 2;width:56px;height:56px}
.about-side .meaning h3{margin:4px 0 0;font-size:26px}
.about-side .m-lens i:nth-child(2){inset:9px}.about-side .m-lens i:nth-child(3){inset:20px}
.about-side .m-af b{inset:22px}.about-side .m-target b{inset:14px}
.about-side .meaning:hover .m-af i:nth-child(1){left:10px;top:10px}.about-side .meaning:hover .m-af i:nth-child(2){right:10px;top:10px}
.about-side .meaning:hover .m-af i:nth-child(3){left:10px;bottom:10px}.about-side .meaning:hover .m-af i:nth-child(4){right:10px;bottom:10px}

/* Contact */
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-success{background:var(--lilac-wash);border-left:3px solid var(--lilac-deep);padding:16px 18px;border-radius:4px;margin:0 0 30px}
.package{gap:10px}
.package .pk-body{display:block}
.package-none .pk-head strong{font-size:18px}
.monitor-kicker{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--lilac);margin:0 0 8px}
.summary-items li span:last-child{font-family:var(--sans);font-size:13px;color:var(--muted-light)}
.summary-items .sum-head{font:400 10px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted-light);border:0;padding:16px 0 4px}
.monitor-contact{display:grid;gap:8px;margin-top:12px}
.monitor-contact .btn{justify-content:center;padding:0 14px;overflow:hidden;text-overflow:ellipsis}
.feedback.is-error{color:#b33b2e}
.feedback.is-ok{color:var(--lilac-deep);font-weight:500}
.feedback a{border-bottom:1px solid currentColor}

/* Bouton fixe mobile */
.sticky-cta{position:fixed;left:16px;right:16px;bottom:calc(14px + env(safe-area-inset-bottom));z-index:70;display:none;align-items:center;justify-content:center;gap:12px;min-height:54px;border-radius:60px;background:var(--ink);color:var(--paper);font-weight:500;box-shadow:0 12px 40px rgba(0,0,0,.3);transform:translateY(140%);transition:transform .5s var(--ease)}
.sticky-cta .sym{width:20px;height:20px;color:var(--paper)}
.sticky-cta.is-on{transform:none}
@media(max-width:760px){.sticky-cta{display:flex}}

/* Pages dédiées (offres, réalisations, ressources) */
.page-wide>*{max-width:1300px}
.crumbs{font-size:11px;letter-spacing:.1em;color:var(--muted);margin-bottom:26px}
.crumbs a:hover{color:var(--ink)}
.page-head{margin-bottom:clamp(40px,5vw,70px)}
.page-head .eyebrow{color:var(--lilac-deep)}
.page-head h1{margin:16px 0 22px}
.page-lead{font-size:clamp(18px,1.6vw,23px);max-width:760px;color:var(--ink-3);margin-bottom:28px}
.page-block{margin-top:clamp(50px,6vw,90px)}
.page-block>h2{font-size:clamp(30px,3vw,46px);margin:0 0 12px}
.page-sub{color:var(--muted);margin-bottom:26px}
.chips-lg li{font-size:15px;padding:10px 18px}
.door-offers-light a{font-size:15px}
.page-cta{background:var(--ink);color:var(--paper);border-radius:8px;padding:clamp(30px,5vw,64px);position:relative;overflow:hidden}
.page-cta h2{color:var(--paper);font-size:clamp(30px,3.4vw,52px);margin:0 0 12px}
.page-cta p{color:#cfcac2;max-width:560px;margin-bottom:24px}
.page-cta::after{content:"";position:absolute;right:-30px;bottom:-30px;width:200px;height:200px;opacity:.9;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 120'%3E%3Cpath d='M10 38V10h28M82 10h28v28M110 82v28H82M38 110H10V82' fill='none' stroke='%23faf8f3' stroke-opacity='.15' stroke-width='8'/%3E%3Ccircle cx='80' cy='80' r='13' fill='%23c8bdf0'/%3E%3C/svg%3E") no-repeat center/contain;pointer-events:none}
.page-cta-wrap{padding-top:0}
.mini-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px}
.mini-card{display:grid;gap:6px}
.mini-card .work-visual{aspect-ratio:4/3;border-radius:4px}
.mini-card strong{font:800 20px/1.15 var(--display);letter-spacing:-.03em;margin-top:10px}
.mini-card>span:last-child{color:var(--muted);font-size:14px}
.case{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line);margin:0}
.case>div{padding:24px 26px 24px 0;border-right:1px solid var(--line);margin-right:26px}
.case>div:last-child{border:0;margin:0}
.case dt{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--lilac-deep);margin-bottom:10px}
.case dd{margin:0;font-size:16px;color:var(--ink-3)}
.case ul{margin:0;padding-left:18px}
.case-videos{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;align-items:start}
.case-video{margin:0}
.case-video.is-vertical{grid-row:span 2}
.case-video figcaption{font-size:11px;letter-spacing:.1em;color:var(--muted);margin-top:10px}
.case-video .pd-screen.is-vertical video{height:auto;width:100%;max-height:none}
.case-cover{border-radius:6px;aspect-ratio:16/9;margin-top:40px}
.next-project{display:flex;flex-direction:column;gap:8px;margin-top:clamp(50px,6vw,90px);padding-top:30px;border-top:1px solid var(--line)}
.next-project .mono{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.next-project strong{font:800 clamp(28px,3.4vw,52px)/1 var(--display);letter-spacing:-.05em;transition:color .3s}
.next-project:hover strong{color:var(--lilac-deep)}
.page-tools-main .tools{padding-top:calc(var(--nav-h) + clamp(60px,7vw,100px))}
.tools-h1{font:800 clamp(46px,7vw,118px)/.98 var(--display);letter-spacing:-.055em}
.tools-h1 em{color:var(--lilac);font-weight:400}
.lightbox-fx.is-page{z-index:200}

@media(max-width:960px){
 .doors{grid-template-columns:1fr}
 .door+.door{border-left:0;border-top:1px solid var(--line)}
 .offer-head,.offer-foot{grid-template-columns:1fr}
 .formulas{grid-template-columns:1fr}
 .about .team-grid{grid-template-columns:1fr}
 .case{grid-template-columns:1fr}
 .case>div{border-right:0;margin-right:0;border-bottom:1px solid var(--line);padding-right:0}
 .case-videos{grid-template-columns:1fr}
 .stage-copy{max-width:none;right:var(--gutter)}
}
@media(max-width:760px){
 .stage-copy{left:20px;right:20px;bottom:110px}
 .stage-actions{left:auto;right:20px;bottom:40px;justify-content:flex-end}
 .stage-actions .stage-btn small{display:none}
 .stage-frame{left:50%;top:34%}
 .stage-title{font-size:clamp(40px,12vw,64px)}
 .stage-lead{font-size:16px;margin-bottom:20px}
 .stage-ctas .btn{flex:1 1 100%;justify-content:space-between}
 .stage{min-height:700px}
 .offer-tabs button{flex:1 1 calc(50% - 8px);padding-right:12px}
 .footer{padding-bottom:100px}
}
.pd-more{display:flex;flex-wrap:wrap;align-items:center;gap:20px;margin-top:30px;padding-top:24px;border-top:1px solid var(--line)}
.project-dialog .case{margin-top:24px}
@media(max-width:760px){.stage{--fs:min(56vw,34vh)}.stage-frame{top:30%}}
.pd-gallery a{display:block;width:100%;margin:0 0 12px;break-inside:avoid;border-radius:4px;overflow:hidden;position:relative}
.pd-gallery a .ph>img{position:relative;height:auto;display:block}
@media(max-width:760px){.stage{--fs:min(50vw,27vh)}.stage-frame{top:23%}.stage-hint{display:none}}
.sticky-cta{background:var(--lilac);color:var(--ink)}
.sticky-cta .sym{color:var(--ink)}.sticky-cta .sym .sym-dot{fill:var(--ink)}
.menu-is-open .sticky-cta{display:none}

/* ═══════════════════════════════════════════════════════════════════════════
   V5 — Âme retrouvée : mise au point totale, filtres FOCUS, formules, freelances
   ═══════════════════════════════════════════════════════════════════════════ */
.grain{opacity:.035}

/* Ouverture : au verrouillage, toute l'image devient nette */
.stage-blur{transition:opacity .9s var(--ease)}
.stage.is-locked .stage-blur{opacity:0}
.stage-shade{transition:background .9s var(--ease)}
.stage.is-locked .stage-shade{background:radial-gradient(ellipse 90% 80% at 50% 45%,transparent 55%,rgba(0,0,0,.45)),linear-gradient(transparent 45%,rgba(0,0,0,.65))}
.stage.is-locked .stage-frame{filter:none;opacity:1}
.stage.is-locked .lens-ring{border-color:var(--lilac);transform:scale(1.15);opacity:.0;transition:opacity .6s .3s,transform .6s}
.stage.is-locked .lens-dot{transform:translate(-50%,-50%) scale(.5)}
.stage-media .stage-video{transition:transform 1.2s var(--ease)}
.stage.is-locked .stage-media .stage-video{transform:scale(1.015)}

/* Titres : rack focus discret à l'apparition */
.js .section-head h2.reveal{filter:blur(8px);transition:opacity .9s var(--ease),transform .9s var(--ease),filter 1.1s var(--ease)}
.js .section-head h2.reveal.is-in{filter:none}

/* Filtre FOCUS renforcé — violet, blanc cassé, grain, symbole (posé PAR-DESSUS) */
.ph>img,.ph>video{filter:contrast(1.06) saturate(.82) brightness(.97)}
.ph::before{background:
  linear-gradient(150deg,rgba(250,248,243,.38) 0%,rgba(250,248,243,0) 34%),
  linear-gradient(0deg,rgba(38,26,74,.78) 0%,rgba(60,44,110,.28) 42%,rgba(60,44,110,0) 70%),
  linear-gradient(rgba(110,88,176,.30),rgba(110,88,176,.30))!important;mix-blend-mode:soft-light;opacity:1}
.ph>.ph-tint{position:absolute;inset:0;z-index:1;pointer-events:none;background:#6e58b0;mix-blend-mode:color;opacity:.16}
.ph::after{opacity:.95!important;background:
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.1' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .5 0 0 0 0 .5 0 0 0 0 .5 0 0 0 1 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"),
  radial-gradient(ellipse 75% 70% at 50% 45%,transparent 50%,rgba(14,10,28,.8) 100%)!important}
.ph-mark{gap:8px;align-items:center}
.ph-mark small{font:900 13px/1 var(--display);letter-spacing:-.04em;color:var(--paper)}
.ph-mark small::after{content:"";display:inline-block;width:4px;height:4px;border-radius:50%;background:var(--lilac);margin-left:2px;vertical-align:1px}
.work-card:hover .work-visual.ph::before{opacity:.6}
/* Vidéos : filtre complet en aperçu, allégé pendant la lecture */
.pd-screen{isolation:isolate}
.pd-screen::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;mix-blend-mode:soft-light;transition:opacity .5s;
 background:linear-gradient(150deg,rgba(250,248,243,.35),rgba(250,248,243,0) 34%),linear-gradient(0deg,rgba(38,26,74,.75),rgba(60,44,110,0) 65%),linear-gradient(rgba(110,88,176,.3),rgba(110,88,176,.3))}
.pd-screen::after{opacity:.55!important;z-index:1}
.pd-screen .ph-mark{z-index:2;transition:opacity .4s}
.pd-screen.is-playing::before{opacity:0}
.pd-screen.is-playing::after{opacity:.18!important}
.pd-screen.is-playing .ph-mark{opacity:.35}
.pd-screen video{position:relative;z-index:0}

/* Formules : un numéro, une description */
.formula-num{font:900 46px/1 var(--display);letter-spacing:-.05em;color:var(--lilac);font-family:var(--display)}
.formulas-light .formula-num{color:var(--lilac-deep)}
.formula h4{font:800 22px/1.15 var(--display);letter-spacing:-.03em;margin:4px 0 6px}
.package .pk-head strong{font:900 30px/1 var(--display);letter-spacing:-.04em}
.package .pk-head b{font:600 15px/1.3 var(--sans);color:var(--ink)}
.package:has(input:checked) .pk-head b{color:var(--paper)}
.package-none .pk-head strong{font-size:18px}

/* Bandeau « Faire le FOCUS » */
.focus-band{min-height:auto;padding:clamp(90px,10vw,150px) var(--gutter) 150px;border-top:1px solid var(--line)}
.focus-band .statement{font-size:clamp(22px,2.6vw,40px);max-width:980px;margin:clamp(36px,4vw,60px) 0 0}
.focus-band .hero-disc{opacity:.75}
.offers+.tools{border-top:1px solid var(--line-light)}

/* Ressources : accompagnement */
.hint-resources{background:var(--lilac-wash);border-left:3px solid var(--lilac-deep);padding:12px 14px;border-radius:4px;color:var(--ink)}
.res-toast{position:fixed;right:20px;bottom:20px;z-index:80;width:min(380px,calc(100vw - 32px));background:var(--ink);color:var(--paper);border-radius:10px;padding:22px 22px 20px;box-shadow:0 24px 70px rgba(0,0,0,.35);display:grid;gap:10px;transform:translateY(140%);transition:transform .6s var(--ease)}
.res-toast.is-on{transform:none}
.res-toast .sym{width:28px;height:28px;color:var(--paper)}
.res-toast strong{font:800 22px/1.1 var(--display);letter-spacing:-.03em}
.res-toast p{margin:0;color:#cfcac2;font-size:14px}
.res-toast .btn{justify-self:start}
.res-toast-close{position:absolute;right:12px;top:10px;color:var(--muted-light);font-size:18px;padding:4px 8px}
@media(max-width:760px){.res-toast{left:16px;right:16px;bottom:84px;width:auto}}

/* Carte « Rejoindre » dans À propos */
.join-card{display:grid;gap:8px;padding:26px;border-radius:6px;background:var(--ink);color:var(--paper);position:relative;overflow:hidden;transition:transform .4s var(--ease)}
.join-card:hover{transform:translateY(-3px)}
.join-card .eyebrow{color:var(--lilac)}
.join-card strong{font:800 26px/1.05 var(--display);letter-spacing:-.04em}
.join-card span:last-child{color:#cfcac2;font-size:14.5px}
.join-card b{color:var(--lilac);font-weight:600;white-space:nowrap}

/* Page Rejoindre */
.join-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,380px);gap:clamp(30px,5vw,70px);align-items:start}
.join-form{min-width:0}
.join-steps{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-wrap:wrap;gap:6px 18px;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.join-steps li.is-on{color:var(--ink)}
.join-steps li.is-done{color:var(--lilac-deep)}
.join-progress{height:3px;background:var(--paper-3);border-radius:3px;overflow:hidden;margin-bottom:34px}
.join-progress span{display:block;height:100%;width:20%;background:var(--lilac-deep);transition:width .6s var(--ease)}
.join-step{border:0;padding:0;margin:0 0 34px;min-width:0}
.join-step legend{display:flex;align-items:center;gap:14px;font:800 clamp(26px,2.6vw,38px)/1.1 var(--display);letter-spacing:-.04em;margin-bottom:22px;padding:0}
.join-step legend .mono{font-size:11px;font-weight:400;letter-spacing:.1em;display:inline-grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--ink);color:var(--paper)}
.js .join-form.is-stepper .join-step{display:none}
.js .join-form.is-stepper .join-step.is-current{display:block;animation:rack .6s var(--ease)}
.field-label{display:block;font-size:13px;font-weight:500;margin:6px 0 10px}
.field select{background-color:#fffdf9}
.skill-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:18px}
.skill{border:1px solid var(--line);border-radius:6px;background:var(--paper);transition:border-color .3s,background .3s}
.skill:has(input[type=checkbox]:checked){border-color:var(--ink);background:#fffdf9}
.skill-toggle{display:flex;align-items:center;gap:12px;padding:14px 16px;cursor:pointer;position:relative}
.skill-toggle input{position:absolute;opacity:0}
.skill-box{width:26px;height:26px;flex-shrink:0;color:var(--muted-light);transition:color .3s}
.skill-box .sym{width:26px;height:26px}
.skill-box .sym-dot{fill:transparent;transition:fill .3s}
.skill-toggle input:checked+.skill-box{color:var(--ink)}
.skill-toggle input:checked+.skill-box .sym-dot{fill:var(--lilac-deep)}
.skill-toggle input:focus-visible+.skill-box{outline:2px solid var(--lilac-deep);outline-offset:3px}
.skill-name{font-weight:500}
.skill-level{display:none;gap:4px;padding:0 12px 12px}
.skill:has(input[type=checkbox]:checked) .skill-level{display:flex}
.no-js .skill-level{display:flex}
.skill-level label{flex:1;position:relative;cursor:pointer}
.skill-level input{position:absolute;opacity:0}
.skill-level span{display:block;text-align:center;font-size:12px;padding:7px 4px;border:1px solid var(--line);border-radius:30px;transition:background .2s,color .2s}
.skill-level input:checked+span{background:var(--lilac);border-color:var(--lilac);color:var(--ink);font-weight:600}
.skill-level input:focus-visible+span{outline:2px solid var(--lilac-deep);outline-offset:2px}
.gear-grid,.avail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:16px 0 22px}
.avail-grid{grid-template-columns:repeat(4,1fr)}
.gear{position:relative;cursor:pointer}
.gear input{position:absolute;opacity:0}
.gear span{display:flex;align-items:center;gap:10px;min-height:56px;padding:10px 14px;border:1px solid var(--line);border-radius:6px;font-size:14px;transition:background .2s,border-color .2s,color .2s}
.gear i{width:14px;height:14px;flex-shrink:0;border:1.5px solid currentColor;border-radius:50%;position:relative}
.gear input:checked+span{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.gear input:checked+span i{border-color:var(--lilac);background:var(--lilac)}
.gear input:focus-visible+span{outline:2px solid var(--lilac-deep);outline-offset:2px}
.option-inline{border:0;padding:8px 0;display:inline-flex;margin-right:20px}
.consent .opt-label{font-size:13px;color:var(--muted)}
.join-nav{display:flex;gap:10px;align-items:center;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:24px}
.join-nav [data-join-next],.join-nav [data-join-submit]{margin-left:auto}
.js .join-form.is-stepper [data-join-submit]{display:none}
.js .join-form.is-stepper.is-last [data-join-submit]{display:inline-flex}
.js .join-form.is-stepper.is-last [data-join-next]{display:none}
.no-js [data-join-next],.no-js [data-join-prev]{display:none}
/* Clap / fiche talent */
.slate{position:sticky;top:100px;border-radius:8px;overflow:hidden;background:var(--ink);color:var(--paper);box-shadow:0 30px 60px rgba(20,20,20,.18)}
.slate-top{display:flex;height:34px;transform-origin:left bottom;transition:transform .5s var(--ease)}
.slate-top i{flex:1;background:repeating-linear-gradient(-55deg,var(--paper) 0 14px,var(--ink) 14px 28px)}
.slate.is-clap .slate-top{animation:clap .5s var(--ease)}
@keyframes clap{40%{transform:rotate(-14deg)}100%{transform:none}}
.slate-body{padding:22px 24px 20px;display:grid;gap:14px}
.slate-row,.slate-foot{display:flex;justify-content:space-between;font-size:10px;letter-spacing:.14em;color:var(--muted-light)}
.slate-foot b{color:var(--lilac);font-weight:400}
.slate-name{font:900 clamp(30px,2.6vw,40px)/1 var(--display);letter-spacing:-.05em;filter:blur(var(--sb,4px));transition:filter .5s}
.slate-city{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--lilac);margin-top:-6px}
.slate-cell{border-top:1px solid var(--line-light);padding-top:10px;display:grid;gap:6px}
.slate-cell .mono{font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-light)}
.slate-cell b{font-weight:500;font-size:14px}
.slate-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px}
.slate-chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.slate-chips li{font-size:12px;border:1px solid var(--line-light);border-radius:30px;padding:4px 10px}
.slate-chips li b{color:var(--lilac);font-weight:400;margin-left:4px}
.slate-chips .muted{color:var(--muted-light);border-style:dashed}
.join-done{text-align:center;max-width:620px;margin:0 auto;padding:60px 0;display:grid;gap:18px;justify-items:center}
.join-done-sym .sym{width:90px;height:90px}
.join-done h2{font-size:clamp(32px,3.6vw,52px)}
.join-done p{color:var(--muted)}
@media(max-width:960px){.join-layout{grid-template-columns:1fr}.slate{position:static;order:-1}.skill-grid{grid-template-columns:1fr}.gear-grid{grid-template-columns:1fr 1fr}.avail-grid{grid-template-columns:1fr 1fr}}
.summary-items .sum-lead{display:block;font:800 18px/1.2 var(--display);letter-spacing:-.02em;color:var(--paper);border:0;padding:0 0 10px}
.stage-osd .osd-br{bottom:auto;top:calc(var(--nav-h) + 30px);right:28px}
@media(max-width:760px){.stage-osd .osd-br{display:none}}
.slate-chips li{color:var(--paper)}
.join .gear span,.join .skill-name{color:inherit}
@media(max-width:760px){.stage.is-locked .stage-shade,.stage-shade{background:linear-gradient(rgba(0,0,0,.25),transparent 22%,transparent 32%,rgba(0,0,0,.72) 62%,rgba(0,0,0,.8))}}

.pd-screen{isolation:isolate}
.pd-screen.is-started .veil-play{opacity:0;visibility:hidden}
.veil-play{position:absolute;z-index:3;left:50%;top:50%;transform:translate(-50%,-50%);display:inline-flex;align-items:center;gap:10px;padding:14px 22px 14px 18px;border:0;border-radius:40px;background:var(--paper);color:var(--ink);font:500 14px/1 var(--sans);cursor:pointer;box-shadow:0 10px 30px rgba(20,20,20,.25);transition:background .3s,transform .4s var(--ease),opacity .4s,visibility .4s}
.veil-play span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--ink);color:var(--paper);font-size:10px;padding-left:2px}
.veil-play:hover{background:var(--lilac);transform:translate(-50%,-50%) scale(1.04)}
.pd-gallery .ph{display:block}

/* ═════════════ v6 — Menu : Recrutement mis en avant ═════════════ */
.nav-links>a.nav-join{display:inline-flex;align-items:center;gap:8px;padding:7px 8px 7px 11px;border-radius:30px;background:var(--lilac-wash);box-shadow:inset 0 0 0 1px rgba(110,88,176,.25);font-weight:500;transition:background .3s,box-shadow .3s}
.nav-links>a.nav-join::after{content:none}
.nav-links>a.nav-join:hover,.nav-links>a.nav-join.is-current{background:var(--lilac);box-shadow:inset 0 0 0 1px rgba(110,88,176,.5)}
.nav-join small{font:500 8.5px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;background:var(--ink);color:var(--paper);padding:4px 6px 3px;border-radius:20px}
.nav-join-dot{width:7px;height:7px;border-radius:50%;background:var(--lilac-deep);animation:joinPulse 1.8s var(--ease) infinite}
@keyframes joinPulse{0%{box-shadow:0 0 0 0 rgba(110,88,176,.55)}70%,100%{box-shadow:0 0 0 7px rgba(110,88,176,0)}}
.nav.on-dark .nav-links>a.nav-join{background:rgba(200,189,240,.16);box-shadow:inset 0 0 0 1px rgba(200,189,240,.35)}
.nav.on-dark .nav-join small{background:var(--lilac);color:var(--ink)}
.nav.on-dark .nav-join-dot{background:var(--lilac)}
@media(max-width:1180px) and (min-width:961px){.nav-links>a:nth-child(3){display:none}.nav-join small{display:none}}
@media(max-width:960px){
 .nav-links>a.nav-join{background:none;box-shadow:none;padding:0;border-radius:0;font:inherit;color:var(--lilac);gap:14px}
 .nav-links>a.nav-join:hover,.nav-links>a.nav-join.is-current{background:none;box-shadow:none}
 .nav-links .nav-join small{font-size:10px;background:var(--lilac);color:var(--ink);align-self:center}
 .nav-links .nav-join-dot{width:10px;height:10px;background:var(--lilac)}
}

/* ═════════════ v6 — Clap de fin ═════════════ */
.choice-big.ghost i{color:var(--ink);animation:none;font-size:.62em}
.closing-sub{max-width:560px;margin:30px auto 0;text-align:center;color:rgba(20,20,20,.74);font-size:15px;line-height:1.55}
.case-video .pd-screen:not(.is-vertical){aspect-ratio:16/9}
.case-video .pd-screen:not(.is-vertical) video{width:100%;height:100%;max-height:none;object-fit:contain}
.case-video .pd-screen.is-vertical{aspect-ratio:9/16;width:min(100%,440px);margin:0 auto}
.case-video .pd-screen.is-vertical video{width:100%;height:100%;object-fit:contain}
@media(max-width:960px){.nav .nav-links>a.nav-join,.nav.on-dark .nav-links>a.nav-join{background:none!important;box-shadow:none!important}}

/* ═════════════ v7 — APERÇUS « MISE AU POINT » (WebGL) + TITRAGE ═════════════ */
.ph::before,.ph::after,.pd-screen::before,.pd-screen::after{content:none!important}
.ph-tint,.ph-mark,.work-visual.ph .af-frame,.work-index{display:none!important}
.ph>canvas.fx{position:absolute;inset:0;width:100%;height:100%;z-index:1;display:block;opacity:0;transition:opacity 1s var(--ease);pointer-events:none}
.ph.fx-on>canvas.fx{opacity:1}
/* Repli sans WebGL : flou CSS, net au survol */
.work-visual.ph>img,.ph>img{transition:filter .9s var(--ease),transform 1.2s var(--ease)!important}
.ph:not(.fx-on)>img{filter:blur(14px) saturate(.6) brightness(1.05)!important;transform:scale(1.1)!important}
.work-card:hover .ph:not(.fx-on)>img,.mini-card:hover .ph:not(.fx-on)>img,a:hover>.ph:not(.fx-on)>img,.ph:not(.fx-on):hover>img{filter:none!important;transform:scale(1.02)!important}
.ph.fx-on>img{filter:none!important;transform:none!important}
@media (hover:none){.ph:not(.fx-on)>img{filter:none!important;transform:none!important}}
.lightbox-fx .ph>img{filter:none!important;transform:none!important}
.work-preview{z-index:0}
.ph.fx-on .work-preview{opacity:0!important}

/* Pastilles (client / prestation) */
.work-pills{position:absolute;left:16px;right:16px;top:16px;z-index:3;display:flex;justify-content:space-between;gap:8px;pointer-events:none}
.pill{font:500 10px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--paper);padding:7px 11px 6px;border:1px solid rgba(250,248,243,.5);border-radius:30px;background:rgba(20,20,20,.16);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:49%}

/* Titrage : kicker + grand titre mot à mot + ligne en italique */
.ttl{position:absolute;left:clamp(18px,2.2vw,32px);right:96px;bottom:clamp(18px,2.2vw,30px);z-index:2;color:var(--paper);pointer-events:none;display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.ttl::before{content:"";position:absolute;left:-60px;right:-140px;bottom:-60px;height:calc(100% + 170px);z-index:-1;background:linear-gradient(to top,rgba(20,20,20,.58),rgba(20,20,20,.18) 55%,transparent);pointer-events:none}
.ttl-k{display:flex;align-items:center;gap:10px;font:500 10px/1 var(--mono);letter-spacing:.2em;text-transform:uppercase;opacity:0;transform:translateY(8px);transition:opacity .7s var(--ease) .1s,transform .9s var(--ease) .1s}
.ttl-k i{width:30px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform 1s var(--ease) .2s}
.ttl-t{font:900 clamp(30px,3.6vw,58px)/.9 var(--display);letter-spacing:-.06em;text-shadow:0 2px 30px rgba(20,20,20,.18)}
.is-wide .ttl-t{font-size:clamp(40px,6.4vw,104px)}
.ttl-s{font:400 italic clamp(17px,1.6vw,26px)/1.12 var(--serif);letter-spacing:-.01em;max-width:30ch}
.is-wide .ttl-s{font-size:clamp(20px,2.1vw,32px)}
.ttl .w{display:inline-block;overflow:hidden;vertical-align:top;padding:0 .02em .1em 0;margin-bottom:-.1em}
.ttl .w>span{display:inline-block;transform:translateY(112%) rotate(5deg);transform-origin:0 100%;transition:transform 1.1s var(--ease);transition-delay:calc(var(--i) * 60ms + .2s)}
.is-titled .ttl .w>span{transform:none}
.is-titled .ttl-k{opacity:.9;transform:none}
.is-titled .ttl-k i{transform:scaleX(1)}
.work-card:hover .is-titled .ttl .w>span,.mini-card:hover .is-titled .ttl .w>span{animation:ttlRoll .9s var(--ease) both;animation-delay:calc(var(--i) * 35ms)}
@keyframes ttlRoll{0%{transform:none}42%{transform:translateY(-112%)}43%{transform:translateY(112%) rotate(5deg)}100%{transform:none}}
.work-meta{padding-top:16px}
.work-meta .work-sub{grid-row:1;font-size:15px}
.work-meta .work-tags{opacity:.75;letter-spacing:.1em}
.mini-card .ttl{right:20px;bottom:18px;left:18px}
.mini-card .ttl-t{font-size:clamp(26px,2.4vw,38px)}
.mini-card .ttl-s{font-size:16px}
@media (prefers-reduced-motion:reduce){.ttl .w>span,.ttl-k{transition:none;transform:none!important;opacity:1;animation:none!important}}

/* ═════════════ v7 — SMARTPHONE ═════════════
   Barre flottante, rythme vertical resserré, carrousels tactiles, rangées de pastilles défilantes. */
.nav-quick{display:none}
.swipe-ui{display:none}
@media(max-width:960px){
 /* Barre de navigation flottante */
 :root{--nav-h:60px}
 .nav{top:10px;left:10px;right:10px;height:58px;padding:0 8px 0 16px;border-radius:18px}
 .nav::before{border-radius:18px;border:1px solid var(--line);opacity:1;background:rgba(250,248,243,.72)}
 .nav.on-dark::before{background:rgba(20,20,20,.55);border-color:rgba(250,248,243,.12)}
 .nav.is-scrolled{--nav-h:58px}
 .nav.is-hidden{transform:translateY(-130%)}
 .nav .logo{transform:scale(.86);transform-origin:left center}
 .menu{padding:10px 12px;border-radius:12px}
 .nav.menu-open::before{opacity:0}
 .nav-links{padding:110px 24px calc(30px + env(safe-area-inset-bottom));justify-content:flex-start;overflow-y:auto}
 .nav-links>a:not(.nav-cta):not(.nav-client):not(.nav-join){padding:4px 0}
 .nav-quick{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:28px;width:100%}
 .nav-quick a{flex:1 1 0;min-width:96px;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:50px;border:1px solid var(--line-light);border-radius:14px;font:500 14px/1 var(--sans);letter-spacing:0}
 .nav-quick svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linejoin:round}
 .nav-links .nav-cta{min-height:54px;padding:0 22px;border-radius:14px;width:100%;justify-content:space-between}
}
@media(max-width:700px){
 :root{--gutter:20px}
 body{font-size:16px}
 /* Rythme vertical */
 .section{padding-top:72px;padding-bottom:72px}
 .section-head{margin-bottom:28px;gap:16px}
 h2{font-size:clamp(38px,11.2vw,52px);line-height:.96}
 .section-intro{font-size:16px;line-height:1.5}
 .page{padding-top:calc(var(--nav-h) + 54px);padding-bottom:70px}
 .page h1{font-size:clamp(42px,12.4vw,60px);margin:14px 0 24px}
 .page-lead{font-size:17px}
 .crumbs{font-size:10px}

 /* Ouverture */
 .stage-title{font-size:clamp(44px,13vw,60px)}
 .stage-lead{font-size:16px}
 .stage-lead span{display:none}
 .stage-actions{right:20px;bottom:calc(20px + env(safe-area-inset-bottom))}

 /* Portes d'entrée : cartes compactes, pastilles défilantes */
 .doors{grid-template-columns:minmax(0,1fr)}
 .door{min-width:0}
 .door{padding:34px var(--gutter) 30px;gap:10px}
 .door h2{font-size:clamp(30px,8.6vw,38px)}
 .door p{font-size:15px}
 .door-offers{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:6px calc(-1 * var(--gutter)) 0;padding:2px var(--gutter);scroll-padding-left:var(--gutter)}
 .door-offers::-webkit-scrollbar{display:none}
 .door-offers li{flex:0 0 auto}

 /* Rangées de pastilles défilantes : filtres, onglets */
 .filters,.offer-tabs,.tool-tabs,.join-steps{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-left:calc(-1 * var(--gutter));margin-right:calc(-1 * var(--gutter));padding:2px var(--gutter);-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity}
 .section-head .filters{align-self:stretch;width:auto;min-width:0;max-width:none}
 .filters::-webkit-scrollbar,.offer-tabs::-webkit-scrollbar,.tool-tabs::-webkit-scrollbar,.join-steps::-webkit-scrollbar{display:none}
 .filters button,.offer-tabs button,.tool-tabs button{flex:0 0 auto!important;white-space:nowrap;scroll-snap-align:center}
 .offer-tabs button,.tool-tabs button{min-height:46px;padding:0 18px 0 6px;font-size:14px}
 .offer-tabs button .mono,.tool-tabs button .mono{width:32px;height:32px}
 .filters button{padding:10px 16px}

 /* Carrousels tactiles */
 .swipe{display:flex!important;grid-template-columns:none!important;columns:auto!important;gap:12px!important;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;margin-left:calc(-1 * var(--gutter));margin-right:calc(-1 * var(--gutter));padding:4px var(--gutter) 6px;scroll-padding:0 var(--gutter);-webkit-overflow-scrolling:touch}
 .swipe::-webkit-scrollbar{display:none}
 .swipe{align-items:flex-start}
 .swipe>*{flex:0 0 86%;min-width:0;scroll-snap-align:start;margin:0!important}
 .veil-play{white-space:nowrap;padding:11px 18px 11px 12px;font-size:13px}
 .veil-play span{width:24px;height:24px}
 .swipe>[hidden]{display:none!important}
 .swipe-ui{display:flex;align-items:center;gap:14px;margin-top:16px;font-size:10px;letter-spacing:.14em}
 .swipe-ui[hidden]{display:none}
 .swipe-bar{flex:1;height:1px;background:var(--line);position:relative;overflow:hidden}
 .swipe-bar i{position:absolute;inset:0;background:currentColor;transform-origin:left;transform:scaleX(.25);transition:transform .25s}
 .dark .swipe-bar{background:var(--line-light)}
 .swipe-hint{opacity:.6;transition:opacity .4s}
 .swipe-hint::after{content:" →";display:inline-block;animation:swipeHint 1.6s var(--ease) infinite}
 .swipe-ui.is-used .swipe-hint{opacity:0}
 @keyframes swipeHint{50%{transform:translateX(5px)}}

 /* Réalisations */
 .work-grid.swipe>.work-card{flex-basis:88%}
 .work-card .work-visual,.work-card.is-wide .work-visual{aspect-ratio:4/5}
 .ttl{left:18px;right:18px;bottom:18px;gap:6px}
 .ttl-t,.is-wide .ttl-t{font-size:clamp(34px,11vw,50px)}
 .ttl-s,.is-wide .ttl-s{font-size:18px;max-width:none}
 .work-arrow{top:auto;right:16px;bottom:auto;width:44px;height:44px;font-size:15px}
 .work-card .work-arrow{position:absolute;top:56px}
 .work-pills{left:12px;right:12px;top:12px}
 .pill{font-size:9px;padding:6px 9px 5px}
 .work-meta{display:block;padding-top:14px}
 .work-meta .work-sub{display:block;font-size:15px;line-height:1.45}
 .work-meta .work-tags{display:inline-block;margin-top:10px;font-size:10px}

 /* Offres : formules en carrousel */
 .offer-head{gap:12px}
 .offer-head h3{font-size:clamp(30px,8.6vw,40px)}
 .formulas.swipe>.formula{flex-basis:84%;padding:22px}
 .formula-num{font-size:46px}
 .offer-foot{gap:18px}
 .offer-options .chips{gap:6px}
 .offer-options .chips li{font-size:12.5px;padding:6px 12px}
 .offer-links{flex-direction:column;align-items:stretch;gap:14px}
 .offer-links .btn{justify-content:space-between}

 /* Ressources */
 .guides.swipe>.guide{flex-basis:82%;min-height:0}
 .tool-tabs{margin-bottom:22px}

 /* Méthode : frise compacte */
 .steps{row-gap:0}
 .step{padding:18px 0;border-top:1px solid var(--line)}
 .step-dot{top:20px}

 /* À propos */
 .about-side .meaning{padding:20px;min-height:0}
 .about-side .meaning p{font-size:14.5px}
 .team-grid{gap:16px}

 /* Formulaire */
 .brief-step{margin-bottom:34px}
 .choice-row,.choices{gap:8px}
 .field input,.field textarea,.field select{font-size:16px}

 /* Clap de fin */
 .closing{padding:80px var(--gutter)}
 .closing-title{font-size:clamp(44px,13vw,64px)}
 .closing-choice{flex-direction:column;align-items:stretch;gap:10px}
 .choice-big{justify-content:space-between;font-size:26px;min-height:64px;padding:0 26px}
 .closing .eyebrow{font-size:9px}

 /* Pied de page compact */
 .footer{padding:60px var(--gutter) calc(96px + env(safe-area-inset-bottom))}
 .footer-top{grid-template-columns:1fr 1fr!important;gap:34px 18px}
 .footer-col:first-child{grid-column:1/-1}
 .footer-col{gap:10px;font-size:14.5px}
 .footer-big{font-size:22px;word-break:break-word}
 .footer-mark{margin-top:44px;font-size:21vw}
 .footer-bottom{gap:8px;font-size:12px}

 /* Bouton fixe plus discret */
 .sticky-cta{left:50%;right:auto;width:min(calc(100% - 32px),360px);transform:translate(-50%,160%);min-height:50px;font-size:15px}
 .sticky-cta.is-on{transform:translate(-50%,0)}

 /* Pages offre & réalisation */
 .mini-grid.swipe>.mini-card{flex-basis:84%}
 .page-cta{padding:28px 22px 30px}
 .page-cta::after{display:none}
 .page-cta .stage-ctas{flex-direction:column;align-items:stretch}
 .page-cta .btn{justify-content:space-between}
 .case-videos.swipe>.case-video{flex-basis:88%}
 .case-videos.swipe>.case-video.is-vertical{flex-basis:62%}
 .case-video .pd-screen.is-vertical{width:100%}
 .pd-gallery{columns:2;column-gap:8px}
 .pd-gallery a{margin-bottom:8px}

 /* Rejoindre : étapes en ligne, fiche talent après le formulaire */
 .join-layout{display:flex;flex-direction:column}
 .join-form{order:1;width:100%}
 .slate{order:2;position:static;width:100%}
 .join-steps{font-size:10px!important;gap:16px;margin-bottom:10px}
 .join-steps li{flex:0 0 auto;white-space:nowrap}

 /* Fenêtre réalisation (dialog) */
 .project-dialog{width:100%;max-width:none;height:100%;max-height:none;margin:0;border-radius:0}
}
@media(max-width:380px){
 .ttl-t,.is-wide .ttl-t{font-size:34px}
 .nav-quick a{min-width:0}
}

/* ═════════════ v8 — Référencement : pied de page avec pages « À Lyon », pages ciblées ═════════════ */
@media(min-width:961px){.footer-top{grid-template-columns:1.5fr 1fr 1fr 1.1fr 1fr}}
.landing-sections{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.4vw,36px)}
.landing-sections article{border-top:1px solid var(--line);padding-top:22px}
.landing-sections h2{font:800 clamp(22px,1.9vw,28px)/1.15 var(--display);letter-spacing:-.03em;margin:0 0 12px}
.landing-sections p{color:var(--ink-3);margin:0;line-height:1.6}
.landing-points{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;list-style:none;margin:0;padding:0}
.landing-points li{display:flex;align-items:center;gap:12px;padding:16px 18px;border:1px solid var(--line);border-radius:6px;font-weight:500}
.landing-points li::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--lilac-deep);flex-shrink:0}
.page-faq .faq-item summary{grid-template-columns:44px 1fr 26px}
.see-also{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}
.see-also a{display:inline-flex;gap:8px;border:1px solid var(--line);border-radius:40px;padding:10px 16px;font-size:14.5px;transition:background .3s,color .3s}
.see-also a:hover{background:var(--ink);color:var(--paper)}
@media(max-width:960px){.landing-sections,.landing-points{grid-template-columns:1fr}}
@media(max-width:700px){.landing-points li{padding:13px 15px;font-size:15px}.footer-lyon{grid-column:1/-1}}
@media(min-width:961px){.footer-big{font-size:clamp(19px,1.6vw,30px);overflow-wrap:normal;word-break:normal}}
