@keyframes lineUp{to{transform:none}}@keyframes cue{0%{transform:translateY(-100%)}to{transform:translateY(260%)}}@keyframes marquee{to{transform:translateX(-50%)}}:root{--paper:#F1F1ED;--ink:#17171A;--mid:#6C6B63;--hair:rgba(23,23,26,.16);--panel:rgba(232,231,224,.7);--accent:#9A7F75;--bg:var(--paper);--fg:var(--ink);--serif:"Bodoni Moda", Georgia, "Times New Roman", serif;--sans:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--gutter:clamp(1rem,5vw,4rem);--max:1360px;--section:clamp(2rem,4vw,3.5rem);--edge:max(var(--gutter), calc((100vw - var(--max)) / 2 + var(--gutter)));--ease:cubic-bezier(.2,.7,.2,1)}html.is-dark{--bg:var(--ink);--fg:#F1F1ED;--mid:#BAA39B;--hair:rgba(241,241,237,.16);--panel:rgba(40,38,36,.6)}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;background:var(--bg);transition:background-color .8s var(--ease)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{background:0 0;color:var(--fg);font-family:var(--sans);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden;transition:color .8s var(--ease)}#gl,img{display:block}img{max-width:100%}a{color:inherit}em{font-style:italic}.nav-links a::after,.sr{position:absolute;height:1px}.sr{width:1px;overflow:hidden;clip:rect(0 0 0 0)}#gl{position:fixed;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}html.no-webgl body{background:var(--bg)}.wrap{max-width:var(--max);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter)}.eyebrow{font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:var(--mid);margin-bottom:1.1rem;transition:color .8s var(--ease)}.section-title{font-family:var(--serif);font-weight:400;font-size:clamp(2rem,4.2vw,3.4rem);line-height:1.06;letter-spacing:-.01em}.muted{color:var(--mid);transition:color .8s var(--ease)}.nav{position:fixed;top:0;left:0;right:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.3rem var(--edge);transition:padding .4s var(--ease),background-color .6s var(--ease),border-color .6s;border-bottom:1px solid transparent}.nav.scrolled{padding-top:.85rem;padding-bottom:.85rem;background:color-mix(in srgb,var(--bg) 72%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom-color:var(--hair)}.wordmark{font-family:var(--serif);font-size:1.5rem;font-weight:500;text-decoration:none;letter-spacing:.01em}.nav-links{display:flex;gap:clamp(1rem,2.2vw,2.2rem);list-style:none}.nav-links a{font-size:.82rem;color:var(--mid);text-decoration:none;position:relative;padding:.2rem 0;transition:color .3s}.nav-links a::after{content:"";left:0;right:0;bottom:-.1rem;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease)}.nav-links a.active,.nav-links a:hover,.nav-toggle{color:var(--fg)}.nav-links a.active::after,.nav-links a:hover::after{transform:scaleX(1);transform-origin:left}.nav-toggle{display:none;background:0 0;border:0;width:44px;height:44px;position:relative;cursor:pointer}.nav-toggle span:not(.sr){position:absolute;left:11px;right:11px;height:1px;background:currentColor;transition:transform .4s var(--ease)}.nav-toggle span:nth-child(1){top:18px}.nav-toggle span:nth-child(2){top:25px}.nav-toggle[aria-expanded=true] span:nth-child(1){transform:translateY(3.5px) rotate(45deg)}.nav-toggle[aria-expanded=true] span:nth-child(2){transform:translateY(-3.5px) rotate(-45deg)}@media (max-width:860px){.nav-toggle{display:block;margin-right:-10px}.nav-links{position:fixed;inset:0;z-index:-1;flex-direction:column;justify-content:center;align-items:flex-start;gap:.4rem;padding:0 var(--edge);background:var(--bg);opacity:0;pointer-events:none;transition:opacity .5s var(--ease)}.nav-links a{font-family:var(--serif);font-size:2.2rem;color:var(--fg)}.nav.open .nav-links{opacity:1;pointer-events:auto}.nav.open{background:0 0;backdrop-filter:none;-webkit-backdrop-filter:none;border-color:transparent}}.hero{position:relative;display:flex;align-items:flex-end;padding:calc(5rem + var(--section)) var(--gutter) var(--section)}.hero-inner{max-width:calc(var(--max) - 2*var(--gutter));width:100%;margin:0 auto}.hero-title{font-family:var(--serif);font-weight:400;font-size:clamp(2.9rem,9vw,8.4rem);line-height:.98;letter-spacing:-.02em}.hero-title .line{display:block;overflow:hidden;padding-bottom:.06em}.hero-title .line>span{display:inline-block;transform:translateY(105%);animation:lineUp 1.3s var(--ease) forwards}.hero-title .line:nth-child(2)>span{animation-delay:.12s}.hero-title .line:nth-child(3)>span{animation-delay:.24s}.hero-title .line:nth-child(3){padding-left:clamp(0rem,8vw,9rem)}.scroll-cue{position:absolute;right:var(--edge);bottom:var(--section);width:1px;height:64px;background:var(--hair);overflow:hidden}.scroll-cue span{position:absolute;left:0;top:0;width:1px;height:40%;background:var(--fg);animation:cue 2.2s var(--ease) infinite}html.has-video .hero{color:#f7f5ef;--mid:rgba(247,245,239,.75)}html.has-video .hero .scroll-cue{background:rgba(255,255,255,.3)}html.has-video .hero .scroll-cue span{background:#fff}html.has-video.at-top .nav{color:#f7f5ef;--mid:rgba(247,245,239,.75);--fg:#F7F5EF}.vision{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(2.5rem,6vw,5rem);align-items:start;padding-top:var(--section);padding-bottom:var(--section)}.vision .lead{font-family:var(--serif);font-size:clamp(1.4rem,2.4vw,2rem);line-height:1.32;margin-bottom:1.8rem;max-width:34rem}.vision-txt>p:last-child{max-width:31rem;font-size:1.02rem}.frame{position:relative;aspect-ratio:4/5;overflow:hidden;border:1px solid var(--hair)}.placeholder{display:flex;align-items:center;justify-content:center;background:var(--panel);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.exp-item h3,.ph-label{font-family:var(--serif)}.ph-label{font-size:1.2rem;color:var(--mid);text-align:center;line-height:1.4}.ph-sub{display:block;margin-top:.5rem;font-family:var(--sans);font-size:.7rem;letter-spacing:.08em}.frame img{width:100%;height:100%;object-fit:cover}.expertise{padding-top:var(--section);padding-bottom:var(--section)}.expertise .section-title{max-width:40rem;margin-bottom:clamp(2rem,4vw,3rem)}.exp-list{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:0 clamp(2.5rem,6vw,5rem)}.exp-item{position:relative;border-top:1px solid var(--hair);padding:1.4rem 0 1.8rem 3.4rem;transition:border-color .8s}.exp-num{position:absolute;left:0;top:1.85rem;font-size:.72rem;letter-spacing:.1em;color:var(--mid)}.exp-item h3{font-weight:500;font-size:clamp(1.25rem,1.9vw,1.55rem);line-height:1.2;margin-bottom:.6rem}.exp-item p{font-size:.96rem;color:var(--mid);max-width:26rem;transition:color .8s}.exp-list{margin-bottom:-1.8rem}.exp-item::before{content:"";position:absolute;left:0;top:-1px;height:1px;width:100%;background:var(--fg);transform:scaleX(0);transform-origin:left;transition:transform .8s var(--ease)}.exp-item:hover::before{transform:scaleX(1)}.logo-lazeo{--logo:url(../assets/logos/lazeo.png);--ratio:3.205}.logo-kerastase{--logo:url(../assets/logos/kerastase.png);--ratio:3.51}.logo-carita{--logo:url(../assets/logos/carita.png);--ratio:2.86}.logo-decleor{--logo:url(../assets/logos/decleor.png);--ratio:3.35}.logo-loreal-professionnel{--logo:url(../assets/logos/loreal-professionnel.png);--ratio:2.87}.realisations{padding:calc(var(--section)*1.4)0}.case{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2.5rem,6vw,6rem);align-items:start}.logo-mask{display:block;background-color:currentColor;-webkit-mask:var(--logo) center/contain no-repeat;mask:var(--logo) center/contain no-repeat}.case-logo{height:clamp(30px,3.4vw,42px);aspect-ratio:var(--ratio);margin-bottom:2.2rem;-webkit-mask-position:left center;mask-position:left center}.case-meta{font-size:.85rem;color:var(--mid);margin-bottom:1.2rem}.case-meta b{color:var(--fg);font-weight:500}.case-title{font-family:var(--serif);font-weight:400;font-size:clamp(1.8rem,3.4vw,2.8rem);line-height:1.1;letter-spacing:-.01em;max-width:32rem}.case-stats{display:flex;flex-wrap:wrap;gap:1.5rem clamp(2rem,4vw,3.5rem);margin-top:2.6rem;padding-top:1.8rem;border-top:1px solid var(--hair)}.case-stat .num{font-family:var(--serif);font-size:clamp(2.2rem,4.4vw,3.4rem);line-height:1;font-variant-numeric:lining-nums tabular-nums}.case-stat .pre{opacity:.55;margin-right:.04em}.case-stat .cap{font-size:.78rem;color:var(--mid);margin-top:.6rem;letter-spacing:.03em}.case-points{display:flex;flex-direction:column;gap:1.5rem;padding-top:.4rem}.case-point{border-top:1px solid var(--hair);padding-top:1.1rem}.case-point .lab{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--mid);margin-bottom:.6rem}.case-point p:not(.lab){font-size:1.02rem;max-width:32rem}.apropos{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(2.5rem,7vw,6rem);align-items:center;padding-top:calc(var(--section)*1.4);padding-bottom:var(--section)}.apropos .section-title{margin-bottom:2rem;max-width:36rem}.ap-body p{max-width:34rem;font-size:1.02rem}.ap-body p+p{margin-top:1.1rem}.references{padding:clamp(2.2rem,4vw,3rem)0 clamp(2.5rem,5vw,3.5rem);border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}.ref-head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap}.ref-head .eyebrow{margin:0}.ref-sub{font-family:var(--serif);font-style:italic;font-size:1.1rem;color:var(--mid)}.marquee{margin-top:clamp(1.6rem,3vw,2.2rem);overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}.marquee-track{display:flex;align-items:center;width:max-content;list-style:none;gap:clamp(4rem,9vw,8rem);padding-right:clamp(4rem,9vw,8rem);animation:marquee 32s linear infinite}.marquee:hover .marquee-track{animation-play-state:paused}.marquee-track .logo-mask{height:clamp(34px,4.6vw,56px);aspect-ratio:var(--ratio);opacity:.85}@media (prefers-reduced-motion:reduce){.marquee-track{animation:none;flex-wrap:wrap;width:auto;justify-content:center;padding:0 var(--gutter)}.marquee{-webkit-mask-image:none;mask-image:none}}.contact{padding:calc(var(--section)*1.4)0 1.6rem}.contact-head{font-family:var(--serif);font-weight:400;font-size:clamp(2.6rem,7.5vw,6.6rem);line-height:1;letter-spacing:-.02em;max-width:14ch;margin-bottom:1.8rem}.contact-sub{font-size:1.1rem;max-width:28rem;margin-bottom:2.2rem;color:var(--mid)}.contact-links,.site-footer{display:flex;flex-wrap:wrap;gap:1.2rem 3rem}.contact-links a{font-family:var(--serif);font-size:clamp(1.25rem,2.4vw,1.7rem);background:linear-gradient(currentColor,currentColor) left bottom/100% 1px no-repeat;padding-bottom:.25rem;transition:background-size .6s var(--ease),color .3s;overflow-wrap:anywhere}.contact-links a:hover{background-size:0 1px;background-position:right bottom;color:var(--mid)}.site-footer{justify-content:space-between;gap:.5rem;margin-top:clamp(3rem,6vw,4.5rem);padding-top:1.4rem;border-top:1px solid var(--hair);font-size:.8rem;color:var(--mid)}.contact-links a,.site-footer a{text-decoration:none}.site-footer a:hover{color:var(--fg)}.reveal{opacity:0;transform:translateY(22px);transition:opacity 1.1s var(--ease),transform 1.1s var(--ease)}.reveal.in,html.no-js .reveal{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}.hero-title .line>span{animation:none;transform:none}}@media (max-width:860px){.apropos,.case,.exp-list,.vision{grid-template-columns:1fr}.portrait .frame,.vision-visual .frame{aspect-ratio:4/3}.hero-title .line:nth-child(3){padding-left:0}}