:root{--ink:#151b26;--ink2:#1f2735;--red:#b3242f;--red2:#d8454f;--bone:#f4f1ec;--bone2:#e8e3da;--steel:#8a94a3;--mute:#646a73;
--disp:'Bespoke Serif',Georgia,serif;--txt:'Cabinet Grotesk',system-ui,sans-serif}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{background:var(--bone);color:var(--ink);font:400 17px/1.55 var(--txt);overflow-x:clip}
body::after{content:"";position:fixed;inset:0;background:url(../img/grain.png);opacity:.05;pointer-events:none;z-index:90;mix-blend-mode:multiply}
img{display:block;max-width:100%}
a{color:inherit}
em{font-style:italic}
h1,h2{font-family:var(--disp);font-weight:400;letter-spacing:-.02em}
.kick{font:500 12px/1.2 var(--txt);letter-spacing:.2em;text-transform:uppercase;color:var(--red)}
.bar{position:fixed;top:0;left:0;right:0;z-index:70;display:flex;justify-content:space-between;align-items:center;padding:14px 18px;pointer-events:none;mix-blend-mode:difference;color:#fff}
.bar a{pointer-events:auto;text-decoration:none}
.logo{font:400 24px/1 var(--disp)}
.bar-cta{font:500 14px/1 var(--txt);border-bottom:1px solid #fff;padding:6px 0}
.btn{display:inline-block;font:500 15px/1 var(--txt);text-decoration:none;padding:17px 20px;border-radius:2px}
.btn-red{background:var(--red);color:#fff}
.btn-ghost{border:1px solid rgba(255,255,255,.6);color:#fff}
.btn-line{border:1px solid rgba(21,27,38,.3)}
.cta-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.scene{position:relative}
.stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden}
.js .s-focus{height:340vh}.js .s-exam{height:320vh}.js .s-choisir{height:440vh}.js .s-mot{height:240vh}
html:not(.motion) .scene{height:auto!important}
html:not(.motion) .stage{position:relative;height:auto;min-height:100svh}

/* 1 focus pull */
.s-focus .stage{background:var(--ink);color:#fff}
.focus-img{position:absolute;inset:0;--t:0}
.focus-img img{width:100%;height:100%;object-fit:cover;object-position:55% 50%;filter:blur(calc((1 - var(--t))*22px)) brightness(calc(.6 + var(--t)*.35));transform:scale(calc(1.25 - var(--t)*.17))}
.lens{position:absolute;inset:0;--t:0;clip-path:circle(calc(16vmin + var(--t)*90vmax) at 50% 38%)}
.lens img{width:100%;height:100%;object-fit:cover;object-position:55% 50%;transform:scale(calc(1.25 - var(--t)*.17));filter:brightness(.95)}
.lens::after{content:"";position:absolute;left:50%;top:38%;width:calc(32vmin + var(--t)*180vmax);aspect-ratio:1;border-radius:50%;transform:translate(-50%,-50%);box-shadow:inset 0 0 0 2px rgba(255,255,255,.75),inset 0 0 60px rgba(0,0,0,.35)}
.veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(21,27,38,.5),rgba(21,27,38,0) 35%,rgba(21,27,38,.1) 60%,rgba(21,27,38,.85))}
.f-a{position:absolute;left:20px;right:20px;top:96px;z-index:3;--u:0;opacity:calc(1 - var(--u))}
.f-a .kick{color:#ffb3b8}
.f-a h1{font-size:clamp(60px,17vw,190px);line-height:.9;margin-top:14px}
.f-a h1 em{color:#fff;display:block}
.f-a .blur{display:block;filter:blur(calc(var(--u)*0px));color:rgba(255,255,255,.88)}
.f-b{position:absolute;left:20px;right:20px;bottom:calc(86px + env(safe-area-inset-bottom));z-index:3;max-width:540px;--t:0;opacity:var(--t);transform:translateY(calc((1 - var(--t))*40px))}
.f-b p{font-size:19px;line-height:1.5}
html:not(.motion) .f-b{opacity:1;transform:none}
html:not(.motion) .focus-img img{filter:none}
html:not(.motion) .lens{display:none}

/* 2 exam */
.s-exam .stage{background:var(--bone)}
.exam-img{position:absolute;left:0;right:0;top:0;height:46%;overflow:hidden;--t:0;clip-path:inset(0 calc((1 - var(--t))*50%) 0 calc((1 - var(--t))*50%))}
.exam-img img{width:100%;height:100%;object-fit:cover;transform:scale(calc(1.15 - var(--t)*.15))}
.exam-txt{position:absolute;left:20px;right:20px;top:calc(46% + 24px)}
.exam-txt .kick{--u:0;opacity:var(--u)}
.exam-txt h2{font-size:clamp(38px,10vw,96px);line-height:1;margin:10px 0 16px;--t:0;opacity:var(--t);transform:translateY(calc((1 - var(--t))*20px))}
.exam-txt h2 em{color:var(--red)}
.exam-txt blockquote{font:400 20px/1.35 var(--disp);max-width:34ch;--t:0;opacity:var(--t)}
.exam-txt cite{display:block;font:500 13px/1.3 var(--txt);color:var(--mute);margin-top:8px;font-style:normal}
.chart{display:none;position:absolute;right:20px;bottom:calc(84px + env(safe-area-inset-bottom));text-align:center;font-family:var(--disp);color:var(--ink);line-height:1.05}
.chart span{display:block;--t:0;opacity:calc(var(--t)*.9)}
.chart span:nth-child(1){font-size:40px}.chart span:nth-child(2){font-size:28px}.chart span:nth-child(3){font-size:20px}.chart span:nth-child(4){font-size:15px}.chart span:nth-child(5){font-size:11px}.chart span:nth-child(6){font-size:8px}
html:not(.motion) .exam-img{position:relative;height:50vh;clip-path:none}
html:not(.motion) .exam-txt{position:relative;top:auto;padding:30px 0}
html:not(.motion) .exam-txt *{opacity:1!important;transform:none!important}
html:not(.motion) .chart{display:none}

/* 3 choisir */
.s-choisir .stage{background:var(--ink);color:#fff}
.ch-k{position:absolute;left:20px;top:84px;color:#ffb3b8}
.rail{position:absolute;left:20px;right:20px;top:110px;height:1px;background:rgba(255,255,255,.2)}
.rail::after{content:"";position:absolute;left:0;top:-1px;height:3px;width:calc(var(--t,0)*100%);background:var(--red2)}
.track{position:absolute;top:130px;bottom:0;left:0;display:flex;width:400%;--k:0;transform:translateX(calc(var(--k)*-75%))}
.pane{width:25%;padding:16px 20px 0;display:flex;flex-direction:column;gap:18px}
.pane figure{height:46vh;overflow:hidden}
.pane figure img{width:100%;height:100%;object-fit:cover}
.pane h2{font-size:clamp(38px,10vw,88px);line-height:1}
.pane p{margin-top:10px;color:#c7ccd4;max-width:34ch}
html:not(.motion) .track{position:relative;top:auto;width:auto;flex-direction:column;transform:none;padding-top:120px}
html:not(.motion) .pane{width:auto;padding-bottom:40px}

/* 4 atelier */
.atelier{--f:0;padding-bottom:60px;background:var(--bone2)}
.at-img{height:70vh;overflow:hidden}
.at-img img{width:100%;height:125%;object-fit:cover;transform:translateY(calc(var(--f)*-18%))}
.at-txt{padding:44px 20px 0}
.at-txt h2{font-size:clamp(34px,8.6vw,80px);line-height:1.02;margin:14px 0 16px;max-width:16ch}
.at-txt h2 em{color:var(--red)}
.at-txt>p{color:var(--mute);max-width:46ch}
.quotes{display:grid;gap:20px;margin-top:30px}
.quotes blockquote{font:400 23px/1.25 var(--disp)}
.quotes figcaption{font-size:13px;color:var(--mute);margin-top:6px}

/* 5 mot */
.s-mot .stage{background:var(--red);color:#fff;display:flex;flex-direction:column;justify-content:center;padding:0 20px}
.mot{font:400 clamp(42px,11vw,124px)/1 var(--disp)}
.mot span{display:block;--t:0;opacity:calc(.15 + .85*var(--t));filter:blur(calc((1 - var(--t))*6px));transform:translateY(calc((1 - var(--t))*20px))}
.mot em{color:#ffd9dc}
.mot-by{margin-top:24px;font-size:14px;--u:0;opacity:var(--u)}
html:not(.motion) .mot span,html:not(.motion) .mot-by{opacity:1;transform:none;filter:none}

/* 6 venir */
.venir{padding:80px 20px 110px}
.v-team{height:56vh;overflow:hidden;margin-bottom:30px}
.v-team img{width:100%;height:100%;object-fit:cover;object-position:50% 30%}
.venir h2{font-size:clamp(36px,9vw,84px);line-height:1;margin:14px 0 6px}
.venir h2 em{color:var(--red)}
.hours{margin-top:36px;display:grid;gap:10px}
.hours div{display:flex;justify-content:space-between;gap:16px;border-top:1px solid rgba(21,27,38,.15);padding-top:10px}
.hours dt{color:var(--mute)}.hours dd{text-align:right}
.v-shop{margin-top:40px;height:240px;overflow:hidden}
.v-shop img{width:100%;height:100%;object-fit:cover}
.foot{background:var(--ink);color:#aab1bb;padding:40px 20px 110px;font-size:14px;display:grid;gap:8px}
.foot-logo{font:400 28px/1 var(--disp);color:#fff}
.foot-prop{color:#ffb3b8}
.dock{position:fixed;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:60;display:grid;grid-template-columns:1fr 1.4fr 1fr;background:rgba(21,27,38,.92);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:3px;overflow:hidden}
.dock a{color:#fff;text-decoration:none;text-align:center;padding:15px 6px;font:500 14px/1 var(--txt)}
.dock-main{background:var(--red)}
@media (min-width:900px){
  body{font-size:18px}.bar{padding:22px 40px}.dock{display:none}
  .f-a{left:56px;top:130px}.f-b{left:56px;bottom:64px}
  .exam-img{left:auto;width:52%;height:100%;clip-path:inset(calc((1 - var(--t))*50%) 0 calc((1 - var(--t))*50%) 0)}
  .exam-txt{left:56px;right:auto;width:40%;top:50%;transform:translateY(-50%)}
  .chart{display:block;right:auto;left:calc(48% - 120px);bottom:60px}
  .ch-k,.rail{left:56px}.rail{right:56px;top:150px}.track{top:170px}
  .pane{flex-direction:row;align-items:center;gap:56px;padding:0 56px}
  .pane figure{height:70vh;width:48%;flex:none}
  .atelier{display:grid;grid-template-columns:1.1fr 1fr;align-items:start}
  .at-img{height:100vh;position:sticky;top:0}
  .at-txt{padding:100px 56px 0}
  .s-mot .stage{padding:0 56px}
  .venir{padding:120px 56px}
  .v-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:56px;align-items:end}
  .v-team{height:70vh;margin:0}
  .v-shop{height:380px}
  .foot{padding:40px 56px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
