{"id":1590,"date":"2026-08-28T13:05:55","date_gmt":"2026-08-28T11:05:55","guid":{"rendered":"https:\/\/noghli.fr\/index.php\/site-v2\/"},"modified":"2026-08-28T15:29:33","modified_gmt":"2026-08-28T13:29:33","slug":"site-v2","status":"publish","type":"page","link":"https:\/\/noghli.fr\/index.php\/site-v2\/","title":{"rendered":"Site V2"},"content":{"rendered":"        <div id=\"ng2\" class=\"ng2\" data-version=\"3.8.23\">\r\n        <div class=\"ng-scroll-progress\" aria-hidden=\"true\"><i><\/i><\/div>\r\n        <style>\r\n        :root{\r\n            --ng-black:#07090c;--ng-black2:#0d1117;--ng-paper:#f7f8fa;--ng-ink:#0d1015;\r\n            --ng-muted:#737b86;--ng-line:rgba(255,255,255,.14);--ng-line2:rgba(13,16,21,.12);\r\n            --ng-silver:#9ba7b7;--ng-max:1480px;\r\n        }\r\n        html{scroll-behavior:smooth}\r\n        body.ng2-standalone{margin:0;background:var(--ng-black)}\r\n        .ng2{font-family:Inter,-apple-system,BlinkMacSystemFont,\"Segoe UI\",sans-serif;background:var(--ng-black);color:#fff;overflow:hidden}\r\n        .ng2 *{box-sizing:border-box}.ng2 a{color:inherit;text-decoration:none}\r\n        .ng-shell{width:min(calc(100% - 80px),var(--ng-max));margin-left:auto;margin-right:auto}\r\n        .ng-nav{position:fixed;z-index:100;top:0;left:0;right:0;background:rgba(7,9,12,.86);backdrop-filter:blur(18px);border-bottom:1px solid var(--ng-line)}\r\n        body.admin-bar .ng-nav{top:32px}\r\n        .ng-navin{min-height:70px;display:flex;align-items:center;justify-content:space-between;gap:28px}\r\n        .ng-menu{min-width:0;flex:1;justify-content:flex-end}\r\n        .ng-lang{flex:0 0 auto;white-space:nowrap;position:relative;z-index:2}\r\n        .ng-brand{font-size:12px;letter-spacing:.22em;font-weight:800;white-space:nowrap}\r\n        .ng-menu{display:flex;gap:25px;align-items:center;font-size:10px;letter-spacing:.16em;text-transform:uppercase}\r\n        .ng-lang{display:flex;align-items:center;gap:5px;margin-left:2px;padding-left:14px;border-left:1px solid rgba(255,255,255,.16);flex:0 0 auto;white-space:nowrap}\r\n        .ng-lang button{appearance:none;border:0;background:none;color:rgba(255,255,255,.42);font:inherit;font-size:9px;letter-spacing:.14em;padding:4px 2px;cursor:pointer}\r\n        .ng-lang button.is-active{color:#fff}\r\n        .ng-lang button:hover,.ng-lang button:focus-visible{color:#fff;outline:none}\r\n\r\n        .ng-menu a{opacity:.58;transition:.2s}.ng-menu a:hover{opacity:1}\r\n        .ng-edit{position:fixed;right:18px;bottom:18px;z-index:130;background:#fff;color:#111!important;border-radius:999px;padding:10px 15px;font-size:11px;font-weight:800;box-shadow:0 12px 40px rgba(0,0,0,.25)}\r\n\r\n        .ng-hero{height:min(92svh,920px);min-height:700px;position:relative;display:flex;align-items:flex-end;overflow:hidden;background:#080b10}\r\n        .ng-hero-media{position:absolute;inset:0}\r\n        .ng-hero-media video,.ng-hero-media img{width:100%;height:100%;object-fit:cover;display:block}\r\n        .ng-hero-media:after{content:\"\";position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,6,9,.04),rgba(4,6,9,.18) 48%,rgba(4,6,9,.78))}\r\n        .ng-hero-fallback{position:absolute;inset:0;background:radial-gradient(circle at 70% 32%,rgba(125,146,171,.24),transparent 30%),linear-gradient(125deg,#06080b,#111824 60%,#07090c)}\r\n        .ng-hero-copy{position:relative;z-index:2;width:min(calc(100% - 80px),var(--ng-max));margin:0 auto;padding:0 0 58px}\r\n        .ng-kicker{font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.58);margin-bottom:18px}\r\n        .ng-hero h1{font-family:Georgia,\"Times New Roman\",serif;font-size:clamp(62px,8.4vw,136px);font-weight:400;line-height:.88;letter-spacing:-.055em;margin:0;max-width:1160px}\r\n        .ng-hero-bottom{display:flex;justify-content:space-between;align-items:flex-end;gap:60px;margin-top:30px}\r\n        .ng-hero p{font-size:16px;line-height:1.6;color:rgba(255,255,255,.66);max-width:620px;margin:0}\r\n        .ng-scroll{font-size:10px;letter-spacing:.17em;text-transform:uppercase;border-bottom:1px solid rgba(255,255,255,.45);padding-bottom:7px}\r\n\r\n        .ng-discipline{position:sticky;top:70px;z-index:75;background:rgba(247,248,250,.96);backdrop-filter:blur(14px);border-bottom:1px solid var(--ng-line2)}\r\n        body.admin-bar .ng-discipline{top:102px}\r\n        .ng-discipline-in{height:52px;display:flex;align-items:center;gap:28px;overflow-x:auto;scrollbar-width:none;white-space:nowrap;color:#111}\r\n        .ng-discipline-in::-webkit-scrollbar{display:none}\r\n        .ng-discipline a{font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:#69717b}\r\n        .ng-discipline a:hover{color:#000}\r\n\r\n        .ng-intro{background:#eef1f5;color:var(--ng-ink);padding:72px 0}\r\n        .ng-intro-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:80px;align-items:center;min-height:240px}\r\n        .ng-intro h2{font-family:Georgia,serif;font-size:clamp(48px,5.2vw,76px);font-weight:400;line-height:.94;letter-spacing:-.05em;margin:0;color:#101318!important}\r\n        .ng-intro p{font-size:16px;line-height:1.72;color:#56606c!important;margin:0;max-width:620px}\r\n\r\n        .ng-section{padding:88px 0;background:var(--ng-paper);color:var(--ng-ink);border-top:1px solid #dfe3e8}\r\n        .ng-section.dark{background:#090c10;color:#fff;border-top-color:var(--ng-line)}\r\n        .ng2 .ng-section:not(.dark) .ng-head h2{color:#0d1015!important}\r\n        .ng2 .ng-section:not(.dark) .ng-num,.ng2 .ng-section:not(.dark) .ng-sub{color:#6f7884!important}\r\n        .ng2 .ng-section.dark .ng-head h2{color:#f7f8fa!important}\r\n        .ng2 .ng-section.dark .ng-num,.ng2 .ng-section.dark .ng-sub{color:rgba(255,255,255,.48)!important}\r\n        .ng2 .ng-section.dark .ng-caption strong{color:#f7f8fa!important}\r\n        .ng2 .ng-section.dark .ng-caption span{color:rgba(255,255,255,.44)!important}\r\n        .ng2 .ng-section:not(.dark) .ng-caption strong{color:#111820!important}\r\n        .ng2 .ng-section:not(.dark) .ng-caption span{color:#7b8490!important}\r\n        .ng-head{display:grid;grid-template-columns:180px 1fr auto;gap:40px;align-items:end;margin-bottom:45px}\r\n        .ng-num{font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:#858d97}\r\n        .dark .ng-num{color:rgba(255,255,255,.42)}\r\n        .ng-head h2{font-family:Georgia,serif;font-size:clamp(48px,5.6vw,84px);font-weight:400;line-height:.94;letter-spacing:-.045em;margin:0}\r\n        .ng-sub{font-size:12px;color:#777f89;text-align:right;max-width:260px;line-height:1.5}\r\n        .dark .ng-sub{color:rgba(255,255,255,.48)}\r\n\r\n        .ng-cosmetic-lead{display:grid;grid-template-columns:180px 1fr;gap:40px;margin:-10px 0 46px}\r\n        .ng-cosmetic-lead .role{grid-column:2;font-family:Georgia,serif;font-size:clamp(26px,3.2vw,52px);line-height:1.05;letter-spacing:-.035em;color:#111820!important;max-width:980px}\r\n        .ng-cosmetic-lead .role span{display:block;font-family:Inter,-apple-system,BlinkMacSystemFont,\"Segoe UI\",sans-serif;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:#79828d!important;margin-bottom:13px}\r\n        .ng-section.dark .ng-cosmetic-lead .role{color:#f7f8fa!important}\r\n        .ng-section.dark .ng-cosmetic-lead .role span{color:rgba(255,255,255,.46)!important}\r\n        .ng-cosmetics,.ng-web{display:flex;gap:22px;overflow-x:auto;padding:0 0 16px;scroll-snap-type:x mandatory;scrollbar-width:none}\r\n        .ng-cosmetics::-webkit-scrollbar,.ng-web::-webkit-scrollbar{display:none}\r\n        .ng-cosmetics>article{flex:0 0 clamp(420px,42vw,620px);scroll-snap-align:start}\r\n        .ng-web>article{min-width:min(78vw,1160px);scroll-snap-align:start}\r\n        .ng-cosmetics .ng-img{aspect-ratio:4\/3}\r\n        .ng-web .ng-img{aspect-ratio:16\/9}\r\n        .ng-cosmetics .ng-card,.ng-web .ng-card{border-radius:22px}\r\n        .ng-card{position:relative;border-radius:18px;overflow:hidden;background:#e6e9ed;isolation:isolate}\r\n        .dark .ng-card{background:#161b22}\r\n        .ng-card .ng-img{aspect-ratio:16\/11;overflow:hidden;cursor:zoom-in}\r\n        .ng-card img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .75s cubic-bezier(.2,.8,.2,1)}\r\n        .ng-card:hover img{transform:scale(1.035)}\r\n        .ng-caption{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:14px 2px 0;background:transparent}\r\n        .ng-caption strong{font-size:12px;letter-spacing:.08em}.ng-caption span{font-size:9px;letter-spacing:.15em;text-transform:uppercase;color:#838b95}\r\n        .dark .ng-caption span{color:rgba(255,255,255,.45)}\r\n        .dark .ng-caption strong{color:#fff}\r\n\r\n        .ng-posters{display:flex;gap:18px;overflow-x:auto;padding-bottom:10px;scroll-snap-type:x mandatory;scrollbar-width:none}\r\n        .ng-posters::-webkit-scrollbar{display:none}\r\n        .ng-cosmetics,.ng-posters,.ng-web{scroll-padding-left:2px}\r\n        .ng-horizontal-note{font-size:9px;letter-spacing:.16em;text-transform:uppercase;opacity:.48;margin-top:15px}\r\n        .ng-poster{min-width:min(34vw,470px);scroll-snap-align:start}\r\n        .ng-poster .ng-img{aspect-ratio:4\/5}\r\n\r\n        .ng-web .ng-img{aspect-ratio:16\/9}\r\n\r\n        .ng-art{columns:3;column-gap:18px}\r\n        .ng-art-card{break-inside:avoid;margin:0 0 18px}\r\n        .ng-art-card .ng-img{aspect-ratio:auto}\r\n        .ng-art-card img{height:auto;max-height:none}\r\n\r\n        .ng-motion-list{display:grid;gap:22px}.ng-motion-stage{border:1px solid #dfe3e8;border-radius:22px;overflow:hidden;background:#10151d;min-height:440px;display:grid;place-items:center}\r\n        .ng-motion-stage video,.ng-motion-stage iframe{width:100%;aspect-ratio:16\/9;border:0;display:block}\r\n        .ng-motion-empty{padding:70px;text-align:center;color:rgba(255,255,255,.45);font-size:14px}\r\n\r\n        .ng-awards{padding:100px 0;background:#090c10;color:#f7f8fa;border-top:1px solid var(--ng-line)}\r\n        .ng-awards-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:72px;align-items:start}\r\n        .ng-awards h2{font-family:Georgia,serif;font-size:clamp(48px,5.6vw,82px);font-weight:400;line-height:.94;letter-spacing:-.045em;margin:0 0 28px;color:#f7f8fa!important}\r\n        .ng-awards .ng-num{color:rgba(255,255,255,.42)!important}\r\n        .ng-award-list{display:grid;gap:0;border-top:1px solid rgba(255,255,255,.16)}\r\n        .ng-award{padding:16px 0;border-bottom:1px solid rgba(255,255,255,.16);font-size:15px;line-height:1.45;color:rgba(255,255,255,.58);display:grid;grid-template-columns:62px 76px 1fr;gap:10px;align-items:baseline}\r\n        .ng-award strong{display:block;color:#f7f8fa}\r\n        .ng-award-type{font-size:8px;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.42);border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:4px 7px;text-align:center}\r\n        .ng-award-title{color:rgba(255,255,255,.68)}\r\n        .ng-award-media{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}\r\n        .ng-award-media .ng-card{background:#11161d;border:1px solid rgba(255,255,255,.12);padding:12px;border-radius:16px}\r\n        .ng-award-media .ng-img{aspect-ratio:4\/3;background:#11161d;display:grid;place-items:center;border-radius:10px;overflow:hidden}\r\n        .ng-award-media .ng-img img{object-fit:contain!important;background:transparent!important;width:100%;height:100%}\r\n        .ng-products{padding:120px 0;background:#f2f4f7;color:#111820;border-top:1px solid #dfe3e8;overflow:visible;overflow-anchor:none}\r\n        .ng-products-top{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:end;margin-bottom:45px}\r\n        .ng-products h2{font-family:Georgia,serif;font-size:clamp(54px,6vw,92px);font-weight:400;line-height:.92;letter-spacing:-.05em;margin:0;color:#111820!important}\r\n        .ng-products-top p{color:#5f6772;line-height:1.7;max-width:620px;margin:0}\r\n        .ng-product-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}\r\n        .ng-product{border:1px solid #d9dee5;border-radius:20px;overflow:hidden;background:#fff;contain:none;isolation:auto;overflow-anchor:none}\r\n        .ng-product-media{aspect-ratio:16\/11;background:#e9edf2;overflow:hidden;position:relative;contain:none;overflow-anchor:none}\r\n        .ng-product-media img{width:100%;height:100%;object-fit:cover;display:block;transition:none;transform:none!important}\r\n        .ng-product:hover img{transform:none!important}\r\n        .ng-products .ng-reveal{opacity:1!important;transform:none!important;transition:none!important}\r\n        .ng-products .ng-product,.ng-products .ng-product-media{transform:none!important;will-change:auto!important;backface-visibility:visible!important;-webkit-backface-visibility:visible!important}\r\n        .ng-product-fallback{position:absolute;inset:0;display:flex;align-items:flex-end;padding:24px;font-family:Georgia,serif;font-size:40px;letter-spacing:-.04em}\r\n        .ng-product-body{padding:23px}.ng-product-tag{font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:#747d88;margin-bottom:14px}\r\n        .ng-product h3{font-family:Georgia,serif;font-weight:400;font-size:32px;margin:0 0 11px;color:#111820!important}\r\n        .ng-product p{font-size:13px;line-height:1.65;color:#5f6772;margin:0}\r\n        .ng-case{display:inline-block;margin-top:18px;font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:#111820!important;text-decoration:none}\r\n        \/* v3.8.5 \u2014 Digital Products now follows About as a dark chapter. *\/\r\n        .ng-products.ng-products-dark{background:#090c10!important;color:#f7f8fa!important;border-top-color:var(--ng-line)!important}\r\n        .ng-products.ng-products-dark h2{color:#f7f8fa!important}\r\n        .ng-products.ng-products-dark .ng-products-top p{color:rgba(255,255,255,.58)!important}\r\n        .ng-products.ng-products-dark .ng-product{background:#11161d!important;border-color:rgba(255,255,255,.12)!important}\r\n        .ng-products.ng-products-dark .ng-product-media{background:#171d25!important}\r\n        .ng-products.ng-products-dark .ng-product-fallback{color:#f7f8fa!important}\r\n        .ng-products.ng-products-dark .ng-product-tag{color:rgba(255,255,255,.46)!important}\r\n        .ng-products.ng-products-dark .ng-product h3{color:#f7f8fa!important}\r\n        .ng-products.ng-products-dark .ng-product p{color:rgba(255,255,255,.58)!important}\r\n        .ng-products.ng-products-dark .ng-case{color:#f7f8fa!important}\r\n        @media (hover:hover) and (pointer:fine){\r\n          .ng-products.ng-products-dark .ng-product:hover{border-color:rgba(255,255,255,.28)!important;box-shadow:0 24px 55px rgba(0,0,0,.34)!important}\r\n          .ng-products.ng-products-dark .ng-product:after{background:linear-gradient(120deg,rgba(255,255,255,0) 15%,rgba(255,255,255,.16) 47%,rgba(255,255,255,0) 70%)!important}\r\n        }\r\n\r\n\r\n\r\n        \/* v3.1 Safari stability: Digital Products never use transform\/reveal compositing *\/\r\n        .ng-products,.ng-products *{-webkit-transform:none!important}\r\n        .ng-products .ng-reveal{opacity:1!important;transform:none!important;transition:none!important;animation:none!important}\r\n        .ng-products .ng-product,.ng-products .ng-product-media,.ng-products img{\r\n          transform:none!important;transition:none!important;animation:none!important;\r\n          will-change:auto!important;-webkit-backface-visibility:visible!important;backface-visibility:visible!important;\r\n          -webkit-perspective:none!important;perspective:none!important\r\n        }\r\n        .ng-products img{display:block!important;image-rendering:auto;-webkit-transform:translateZ(0)!important}\r\n\r\n        .ng-testimonials{padding:110px 0;background:#f7f8fa;color:#111820;border-top:1px solid #dfe3e8}\r\n        .ng-testimonials-head{display:grid;grid-template-columns:180px 1fr;gap:40px;margin-bottom:42px}\r\n        .ng-testimonials h2{font-family:Georgia,serif;font-size:clamp(48px,5.6vw,82px);font-weight:400;line-height:.94;letter-spacing:-.045em;margin:0;color:#111820!important}\r\n        .ng-testimonials .ng-num{color:#747d88!important}\r\n        .ng-quote-grid{\r\n          display:flex;\r\n          gap:16px;\r\n          overflow-x:auto;\r\n          overflow-y:hidden;\r\n          scroll-snap-type:x proximity;\r\n          scrollbar-width:none;\r\n          -webkit-overflow-scrolling:touch;\r\n          overscroll-behavior-inline:contain;\r\n          padding-bottom:6px;\r\n        }\r\n        .ng-quote-grid::-webkit-scrollbar{display:none}\r\n        .ng-quote-grid .ng-quote{\r\n          flex:0 0 min(46vw,620px);\r\n          min-width:min(46vw,620px);\r\n          scroll-snap-align:start;\r\n        }\r\n        .ng-quote{background:#fff;border:1px solid #dfe3e8;border-radius:20px;padding:30px;min-height:340px;display:flex;flex-direction:column;justify-content:space-between}\r\n        .ng-quote p{font-family:Inter,-apple-system,BlinkMacSystemFont,\"Segoe UI\",sans-serif;font-size:15px;line-height:1.72;letter-spacing:0;color:#4f5864!important;font-weight:400;margin:0 0 32px}\r\n        .ng-quote-copy{position:relative;margin-bottom:24px}\r\n        .ng-quote-copy p{margin:0}\r\n        .ng-quote:not(.is-expanded) .ng-quote-copy{max-height:12.2em;overflow:hidden}\r\n        .ng-quote:not(.is-expanded) .ng-quote-copy:after{\r\n          content:\"\";position:absolute;left:0;right:0;bottom:0;height:4.6em;\r\n          background:linear-gradient(to bottom,rgba(255,255,255,0),#fff 78%);\r\n          pointer-events:none\r\n        }\r\n        .ng-quote-toggle{\r\n          appearance:none;border:0;background:transparent;padding:0;margin:0 0 26px;\r\n          color:#111820;font:inherit;font-size:10px;letter-spacing:.13em;\r\n          text-transform:uppercase;cursor:pointer;text-decoration:none\r\n        }\r\n        .ng-quote-toggle:after{content:\" \u2193\";display:inline}\r\n        .ng-quote.is-expanded .ng-quote-toggle:after{content:\" \u2191\"}\r\n        .ng-quote-toggle .ng-less{display:none}\r\n        .ng-quote.is-expanded .ng-quote-toggle .ng-more{display:none}\r\n        .ng-quote.is-expanded .ng-quote-toggle .ng-less{display:inline}\r\n\r\n        .ng-person{display:flex;align-items:center;gap:13px}.ng-person img{width:50px;height:50px;border-radius:50%;object-fit:cover}\r\n        .ng-person strong{display:block;font-size:12px;color:#111820}.ng-person span{display:block;font-size:10px;color:#78818c;margin-top:4px}\r\n        .ng-about{padding:120px 0;background:#f7f8fa;color:#111820;border-top:1px solid #dfe3e8}\r\n        .ng-about-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:80px;align-items:center}\r\n        .ng-about-media{aspect-ratio:4\/5;border-radius:var(--ng-about-radius,34px);background:#111823;overflow:hidden;position:relative;transform-origin:center center;transform:translate3d(0,var(--ng-about-wrap-y,0px),0) rotate(var(--ng-about-tilt,0deg));transition:border-radius .12s linear;box-shadow:0 36px 95px rgba(9,13,19,var(--ng-about-shadow,.16))}\r\n        .ng-about-media:after{content:\"\";position:absolute;inset:0;pointer-events:none;border:1px solid rgba(255,255,255,.18);border-radius:inherit;z-index:2}\r\n        .ng-about-media img{width:100%;height:122%;object-fit:cover;display:block;transform:translate3d(var(--ng-about-x,0px),var(--ng-about-y,0px),0) scale(var(--ng-about-scale,1.24));transform-origin:center center;will-change:transform;backface-visibility:hidden}\r\n        .ng-about-media.ng-about-cinema{will-change:transform,border-radius;perspective:1000px}\r\n        .ng-about h2{font-family:Georgia,serif;font-size:clamp(48px,5.8vw,86px);font-weight:400;line-height:.94;letter-spacing:-.05em;margin:0 0 28px;color:#111820!important}\r\n        .ng-about-scroll-title{position:relative}\r\n        .ng-about-title-source{display:none}\r\n        .ng-about-linefx{display:block}\r\n        .ng-about-line{\r\n          display:block;\r\n          opacity:var(--ng-line-opacity,0);\r\n          transform:translate3d(0,var(--ng-line-y,28px),0);\r\n          transition:none;\r\n          will-change:opacity,transform;\r\n        }\r\n        .ng-about p{font-size:17px;line-height:1.75;color:#5f6772;max-width:700px}\r\n        .ng-about .ng-num{color:#747d88!important}\r\n        .ng-about a{color:#111820!important}\r\n        .ng-about-ao-wrap{position:relative!important;z-index:30!important;pointer-events:auto!important;font-size:17px;line-height:1.75;margin:17px 0}\r\n        .ng-about-ao-link{\r\n          position:relative!important;z-index:31!important;display:inline-flex!important;\r\n          align-items:center;gap:5px;pointer-events:auto!important;cursor:pointer!important;\r\n          color:#111820!important;text-decoration:underline!important;text-underline-offset:4px;\r\n          text-decoration-thickness:1px\r\n        }\r\n\r\n\r\n        .ng-contact{padding:110px 0;background:#05070a;color:#fff;border-top:1px solid var(--ng-line)}\r\n        .ng-contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:90px}\r\n        .ng-contact h2{font-family:Georgia,serif;font-size:clamp(60px,7vw,108px);font-weight:400;line-height:.89;letter-spacing:-.055em;margin:0;color:#fff!important}\r\n        .ng-contact .ng-kicker{color:rgba(255,255,255,.48)!important}\r\n        .ng-form{display:grid;gap:8px}.ng-form input,.ng-form textarea{width:100%;background:transparent;color:#fff;border:0;border-bottom:1px solid rgba(255,255,255,.22);padding:16px 0;outline:0;border-radius:0}\r\n        .ng-form textarea{min-height:135px;resize:vertical}.ng-form input::placeholder,.ng-form textarea::placeholder{color:rgba(255,255,255,.38)}\r\n        .ng-send{justify-self:start;margin-top:16px;border:0;background:#fff;color:#111;border-radius:999px;padding:13px 19px;font-weight:800;cursor:pointer}\r\n        .ng-status{font-size:12px;color:rgba(255,255,255,.55);min-height:18px}\r\n        .ng-footer{background:#05070a;color:rgba(255,255,255,.42);border-top:1px solid var(--ng-line);padding:28px 0}\r\n        .ng-foot{display:flex;justify-content:space-between;font-size:9px;letter-spacing:.16em;text-transform:uppercase}\r\n\r\n        .ng-lightbox{position:fixed;inset:0;z-index:99999;background:rgba(5,7,10,.94);display:none;align-items:center;justify-content:center;padding:64px 54px 46px;backdrop-filter:blur(14px)}\r\n        .ng-lightbox.open{display:flex}\r\n        .ng-lb-inner{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;width:min(88vw,1440px);height:min(86vh,980px);max-width:94vw;max-height:92vh}\r\n        .ng-lightbox img{display:block;width:100%;height:calc(100% - 42px);max-width:100%;max-height:82vh;object-fit:contain;box-shadow:0 30px 100px rgba(0,0,0,.45)}\r\n        .ng-lb-close{position:absolute;top:24px;right:28px;width:46px;height:46px;border:1px solid rgba(255,255,255,.24);border-radius:50%;background:rgba(12,15,20,.72);cursor:pointer;padding:0;display:grid;place-items:center;transition:background .2s ease,border-color .2s ease,transform .2s ease;z-index:3}\r\n        .ng-lb-close:before,.ng-lb-close:after{content:\"\";position:absolute;width:16px;height:1.5px;border-radius:99px;background:#fff;left:50%;top:50%;transform-origin:center}\r\n        .ng-lb-close:before{transform:translate(-50%,-50%) rotate(45deg)}\r\n        .ng-lb-close:after{transform:translate(-50%,-50%) rotate(-45deg)}\r\n        .ng-lb-close:hover{background:rgba(255,255,255,.10);border-color:rgba(255,255,255,.46);transform:scale(1.04)}\r\n        .ng-lb-bottom{width:100%;display:flex;align-items:center;justify-content:space-between;gap:20px}\r\n        .ng-lb-caption{position:static;color:rgba(255,255,255,.68);font-size:10px;letter-spacing:.16em;text-transform:uppercase}\r\n        .ng-lb-demo{display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.35);border-radius:999px;padding:10px 16px;color:#fff;text-decoration:none;font-size:10px;letter-spacing:.12em;text-transform:uppercase}\r\n        .ng-lb-demo[hidden]{display:none!important}\r\n        @media(max-width:760px){\r\n          .ng-lightbox{padding:70px 16px 24px}\r\n          .ng-lb-inner{width:100%;height:78vh}\r\n          .ng-lightbox img{height:calc(100% - 46px);max-height:70vh}\r\n          .ng-lb-close{top:18px;right:18px;width:42px;height:42px}\r\n          .ng-lb-bottom{align-items:flex-start;flex-direction:column;gap:10px}\r\n        }\r\n        \r\n        \/* V3.3 \u2014 cinematic scroll choreography *\/\r\n        .ng-scroll-progress{position:fixed;z-index:140;right:16px;top:50%;width:2px;height:170px;transform:translateY(-50%);background:rgba(128,136,148,.18);border-radius:99px;pointer-events:none}\r\n        .ng-scroll-progress i{position:absolute;left:0;top:0;width:100%;height:var(--ng-progress,0%);background:currentColor;border-radius:99px;box-shadow:0 0 18px currentColor}\r\n        .ng2[data-scroll-dir=\"down\"] .ng-scroll-progress{color:rgba(255,255,255,.78)}\r\n        .ng2[data-scroll-dir=\"up\"] .ng-scroll-progress{color:rgba(145,158,177,.9)}\r\n\r\n        \/* v3.7.2 \u2014 no color curtain over sections. *\/\r\n        .ng-scene{position:relative;isolation:auto}\r\n        .ng-scene:after{display:none!important;content:none!important}\r\n\r\n        \/* Oversized section title has reversible lateral motion. *\/\r\n        .ng-scroll-drift{position:relative;z-index:10;transform:translate3d(var(--ng-x,0px),var(--ng-y,0px),0);\r\n          opacity:var(--ng-title-opacity,1);will-change:transform,opacity}\r\n\r\n        \/* Portfolio media gets cinematic depth, without changing layout dimensions. *\/\r\n        .ng-cinematic-media{position:relative;overflow:hidden}\r\n        .ng-cinematic-media>img{transform:translate3d(0,var(--ng-img-y,0px),0) scale(var(--ng-img-scale,1.06));\r\n          transform-origin:50% 50%;will-change:transform}\r\n        .ng-cinematic-media:after{content:\"\";position:absolute;inset:0;pointer-events:none;z-index:3;\r\n          background:linear-gradient(110deg,rgba(255,255,255,.12),transparent 34%,transparent 68%,rgba(0,0,0,.12));\r\n          opacity:var(--ng-sheen,0);mix-blend-mode:soft-light}\r\n\r\n        \/* Horizontal rails get a small counter-motion, creating depth. *\/\r\n        .ng-cinematic-rail{transform:translate3d(var(--ng-rail-x,0px),0,0);will-change:transform}\r\n\r\n        \/* v3.7.2 \u2014 Digital Products gets its own restrained Safari-safe scroll motion. *\/\r\n        .ng-products{overflow:visible;overflow-anchor:none}\r\n        .ng-products .ng-product{\r\n          transform:translate3d(0,var(--ng-product-y,0px),0) scale(var(--ng-product-scale,1));\r\n          opacity:var(--ng-product-opacity,1);\r\n          will-change:transform,opacity;\r\n        }\r\n        .ng-products .ng-product-media{cursor:zoom-in;overflow:hidden}\r\n        .ng-products .ng-product-media img{\r\n          transform:scale(var(--ng-product-img-scale,1.025))!important;\r\n          transition:none!important;\r\n          animation:none!important;\r\n          will-change:auto!important;\r\n        }\r\n\r\n        \/*\r\n         * DIGITAL PRODUCTS \u2014 INTERACTION AU SURVOL\r\n         * Effet volontairement l\u00e9ger : \u00e9l\u00e9vation, micro-rotation,\r\n         * zoom de l\u2019image et d\u00e9placement discret du lien.\r\n         * Utilise les propri\u00e9t\u00e9s CSS individuelles translate\/scale\/rotate\r\n         * afin de ne pas r\u00e9activer les anciens transforms Safari.\r\n         *\/\r\n        @media (hover:hover) and (pointer:fine){\r\n          .ng-products .ng-product{\r\n            position:relative;\r\n            translate:0 0;\r\n            rotate:0deg;\r\n            transition:translate .42s cubic-bezier(.2,.75,.25,1),\r\n                       rotate .42s cubic-bezier(.2,.75,.25,1),\r\n                       box-shadow .42s ease,\r\n                       border-color .32s ease,\r\n                       background-color .32s ease!important;\r\n          }\r\n          .ng-products .ng-product:after{\r\n            content:\"\";\r\n            position:absolute;\r\n            inset:0;\r\n            pointer-events:none;\r\n            border-radius:inherit;\r\n            background:linear-gradient(120deg,rgba(255,255,255,0) 15%,rgba(255,255,255,.52) 47%,rgba(255,255,255,0) 70%);\r\n            opacity:0;\r\n            translate:-38% 0;\r\n            transition:opacity .28s ease,translate .65s cubic-bezier(.2,.75,.25,1);\r\n            z-index:3;\r\n          }\r\n          .ng-products .ng-product:hover{\r\n            translate:0 -9px;\r\n            rotate:-.35deg;\r\n            border-color:#bfc7d1;\r\n            box-shadow:0 24px 55px rgba(17,24,32,.14);\r\n          }\r\n          .ng-products .ng-product:nth-child(even):hover{rotate:.35deg}\r\n          .ng-products .ng-product:hover:after{\r\n            opacity:.34;\r\n            translate:38% 0;\r\n          }\r\n          .ng-products .ng-product-media img{\r\n            scale:1;\r\n            transition:scale .65s cubic-bezier(.2,.75,.25,1),filter .45s ease!important;\r\n          }\r\n          .ng-products .ng-product:hover .ng-product-media img{\r\n            scale:1.045;\r\n            filter:contrast(1.025);\r\n          }\r\n          .ng-products .ng-product-body{\r\n            position:relative;\r\n            z-index:4;\r\n          }\r\n          .ng-products .ng-product h3{\r\n            translate:0 0;\r\n            transition:translate .38s cubic-bezier(.2,.75,.25,1);\r\n          }\r\n          .ng-products .ng-product:hover h3{translate:4px 0}\r\n          .ng-products .ng-case{\r\n            position:relative;\r\n            transition:letter-spacing .32s ease,translate .32s ease,opacity .32s ease;\r\n          }\r\n          .ng-products .ng-product:hover .ng-case{\r\n            translate:5px 0;\r\n            letter-spacing:.17em;\r\n          }\r\n        }\r\n\r\n        @media (prefers-reduced-motion:reduce){\r\n          .ng-products .ng-product,\r\n          .ng-products .ng-product-media img,\r\n          .ng-products .ng-product h3,\r\n          .ng-products .ng-case{\r\n            transition:none!important;\r\n          }\r\n        }\r\n\r\n        @media(max-width:760px){\r\n          .ng-lang{margin-left:3px;padding-left:8px}.ng-lang span{display:none}\r\n          .ng-scroll-progress{right:8px;height:110px}\r\n          .ng-scroll-drift{will-change:auto}\r\n        }\r\n        \r\n        @media(max-width:760px){\r\n          .ng-quote-grid{\r\n            gap:12px;\r\n            padding-right:8vw;\r\n          }\r\n          .ng-quote-grid .ng-quote{\r\n            flex-basis:86vw;\r\n            min-width:86vw;\r\n          }\r\n        }\r\n\r\n@media(max-width:620px){\r\n          .ng-about-media img{height:116%;--ng-about-scale:1.16}\r\n        }\r\n\r\n        \/* v3.7 \u2014 QClay-inspired scroll choreography.\r\n           Visual design\/layout stays intact; only scroll-driven paint transforms are added. *\/\r\n        .ng-hero-media{overflow:hidden}\r\n        .ng-hero-media video,.ng-hero-media img{\r\n          transform:translate3d(0,var(--ng-hero-media-y,0px),0) scale(var(--ng-hero-media-scale,1.06));\r\n          transform-origin:50% 50%;\r\n          will-change:transform;\r\n        }\r\n        .ng-hero-copy{\r\n          transform:translate3d(0,var(--ng-hero-copy-y,0px),0) scale(var(--ng-hero-copy-scale,1));\r\n          opacity:var(--ng-hero-copy-opacity,1);\r\n          transform-origin:0 100%;\r\n          will-change:transform,opacity;\r\n        }\r\n\r\n        .ng-q-media{position:relative;overflow:hidden}\r\n        .ng-q-media>img{\r\n          transform:translate3d(var(--ng-q-x,0px),var(--ng-q-y,0px),0) scale(var(--ng-q-scale,1.10));\r\n          transform-origin:50% 50%;\r\n          will-change:transform;\r\n        }\r\n        .ng-q-media:before{\r\n          content:\"\";position:absolute;inset:0;z-index:2;pointer-events:none;\r\n          background:linear-gradient(115deg,rgba(255,255,255,.12),transparent 32%,transparent 68%,rgba(0,0,0,.12));\r\n          opacity:var(--ng-q-sheen,0);\r\n          mix-blend-mode:soft-light;\r\n        }\r\n\r\n        .ng-q-stage{\r\n          transform:translate3d(var(--ng-q-stage-x,0px),var(--ng-q-stage-y,0px),0) scale(var(--ng-q-stage-scale,1));\r\n          transform-origin:50% 50%;\r\n          will-change:transform;\r\n        }\r\n\r\n        .ng-head .ng-num,.ng-head .ng-sub{\r\n          transform:translate3d(var(--ng-q-meta-x,0px),var(--ng-q-meta-y,0px),0);\r\n          opacity:var(--ng-q-meta-opacity,1);\r\n          will-change:transform,opacity;\r\n        }\r\n\r\n        .ng-award-media .ng-card,.ng-quote{\r\n          transform:translate3d(0,var(--ng-q-card-y,0px),0) scale(var(--ng-q-card-scale,1));\r\n          will-change:transform;\r\n        }\r\n\r\n        \/* Product motion is handled separately from the heavier QClay media engine. *\/\r\n        .ng-products *{\r\n          --ng-q-x:0px!important;--ng-q-y:0px!important;--ng-q-scale:1!important;\r\n          --ng-q-stage-x:0px!important;--ng-q-stage-y:0px!important;--ng-q-stage-scale:1!important;\r\n          --ng-q-card-y:0px!important;--ng-q-card-scale:1!important;\r\n        }\r\n\r\n\r\n        \/* v3.7.1 \u2014 MOBILE SAFE MODE\r\n           Keep the cinematic feeling, but prevent desktop-scale transforms from breaking mobile layout. *\/\r\n        @media(max-width:760px){\r\n          .ng-scroll-drift{\r\n            transform:translate3d(var(--ng-x-mobile,0px),var(--ng-y-mobile,0px),0)!important;\r\n            opacity:var(--ng-title-opacity-mobile,1)!important;\r\n            will-change:auto!important;\r\n          }\r\n          .ng-q-media>img{\r\n            transform:translate3d(0,var(--ng-q-y-mobile,0px),0) scale(var(--ng-q-scale-mobile,1.035))!important;\r\n            will-change:auto!important;\r\n          }\r\n          .ng-q-media:before{opacity:var(--ng-q-sheen-mobile,.08)!important}\r\n          .ng-head .ng-num,.ng-head .ng-sub{\r\n            transform:translate3d(0,var(--ng-q-meta-y-mobile,0px),0)!important;\r\n            opacity:var(--ng-q-meta-opacity-mobile,1)!important;\r\n            will-change:auto!important;\r\n          }\r\n          .ng-q-stage{\r\n            transform:translate3d(0,var(--ng-q-stage-y-mobile,0px),0) scale(var(--ng-q-stage-scale-mobile,1))!important;\r\n            will-change:auto!important;\r\n          }\r\n          .ng-award-media .ng-card,.ng-quote{\r\n            transform:translate3d(0,var(--ng-q-card-y-mobile,0px),0) scale(var(--ng-q-card-scale-mobile,1))!important;\r\n            will-change:auto!important;\r\n          }\r\n          .ng-hero-media video,.ng-hero-media img{\r\n            transform:translate3d(0,var(--ng-hero-media-y-mobile,0px),0) scale(var(--ng-hero-media-scale-mobile,1.03))!important;\r\n            will-change:auto!important;\r\n          }\r\n          .ng-hero-copy{\r\n            transform:translate3d(0,var(--ng-hero-copy-y-mobile,0px),0)!important;\r\n            opacity:var(--ng-hero-copy-opacity-mobile,1)!important;\r\n            will-change:auto!important;\r\n          }\r\n          .ng-q-media,.ng-q-stage,.ng-award-media .ng-card,.ng-quote,.ng-hero-media,.ng-hero-copy{\r\n            -webkit-backface-visibility:hidden;\r\n            backface-visibility:hidden;\r\n            perspective:none!important;\r\n          }\r\n          .ng-products .ng-product{\r\n            transform:translate3d(0,var(--ng-product-y-mobile,0px),0) scale(var(--ng-product-scale-mobile,1))!important;\r\n            opacity:var(--ng-product-opacity-mobile,1)!important;\r\n            will-change:auto!important;\r\n          }\r\n          .ng-products .ng-product-media img{\r\n            transform:scale(var(--ng-product-img-scale-mobile,1.015))!important;\r\n            will-change:auto!important;\r\n          }\r\n        }\r\n\r\n        @media(prefers-reduced-motion:reduce){\r\n          .ng-about-media img{transform:none!important;height:100%!important;will-change:auto!important}\r\n          .ng-about-scroll-title .ng-about-title-source{display:inline!important}\r\n          .ng-about-scroll-title .ng-about-linefx{display:none!important}\r\n\r\n\r\n          .ng-scroll-progress{display:none}\r\n          .ng-scene:after{display:none!important}\r\n          .ng-scroll-drift,.ng-cinematic-media>img,.ng-cinematic-rail,\r\n          .ng-hero-media video,.ng-hero-media img,.ng-hero-copy,\r\n          .ng-q-media>img,.ng-q-stage,.ng-head .ng-num,.ng-head .ng-sub,\r\n          .ng-award-media .ng-card,.ng-quote{transform:none!important;opacity:1!important}\r\n        }\r\n\r\n        .ng-reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}.ng-reveal.in{opacity:1;transform:none}\r\n\r\n        @media(min-width:1500px){\r\n            .ng-cosmetics>article{flex-basis:38vw;max-width:590px}\r\n        }\r\n        @media(max-width:980px){\r\n            .ng-shell,.ng-hero-copy{width:min(calc(100% - 32px),var(--ng-max))}\r\n            .ng-menu{max-width:none;overflow:auto;white-space:nowrap;scrollbar-width:none;gap:15px;justify-content:flex-start}\r\n            .ng-menu::-webkit-scrollbar{display:none}\r\n            .ng-intro-grid,.ng-products-top,.ng-about-grid,.ng-contact-grid,.ng-awards-grid,.ng-quote-grid{grid-template-columns:1fr}\r\n            .ng-testimonials-head{grid-template-columns:1fr}\r\n            .ng-cosmetic-lead{grid-template-columns:1fr}.ng-cosmetic-lead .role{grid-column:1}.ng-award-media{grid-template-columns:1fr}\r\n            .ng-head{grid-template-columns:1fr;gap:10px}.ng-sub{text-align:left}\r\n            .ng-cosmetics>article{flex-basis:78vw;min-width:78vw}\r\n            .ng-web>article{min-width:88vw}\r\n            .ng-product-grid{grid-template-columns:1fr}\r\n            .ng-art{columns:2}\r\n            .ng-intro,.ng-section,.ng-products,.ng-about,.ng-contact{padding:78px 0}\r\n            .ng-hero{min-height:620px}.ng-hero-bottom{display:block}.ng-scroll{display:inline-block;margin-top:25px}\r\n        }\r\n        @media(max-width:620px){\r\n            body.admin-bar .ng-nav{top:46px}.ng-navin{min-height:62px}.ng-discipline{top:62px}body.admin-bar .ng-discipline{top:108px}\r\n            .ng-brand{font-size:10px}.ng-menu{font-size:9px}.ng-navin{gap:10px}.ng-lang{padding-left:8px;margin-left:0}.ng-lang button{font-size:9px;padding:5px 1px}\r\n\r\n            .ng-hero{min-height:560px;height:82svh}.ng-hero h1{font-size:clamp(52px,14vw,82px)}\r\n            .ng-poster{min-width:82vw}.ng-art{columns:1}.ng-foot{flex-direction:column;gap:12px}\r\n        }\r\n\r\n        \/* v3.8.1 \u2014 mobile navigation + contact modal. Uses existing monochrome\/silver palette only. *\/\r\n        .ng-menu-toggle{display:none;appearance:none;border:1px solid rgba(255,255,255,.20);background:rgba(255,255,255,.035);color:#fff;border-radius:999px;padding:9px 12px;font:inherit;font-size:9px;letter-spacing:.15em;text-transform:uppercase;cursor:pointer;align-items:center;gap:8px}\r\n        .ng-menu-toggle i{display:block;width:14px;height:1px;background:currentColor;position:relative}\r\n        .ng-menu-toggle i:before,.ng-menu-toggle i:after{content:\"\";position:absolute;left:0;width:14px;height:1px;background:currentColor;transition:.25s ease}\r\n        .ng-menu-toggle i:before{top:-4px}.ng-menu-toggle i:after{top:4px}\r\n        .ng-menu-toggle.is-open i{background:transparent}.ng-menu-toggle.is-open i:before{top:0;transform:rotate(45deg)}.ng-menu-toggle.is-open i:after{top:0;transform:rotate(-45deg)}\r\n\r\n        .ng-contact-modal{position:fixed;inset:0;z-index:100000;display:flex;align-items:center;justify-content:center;padding:34px;background:rgba(4,6,9,.72);backdrop-filter:blur(18px);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .32s ease,visibility .32s ease}\r\n        .ng-contact-modal.open{opacity:1;visibility:visible;pointer-events:auto}\r\n        .ng-contact-modal.closing{opacity:0}\r\n        .ng-contact-dialog{position:relative;width:min(100%,980px);max-height:min(88vh,860px);overflow:auto;background:linear-gradient(145deg,#0b0e13,#111722);border:1px solid rgba(255,255,255,.14);box-shadow:0 35px 120px rgba(0,0,0,.55);padding:clamp(30px,5vw,68px);transform:translateY(18px) scale(.985);opacity:0;transition:transform .36s ease,opacity .36s ease}\r\n        .ng-contact-modal.open .ng-contact-dialog{transform:none;opacity:1}\r\n        .ng-contact-close{position:absolute;right:20px;top:20px;width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.22);background:rgba(12,15,20,.28);cursor:pointer;padding:0;display:grid;place-items:center;z-index:4;transition:background .2s ease,border-color .2s ease,transform .2s ease}\r\n        .ng-contact-close:before,.ng-contact-close:after{content:\"\";position:absolute;width:15px;height:1.5px;border-radius:99px;background:#fff;left:50%;top:50%;transform-origin:center}\r\n        .ng-contact-close:before{transform:translate(-50%,-50%) rotate(45deg)}\r\n        .ng-contact-close:after{transform:translate(-50%,-50%) rotate(-45deg)}\r\n        .ng-contact-close:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.42);transform:scale(1.04)}\r\n        .ng-contact-top{display:grid;grid-template-columns:.8fr 1.2fr;gap:64px;align-items:start}\r\n        .ng-contact-copy .ng-kicker{font-size:9px;letter-spacing:.20em;text-transform:uppercase;color:rgba(255,255,255,.46);margin-bottom:16px}\r\n        .ng-contact-copy h2{font-family:Georgia,serif;font-size:clamp(46px,6vw,82px);font-weight:400;line-height:.92;letter-spacing:-.05em;margin:0;color:#fff}\r\n        .ng-contact-copy p{color:rgba(255,255,255,.55);font-size:13px;line-height:1.7;max-width:330px;margin:22px 0 0}\r\n        .ng-contact-modal .ng-form{transition:opacity .32s ease,transform .32s ease}\r\n        .ng-contact-modal .ng-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}\r\n        .ng-contact-modal .ng-form .full{grid-column:1\/-1}\r\n        .ng-contact-modal .ng-form input,.ng-contact-modal .ng-form textarea{font-size:14px}\r\n        .ng-contact-modal .ng-send{background:#f7f8fa;color:#0d1015;transition:transform .2s ease,opacity .2s ease}\r\n        .ng-contact-modal .ng-send:hover{transform:translateY(-1px)}\r\n        .ng-contact-modal .ng-send:disabled{opacity:.5;cursor:default}\r\n        .ng-contact-success{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:50px;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .35s ease,transform .35s ease,visibility .35s ease;background:linear-gradient(145deg,#0b0e13,#111722)}\r\n        .ng-contact-success strong{display:block;font-family:Georgia,serif;font-size:clamp(38px,5vw,66px);font-weight:400;letter-spacing:-.04em;margin-bottom:15px}\r\n        .ng-contact-success span{display:block;color:rgba(255,255,255,.58);font-size:13px;line-height:1.7}\r\n        .ng-contact-dialog.is-success .ng-contact-top{opacity:0;transform:translateY(-8px);pointer-events:none;transition:opacity .28s ease,transform .28s ease}\r\n        .ng-contact-dialog.is-success .ng-contact-success{opacity:1;visibility:visible;transform:none}\r\n        body.ng-modal-lock{overflow:hidden}\r\n\r\n        @media(max-width:980px){\r\n          .ng-navin{position:relative}\r\n          .ng-menu-toggle{display:inline-flex;order:2}\r\n          .ng-lang{order:3}\r\n          .ng-menu{position:fixed;left:0;right:0;top:70px;height:calc(100dvh - 70px);z-index:99;background:rgba(7,9,12,.985);backdrop-filter:blur(22px);display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:0!important;padding:38px max(24px,calc((100vw - min(calc(100vw - 32px),var(--ng-max)))\/2));overflow:auto;white-space:normal;transform:translateY(-12px);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .28s ease,transform .28s ease,visibility .28s ease}\r\n          .ng-menu.open{transform:none;opacity:1;visibility:visible;pointer-events:auto}\r\n          .ng-menu a{width:100%;padding:13px 0;border-bottom:1px solid rgba(255,255,255,.10);font-size:clamp(20px,5vw,34px);font-family:Georgia,serif;letter-spacing:-.02em;text-transform:none;opacity:.82}\r\n          .ng-menu a:hover{opacity:1}\r\n          body.admin-bar .ng-menu{top:102px;height:calc(100dvh - 102px)}\r\n          .ng-contact-top{grid-template-columns:1fr;gap:34px}\r\n        }\r\n        @media(max-width:620px){\r\n          .ng-navin{gap:8px}.ng-brand{margin-right:auto}.ng-menu-toggle{padding:8px 10px}.ng-menu-toggle span{display:none}\r\n          .ng-menu{top:62px;height:calc(100dvh - 62px);padding:28px 16px}.ng-menu a{font-size:29px;padding:11px 0}\r\n          body.admin-bar .ng-menu{top:108px;height:calc(100dvh - 108px)}\r\n          .ng-contact-modal{padding:0;align-items:flex-end}\r\n          .ng-contact-dialog{width:100%;max-height:94dvh;border-left:0;border-right:0;border-bottom:0;padding:58px 20px 28px;border-radius:18px 18px 0 0}\r\n          .ng-contact-close{top:12px;right:14px}\r\n          .ng-contact-copy h2{font-size:46px}.ng-contact-copy p{margin-top:14px}\r\n          .ng-contact-modal .ng-form-grid{grid-template-columns:1fr;gap:0}.ng-contact-modal .ng-form .full{grid-column:auto}\r\n        }\r\n        <\/style>\r\n\r\n        <nav class=\"ng-nav\">\r\n          <div class=\"ng-shell ng-navin\">\r\n            <a class=\"ng-brand\" href=\"#top\">ALEN NOGHLI<\/a>\r\n            <button class=\"ng-menu-toggle\" type=\"button\" aria-expanded=\"false\" aria-controls=\"ng-main-menu\"><i aria-hidden=\"true\"><\/i><span data-i18n=\"menu_label\">Menu<\/span><\/button>\r\n            <div class=\"ng-menu\" id=\"ng-main-menu\">\r\n              <a href=\"#about\"><span data-i18n=\"nav_about\">ABOUT<\/span><\/a>\r\n              <a href=\"#products\"><span data-i18n=\"nav_products\">PRODUCTS<\/span><\/a>\r\n              <a href=\"#cosmetiques\"><span data-i18n=\"nav_cosmetics\">COSM\u00c9TIQUES<\/span><\/a>\r\n              <a href=\"#posters\"><span data-i18n=\"nav_posters\">POSTERS<\/span><\/a>\r\n              <a href=\"#motion\"><span data-i18n=\"nav_motion\">MOTION<\/span><\/a>\r\n              <a href=\"#web\"><span data-i18n=\"nav_web\">WEB<\/span><\/a>\r\n              <a href=\"#artistiques\"><span data-i18n=\"nav_art\">ARTISTIC<\/span><\/a>\r\n              <a href=\"#contact\" data-contact-open><span data-i18n=\"nav_contact\">CONTACT<\/span><\/a>\r\n            <\/div>\r\n            <div class=\"ng-lang\" role=\"group\" aria-label=\"Language switcher\">\r\n              <button type=\"button\" data-lang=\"fr\" aria-label=\"Fran\u00e7ais\">FR<\/button>\r\n              <span aria-hidden=\"true\">\/<\/span>\r\n              <button type=\"button\" data-lang=\"en\" class=\"is-active\" aria-label=\"English\">EN<\/button>\r\n            <\/div>\r\n          <\/div>\r\n        <\/nav>\r\n\r\n        \r\n        <section class=\"ng-hero\" id=\"top\">\r\n          <div class=\"ng-hero-media\">\r\n                          <video autoplay muted loop playsinline preload=\"metadata\" src=\"https:\/\/noghli.fr\/wp-content\/uploads\/2022\/05\/logo.mp4\"><\/video>\r\n                      <\/div>\r\n          <div class=\"ng-hero-copy\">\r\n            <div class=\"ng-kicker\"><span data-i18n=\"hero_kicker\">PARIS \u00b7 CREATIVE DIRECTOR \u00b7 ART DIRECTION \u00b7 DIGITAL<\/span><\/div>\r\n            <h1><span data-i18n=\"hero_title\">Image, identity &amp; digital experiences.<\/span><\/h1>\r\n            <div class=\"ng-hero-bottom\">\r\n              <p><span data-i18n=\"hero_text\">A selected body of work across luxury, cosmetics, visual culture, web design and digital products.<\/span><\/p>\r\n              <a class=\"ng-scroll\" href=\"#about\"><span data-i18n=\"scroll_cta\">ABOUT & PORTFOLIO \u2193<\/span><\/a>\r\n            <\/div>\r\n          <\/div>\r\n        <\/section>\r\n\r\n        <section class=\"ng-about ng-scene is-light\" id=\"about\">\r\n          <div class=\"ng-shell ng-about-grid\">\r\n            <div class=\"ng-about-media ng-reveal\">\r\n              <img decoding=\"async\" src=\"https:\/\/noghli.fr\/wp-content\/uploads\/2025\/10\/Alen-Noghli.jpg\" alt=\"Alen Noghli\">            <\/div>\r\n            <div class=\"ng-reveal\">\r\n              <div class=\"ng-num\"> <span data-i18n=\"nav_about\">ABOUT<\/span><\/div>\r\n              <h2 class=\"ng-about-scroll-title\"><span data-i18n=\"about_title\" class=\"ng-about-title-source\">Creative direction at the intersection of image, identity and digital experience.<\/span><\/h2>\r\n              <p><span data-i18n=\"about_text\">For more than two decades, I have built visual identities, campaigns and digital experiences at the crossroads of art direction, design and technology.<br \/>\r\n<br \/>\r\nMy work moves between luxury and cosmetics, editorial and cultural projects, photography, packaging, web design and digital products. I have led creative direction and digital communication for brands and organisations in Paris, while remaining deeply connected to artistic practice through photography, painting and sculpture.<br \/>\r\n<br \/>\r\nToday, I approach every project as a complete visual system: an idea, an image, a brand language and an experience designed to remain coherent across print, screen and space.<\/span><\/p>\r\n              <div class=\"ng-about-ao-wrap\"><a class=\"ng-about-ao-link\" href=\"https:\/\/atelierombres.com\/\" target=\"_blank\" rel=\"noopener\">Atelier Ombres \u2197<\/a><\/div>\r\n            <\/div>\r\n          <\/div>\r\n        <\/section>\r\n\r\n\r\n        <section class=\"ng-products ng-products-dark ng-scene is-dark\" id=\"products\">\r\n          <div class=\"ng-shell\">\r\n            <div class=\"ng-products-top ng-reveal\">\r\n              <h2 class=\"ng-scroll-drift\">Digital<br>products.<\/h2>\r\n              <p>Newer product projects across hospitality, healthcare and mobile experiences.<\/p>\r\n            <\/div>\r\n            <div class=\"ng-product-grid\">\r\n                            <article class=\"ng-product ng-reveal\">\r\n                <div class=\"ng-product-media ng-zoom ng-product-zoom\"\r\n                                          onclick=\"window.ng2OpenLightbox&&window.ng2OpenLightbox(this)\"\r\n                     data-full=\"https:\/\/atelierombres.com\/wp-content\/uploads\/2026\/08\/TM2-RESTOTOUT-scaled.png\"\r\n                     data-label=\"RestoTout\"\r\n                     data-demo=\"\"\r\n                     >\r\n                  <img loading=\"eager\" decoding=\"async\" fetchpriority=\"low\" src=\"https:\/\/atelierombres.com\/wp-content\/uploads\/2026\/08\/TM2-RESTOTOUT-scaled.png\" alt=\"RestoTout\">\r\n                                  <\/div>\r\n                <div class=\"ng-product-body\">\r\n                  <div class=\"ng-product-tag\">Restaurant Management Ecosystem<\/div>\r\n                  <h3>RestoTout<\/h3>\r\n                  <p>Website, ordering, reservations, team operations, admin OS and mobile application.<\/p>\r\n                  <span class=\"ng-case\">Demo coming soon<\/span>                <\/div>\r\n              <\/article>\r\n                            <article class=\"ng-product ng-reveal\">\r\n                <div class=\"ng-product-media ng-zoom ng-product-zoom\"\r\n                                          onclick=\"window.ng2OpenLightbox&&window.ng2OpenLightbox(this)\"\r\n                     data-full=\"https:\/\/noghli.fr\/wp-content\/uploads\/2026\/09\/PM-AO-.png\"\r\n                     data-label=\"Plateforme M\u00e9dicale\"\r\n                     data-demo=\"\"\r\n                     >\r\n                  <img loading=\"eager\" decoding=\"async\" fetchpriority=\"low\" src=\"https:\/\/noghli.fr\/wp-content\/uploads\/2026\/09\/PM-AO-.png\" alt=\"Plateforme M\u00e9dicale\">\r\n                                  <\/div>\r\n                <div class=\"ng-product-body\">\r\n                  <div class=\"ng-product-tag\">Healthcare Operations Platform<\/div>\r\n                  <h3>Plateforme M\u00e9dicale<\/h3>\r\n                  <p>Patient journey, clinical workflows, documents, questionnaires, operations and administration.<\/p>\r\n                  <span class=\"ng-case\">Demo coming soon<\/span>                <\/div>\r\n              <\/article>\r\n                            <article class=\"ng-product ng-reveal\">\r\n                <div class=\"ng-product-media ng-zoom ng-product-zoom\"\r\n                                          onclick=\"window.ng2OpenLightbox&&window.ng2OpenLightbox(this)\"\r\n                     data-full=\"https:\/\/noghli.fr\/wp-content\/uploads\/2026\/08\/Pet-Matching-poster.png\"\r\n                     data-label=\"Pet Matching\"\r\n                     data-demo=\"\"\r\n                     >\r\n                  <img loading=\"eager\" decoding=\"async\" fetchpriority=\"low\" src=\"https:\/\/noghli.fr\/wp-content\/uploads\/2026\/08\/Pet-Matching-poster.png\" alt=\"Pet Matching\">\r\n                                  <\/div>\r\n                <div class=\"ng-product-body\">\r\n                  <div class=\"ng-product-tag\">Mobile Product<\/div>\r\n                  <h3>Pet Matching<\/h3>\r\n                  <p>Profiles, matching, persistent matches, media, messaging and mobile-first product experience.<\/p>\r\n                  <span class=\"ng-case\">Demo coming soon<\/span>                <\/div>\r\n              <\/article>\r\n                          <\/div>\r\n          <\/div>\r\n        <\/section>\r\n\r\n        <div class=\"ng-discipline\">\r\n          <div class=\"ng-shell ng-discipline-in\">\r\n            <a href=\"#cosmetiques\">01 \u2014 Cosm\u00e9tiques<\/a>\r\n            <a href=\"#posters\">02 \u2014 Posters<\/a>\r\n            <a href=\"#motion\">03 \u2014 Motion Design<\/a>\r\n            <a href=\"#web\">04 \u2014 Web Design<\/a>\r\n            <a href=\"#artistiques\">05 \u2014 Projets Artistiques<\/a>\r\n          <\/div>\r\n        <\/div>\r\n\r\n                <section class=\"ng-section ng-scene is-light\" id=\"cosmetiques\">\r\n          <div class=\"ng-shell\">\r\n            <div class=\"ng-head ng-reveal\">\r\n              <div class=\"ng-num\">01 \u00b7 Portfolio<\/div>\r\n              <h2 class=\"ng-scroll-drift\">COSMETIQUES<\/h2>\r\n              <div class=\"ng-sub\">Design, Packaging &amp; Photography<\/div>\r\n            <\/div>\r\n            <div class=\"ng-cosmetic-lead ng-reveal\">\r\n              <div class=\"role\"><span>Direction artistique<\/span>Design \u00b7 Packaging \u00b7 Photography<\/div>\r\n            <\/div>\r\n            <div class=\"ng-cosmetics\">\r\n                                          <article class=\"ng-reveal\">\r\n                <div class=\"ng-card\"><div class=\"ng-img ng-zoom\" onclick=\"window.ng2OpenLightbox&&window.ng2OpenLightbox(this)\" data-full=\"https:\/\/noghli.fr\/wp-content\/uploads\/2025\/03\/CASANERA-ECOPUMP-SAVON-et-TUBE-.jpg\" data-label=\"CASANERA\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/noghli.fr\/wp-content\/uploads\/2025\/03\/CASANERA-ECOPUMP-SAVON-et-TUBE-.jpg\" alt=\"CASANERA\"><\/div><\/div>\r\n                <div class=\"ng-caption\"><strong>CASANERA<\/strong><span>Design \u00b7 Packaging \u00b7 Photography<\/span><\/div>\r\n              <\/article>\r\n                                          <article class=\"ng-reveal\">\r\n                <div class=\"ng-card\"><div class=\"ng-img ng-zoom\" onclick=\"window.ng2OpenLightbox&&window.ng2OpenLightbox(this)\" data-full=\"https:\/\/noghli.fr\/wp-content\/uploads\/2025\/08\/PHYTOMER-line-all-ambi-2025.jpg\" data-label=\"PHYTOMER\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/noghli.fr\/wp-content\/uploads\/2025\/08\/PHYTOMER-line-all-ambi-2025.jpg\" alt=\"PHYTOMER\"><\/div><\/div>\r\n                <div class=\"ng-caption\"><strong>PHYTOMER<\/strong><span>Design \u00b7 Packaging \u00b7 Photography<\/span><\/div>\r\n              <\/article>\r\n                                          <article class=\"ng-reveal\">\r\n                <div class=\"ng-card\"><div class=\"ng-img ng-zoom\" onclick=\"window.ng2OpenLightbox&&window.ng2OpenLightbox(this)\" data-full=\"https:\/\/noghli.fr\/wp-content\/uploads\/2025\/01\/Compo-PHYTO_savon.jpg\" data-label=\"PHYTOMER\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/noghli.fr\/wp-content\/uploads\/2025\/01\/Compo-PHYTO_savon.jpg\" alt=\"PHYTOMER\"><\/div><\/div>\r\n                <div class=\"ng-caption\"><strong>PHYTOMER<\/strong><span>Design \u00b7 Packaging \u00b7 Photography<\/span><\/div>\r\n              <\/article>\r\n                                          <article class=\"ng-reveal\">\r\n                <div class=\"ng-card\"><div class=\"ng-img ng-zoom\" onclick=\"window.ng2OpenLightbox&&window.ng2OpenLightbox(this)\" data-full=\"https:\/\/noghli.fr\/wp-content\/uploads\/2025\/04\/4096-2731-max.jpg\" data-label=\"AZZARO\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/noghli.fr\/wp-content\/uploads\/2025\/04\/4096-2731-max.jpg\" alt=\"AZZARO\"><\/div><\/div>\r\n                <div class=\"ng-caption\"><strong>AZZARO<\/strong><span>Design \u00b7 Packaging \u00b7 Photography<\/span><\/div>\r\n              <\/article>\r\n                                          <article class=\"ng-reveal\">\r\n                <div class=\"ng-card\"><div class=\"ng-img ng-zoom\" onclick=\"window.ng2OpenLightbox&&window.ng2OpenLightbox(this)\" data-full=\"https:\/\/noghli.fr\/wp-content\/uploads\/2025\/02\/ZERO-.png\" data-label=\"LIGNE ZERO%\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/noghli.fr\/wp-content\/uploads\/2025\/02\/ZERO-.png\" alt=\"LIGNE ZERO%\"><\/div><\/div>\r\n                <div class=\"ng-caption\"><strong>LIGNE ZERO%<\/strong><span>Design \u00b7 Packaging \u00b7 Photography<\/span><\/div>\r\n              <\/article>\r\n                                          <article class=\"ng-reveal\">\r\n                <div class=\"ng-card\"><div class=\"ng-img ng-zoom\" onclick=\"window.ng2OpenLightbox&&window.ng2OpenLightbox(this)\" data-full=\"https:\/\/noghli.fr\/wp-content\/uploads\/2024\/03\/MARQUE-ECOPUMP-AMB-1-.jpg\" data-label=\"ISULA\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/noghli.fr\/wp-content\/uploads\/2024\/03\/MARQUE-ECOPUMP-AMB-1-.jpg\" alt=\"ISULA\"><\/div><\/div>\r\n                <div class=\"ng-caption\"><strong>ISULA<\/strong><span>Design \u00b7 Packaging \u00b7 Photography<\/span><\/div>\r\n              <\/article>\r\n                                          <article class=\"ng-reveal\">\r\n                <div class=\"ng-card\"><div class=\"ng-img ng-zoom\" onclick=\"window.ng2OpenLightbox&&window.ng2OpenLightbox(this)\" data-full=\"https:\/\/noghli.fr\/wp-content\/uploads\/2024\/03\/edit-ecofill-photo-alen.jpg\" data-label=\"ISULA\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/noghli.fr\/wp-content\/uploads\/2024\/03\/edit-ecofill-photo-alen.jpg\" alt=\"ISULA\"><\/div><\/div>\r\n                <div class=\"ng-caption\"><strong>ISULA<\/strong><span>Design \u00b7 Packaging \u00b7 Photography<\/span><\/div>\r\n              <\/article>\r\n                                          <article class=\"ng-reveal\">\r\n                <div class=\"ng-card\"><div class=\"ng-img ng-zoom\" onclick=\"window.ng2OpenLightbox&&window.ng2OpenLightbox(this)\" data-full=\"https:\/\/noghli.fr\/wp-content\/uploads\/2025\/04\/Algo-TUBES-ambi-cataloque-copie.jpg\" data-label=\"ALGOTHERM\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/noghli.fr\/wp-content\/uploads\/2025\/04\/Algo-TUBES-ambi-cataloque-copie.jpg\" alt=\"ALGOTHERM\"><\/div><\/div>\r\n                <div class=\"ng-caption\"><strong>ALGOTHERM<\/strong><span>Design \u00b7 Packaging \u00b7 Photography<\/span><\/div>\r\n              <\/article>\r\n                                          <article class=\"ng-reveal\">\r\n                <div class=\"ng-card\"><div class=\"ng-img ng-zoom\" onclick=\"window.ng2OpenLightbox&&window.ng2OpenLightbox(this)\" data-full=\"https:\/\/noghli.fr\/wp-content\/uploads\/2024\/09\/algo-tube-ambi-over2-scaled-1.jpg\" data-label=\"ALGOTHERM\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/noghli.fr\/wp-content\/uploads\/2024\/09\/algo-tube-ambi-over2-scaled-1.jpg\" alt=\"ALGOTHERM\"><\/div><\/div>\r\n                <div class=\"ng-caption\"><strong>ALGOTHERM<\/strong><span>Design \u00b7 Packaging \u00b7 Photography<\/span><\/div>\r\n              <\/article>\r\n                                          <article class=\"ng-reveal\">\r\n                <div class=\"ng-card\"><div class=\"ng-img ng-zoom\" onclick=\"window.ng2OpenLightbox&&window.ng2OpenLightbox(this)\" data-full=\"https:\/\/noghli.fr\/wp-content\/uploads\/2024\/03\/ECOFILL-ALU-300-VRAI.jpg\" data-label=\"ALGOTHERM\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/noghli.fr\/wp-content\/uploads\/2024\/03\/ECOFILL-ALU-300-VRAI.jpg\" alt=\"ALGOTHERM\"><\/div><\/div>\r\n                <div class=\"ng-caption\"><strong>ALGOTHERM<\/strong><span>Design \u00b7 Packaging \u00b7 Photography<\/span><\/div>\r\n              <\/article>\r\n                                          <article class=\"ng-reveal\">\r\n                <div class=\"ng-card\"><div class=\"ng-img ng-zoom\" onclick=\"window.ng2OpenLightbox&&window.ng2OpenLightbox(this)\" data-full=\"https:\/\/noghli.fr\/wp-content\/uploads\/2024\/03\/HUYGENS.png\" data-label=\"FRAGONARD\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/noghli.fr\/wp-content\/uploads\/2024\/03\/HUYGENS.png\" alt=\"FRAGONARD\"><\/div><\/div>\r\n                <div class=\"ng-caption\"><strong>FRAGONARD<\/strong><span>Design \u00b7 Packaging \u00b7 Photography<\/span><\/div>\r\n              <\/article>\r\n                                          <article class=\"ng-reveal\">\r\n                <div class=\"ng-card\"><div class=\"ng-img ng-zoom\" onclick=\"window.ng2OpenLightbox&&window.ng2OpenLightbox(this)\" data-full=\"https:\/\/noghli.fr\/wp-content\/uploads\/2024\/03\/TRUSSARDI-V2-1-1.jpg\" data-label=\"FRAGONARD\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/noghli.fr\/wp-content\/uploads\/2024\/03\/TRUSSARDI-V2-1-1.jpg\" alt=\"FRAGONARD\"><\/div><\/div>\r\n                <div class=\"ng-caption\"><strong>FRAGONARD<\/strong><span>Design \u00b7 Packaging \u00b7 Photography<\/span><\/div>\r\n              <\/article>\r\n                                          <article class=\"ng-reveal\">\r\n                <div class=\"ng-card\"><div class=\"ng-img ng-zoom\" onclick=\"window.ng2OpenLightbox&&window.ng2OpenLightbox(this)\" data-full=\"https:\/\/noghli.fr\/wp-content\/uploads\/2025\/02\/Vinesime-ambi-NewLine-1.jpg\" data-label=\"HUYGENS\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/noghli.fr\/wp-content\/uploads\/2025\/02\/Vinesime-ambi-NewLine-1.jpg\" alt=\"HUYGENS\"><\/div><\/div>\r\n                <div class=\"ng-caption\"><strong>HUYGENS<\/strong><span>Design \u00b7 Packaging \u00b7 Photography<\/span><\/div>\r\n              <\/article>\r\n                          <\/div>\r\n            <div class=\"ng-horizontal-note\">Scroll horizontally to explore \u2192<\/div>\r\n          <\/div>\r\n        <\/section>\r\n\r\n                <section class=\"ng-section dark ng-scene is-dark\" id=\"posters\">\r\n          <div class=\"ng-shell\">\r\n            <div class=\"ng-head ng-reveal\">\r\n              <div class=\"ng-num\">02 \u00b7 Portfolio<\/div>\r\n              <h2 class=\"ng-scroll-drift\">POSTERS<\/h2>\r\n              <div class=\"ng-sub\">Design, Illustration &amp; Photography<\/div>\r\n            <\/div>\r\n            <div class=\"ng-posters\">\r\n                            <article class=\"ng-poster ng-reveal\">\r\n                <div class=\"ng-card\"><div class=\"ng-img ng-zoom\" onclick=\"window.ng2OpenLightbox&&window.ng2OpenLightbox(this)\" data-full=\"https:\/\/noghli.fr\/wp-content\/uploads\/2022\/05\/orgin-cafe-info.jpg\" data-label=\"CAFE KHAYYAM\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/noghli.fr\/wp-content\/uploads\/2022\/05\/orgin-cafe-info.jpg\" alt=\"CAFE KHAYYAM\"><\/div><\/div>\r\n                <div class=\"ng-caption\"><strong>CAFE KHAYYAM<\/strong><span>Design \u00b7 Illustration \u00b7 Photography<\/span><\/div>\r\n              <\/article>\r\n                            <article class=\"ng-poster ng-reveal\">\r\n                <div class=\"ng-card\"><div class=\"ng-img ng-zoom\" onclick=\"window.ng2OpenLightbox&&window.ng2OpenLightbox(this)\" data-full=\"https:\/\/noghli.fr\/wp-content\/uploads\/2025\/01\/cafeposter-clqsic.png\" data-label=\"CAFE KHAYYAM\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/noghli.fr\/wp-content\/uploads\/2025\/01\/cafeposter-clqsic.png\" alt=\"CAFE KHAYYAM\"><\/div><\/div>\r\n                <div class=\"ng-caption\"><strong>CAFE KHAYYAM<\/strong><span>Design \u00b7 Illustration \u00b7 Photography<\/span><\/div>\r\n              <\/article>\r\n                            <article class=\"ng-poster ng-reveal\">\r\n                <div class=\"ng-card\"><div class=\"ng-img ng-zoom\" onclick=\"window.ng2OpenLightbox&&window.ng2OpenLightbox(this)\" data-full=\"https:\/\/noghli.fr\/wp-content\/uploads\/2025\/01\/cafekhayyam-porte-magique-parmi-les-livres.jpg\" data-label=\"CAFE KHAYYAM\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/noghli.fr\/wp-content\/uploads\/2025\/01\/cafekhayyam-porte-magique-parmi-les-livres.jpg\" alt=\"CAFE KHAYYAM\"><\/div><\/div>\r\n                <div class=\"ng-caption\"><strong>CAFE KHAYYAM<\/strong><span>Design \u00b7 Illustration \u00b7 Photography<\/span><\/div>\r\n              <\/article>\r\n                            <article class=\"ng-poster ng-reveal\">\r\n                <div class=\"ng-card\"><div class=\"ng-img ng-zoom\" onclick=\"window.ng2OpenLightbox&&window.ng2OpenLightbox(this)\" data-full=\"https:\/\/noghli.fr\/wp-content\/uploads\/2025\/01\/Les-pas-de-leau-3.jpg\" data-label=\"CAFE KHAYYAM\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/noghli.fr\/wp-content\/uploads\/2025\/01\/Les-pas-de-leau-3.jpg\" alt=\"CAFE KHAYYAM\"><\/div><\/div>\r\n                <div class=\"ng-caption\"><strong>CAFE KHAYYAM<\/strong><span>Design \u00b7 Illustration \u00b7 Photography<\/span><\/div>\r\n              <\/article>\r\n                            <article class=\"ng-poster ng-reveal\">\r\n                <div class=\"ng-card\"><div class=\"ng-img ng-zoom\" onclick=\"window.ng2OpenLightbox&&window.ng2OpenLightbox(this)\" data-full=\"https:\/\/noghli.fr\/wp-content\/uploads\/2025\/01\/CAFEKHAYYAM-cafe-2-.jpg\" data-label=\"CAFE KHAYYAM\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/noghli.fr\/wp-content\/uploads\/2025\/01\/CAFEKHAYYAM-cafe-2-.jpg\" alt=\"CAFE KHAYYAM\"><\/div><\/div>\r\n                <div class=\"ng-caption\"><strong>CAFE KHAYYAM<\/strong><span>Design \u00b7 Illustration \u00b7 Photography<\/span><\/div>\r\n              <\/article>\r\n                            <article class=\"ng-poster ng-reveal\">\r\n                <div class=\"ng-card\"><div class=\"ng-img ng-zoom\" onclick=\"window.ng2OpenLightbox&&window.ng2OpenLightbox(this)\" data-full=\"https:\/\/noghli.fr\/wp-content\/uploads\/2025\/01\/cafe-2-CAFEKHAYYAM.jpg\" data-label=\"CAFE KHAYYAM\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/noghli.fr\/wp-content\/uploads\/2025\/01\/cafe-2-CAFEKHAYYAM.jpg\" alt=\"CAFE KHAYYAM\"><\/div><\/div>\r\n                <div class=\"ng-caption\"><strong>CAFE KHAYYAM<\/strong><span>Design \u00b7 Illustration \u00b7 Photography<\/span><\/div>\r\n              <\/article>\r\n                            <article class=\"ng-poster ng-reveal\">\r\n                <div class=\"ng-card\"><div class=\"ng-img ng-zoom\" onclick=\"window.ng2OpenLightbox&&window.ng2OpenLightbox(this)\" data-full=\"https:\/\/noghli.fr\/wp-content\/uploads\/2025\/01\/bita-2.jpg\" data-label=\"CAFE KHAYYAM\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/noghli.fr\/wp-content\/uploads\/2025\/01\/bita-2.jpg\" alt=\"CAFE KHAYYAM\"><\/div><\/div>\r\n                <div class=\"ng-caption\"><strong>CAFE KHAYYAM<\/strong><span>Design \u00b7 Illustration \u00b7 Photography<\/span><\/div>\r\n              <\/article>\r\n                            <article class=\"ng-poster ng-reveal\">\r\n                <div class=\"ng-card\"><div class=\"ng-img ng-zoom\" onclick=\"window.ng2OpenLightbox&&window.ng2OpenLightbox(this)\" data-full=\"https:\/\/noghli.fr\/wp-content\/uploads\/2025\/01\/chehre-new.jpg\" data-label=\"CAFE KHAYYAM\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/noghli.fr\/wp-content\/uploads\/2025\/01\/chehre-new.jpg\" alt=\"CAFE KHAYYAM\"><\/div><\/div>\r\n                <div class=\"ng-caption\"><strong>CAFE KHAYYAM<\/strong><span>Design \u00b7 Illustration \u00b7 Photography<\/span><\/div>\r\n              <\/article>\r\n                          <\/div>\r\n          <\/div>\r\n        <\/section>\r\n\r\n                <section class=\"ng-section ng-scene is-light\" id=\"motion\">\r\n          <div class=\"ng-shell\">\r\n            <div class=\"ng-head ng-reveal\">\r\n              <div class=\"ng-num\">03 \u00b7 Portfolio<\/div>\r\n              <h2 class=\"ng-scroll-drift\">MOTION DESIGN<\/h2>\r\n              <div class=\"ng-sub\">Realisation<\/div>\r\n            <\/div>\r\n            <div class=\"ng-motion-list\">\r\n                                <article class=\"ng-reveal\">\r\n                    <div class=\"ng-motion-stage\">\r\n                                              <iframe loading=\"lazy\" src=\"https:\/\/www.youtube.com\/embed\/kTgZhTa0f58\" allow=\"autoplay; fullscreen; picture-in-picture\" allowfullscreen><\/iframe>\r\n                                          <\/div>\r\n                                          <div class=\"ng-caption\"><strong>Motion Design<\/strong><span>Realisation<\/span><\/div>\r\n                                      <\/article>\r\n                            <\/div>\r\n          <\/div>\r\n        <\/section>\r\n\r\n                <section class=\"ng-section dark ng-scene is-dark\" id=\"web\">\r\n          <div class=\"ng-shell\">\r\n            <div class=\"ng-head ng-reveal\">\r\n              <div class=\"ng-num\">04 \u00b7 Portfolio<\/div>\r\n              <h2 class=\"ng-scroll-drift\">WEB DESIGN<\/h2>\r\n              <div class=\"ng-sub\">Design, UX\/UI &amp; Development<\/div>\r\n            <\/div>\r\n            <div class=\"ng-web\">\r\n                            <article class=\"ng-reveal\">\r\n                <div class=\"ng-card\"><div class=\"ng-img ng-zoom\" onclick=\"window.ng2OpenLightbox&&window.ng2OpenLightbox(this)\" data-full=\"https:\/\/noghli.fr\/wp-content\/uploads\/2026\/08\/AO-SITE-scaled.png\" data-label=\"ATELIER OMBRES\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/noghli.fr\/wp-content\/uploads\/2026\/08\/AO-SITE-scaled.png\" alt=\"ATELIER OMBRES\"><\/div><\/div>\r\n                <div class=\"ng-caption\"><strong>ATELIER OMBRES<\/strong><span>Design \u00b7 UX\/UI \u00b7 Development<\/span><\/div>\r\n              <\/article>\r\n                            <article class=\"ng-reveal\">\r\n                <div class=\"ng-card\"><div class=\"ng-img ng-zoom\" onclick=\"window.ng2OpenLightbox&&window.ng2OpenLightbox(this)\" data-full=\"https:\/\/noghli.fr\/wp-content\/uploads\/2026\/09\/SARA-STUDIO-scaled.png\" data-label=\"Atelier Sara\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/noghli.fr\/wp-content\/uploads\/2026\/09\/SARA-STUDIO-scaled.png\" alt=\"Atelier Sara\"><\/div><\/div>\r\n                <div class=\"ng-caption\"><strong>Atelier Sara<\/strong><span>Design \u00b7 UX\/UI \u00b7 Development<\/span><\/div>\r\n              <\/article>\r\n                            <article class=\"ng-reveal\">\r\n                <div class=\"ng-card\"><div class=\"ng-img ng-zoom\" onclick=\"window.ng2OpenLightbox&&window.ng2OpenLightbox(this)\" data-full=\"https:\/\/noghli.fr\/wp-content\/uploads\/2026\/08\/cafekhayyam-website.png\" data-label=\"CAFE KHAYYAM\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/noghli.fr\/wp-content\/uploads\/2026\/08\/cafekhayyam-website.png\" alt=\"CAFE KHAYYAM\"><\/div><\/div>\r\n                <div class=\"ng-caption\"><strong>CAFE KHAYYAM<\/strong><span>Design \u00b7 UX\/UI \u00b7 Development<\/span><\/div>\r\n              <\/article>\r\n                            <article class=\"ng-reveal\">\r\n                <div class=\"ng-card\"><div class=\"ng-img ng-zoom\" onclick=\"window.ng2OpenLightbox&&window.ng2OpenLightbox(this)\" data-full=\"https:\/\/noghli.fr\/wp-content\/uploads\/2026\/03\/FRANCE-LIPOEDEME.png\" data-label=\"francelipoedeme.net\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/noghli.fr\/wp-content\/uploads\/2026\/03\/FRANCE-LIPOEDEME.png\" alt=\"francelipoedeme.net\"><\/div><\/div>\r\n                <div class=\"ng-caption\"><strong>francelipoedeme.net<\/strong><span>Design \u00b7 UX\/UI \u00b7 Development<\/span><\/div>\r\n              <\/article>\r\n                            <article class=\"ng-reveal\">\r\n                <div class=\"ng-card\"><div class=\"ng-img ng-zoom\" onclick=\"window.ng2OpenLightbox&&window.ng2OpenLightbox(this)\" data-full=\"https:\/\/noghli.fr\/wp-content\/uploads\/2026\/03\/Site-Dr-NZ.png\" data-label=\"docteur-zwillinger.fr\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/noghli.fr\/wp-content\/uploads\/2026\/03\/Site-Dr-NZ.png\" alt=\"docteur-zwillinger.fr\"><\/div><\/div>\r\n                <div class=\"ng-caption\"><strong>docteur-zwillinger.fr<\/strong><span>Design \u00b7 UX\/UI \u00b7 Development<\/span><\/div>\r\n              <\/article>\r\n                            <article class=\"ng-reveal\">\r\n                <div class=\"ng-card\"><div class=\"ng-img ng-zoom\" onclick=\"window.ng2OpenLightbox&&window.ng2OpenLightbox(this)\" data-full=\"https:\/\/noghli.fr\/wp-content\/uploads\/2026\/03\/CL-Site.png\" data-label=\"lacliniquedulipoedeme.fr\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/noghli.fr\/wp-content\/uploads\/2026\/03\/CL-Site.png\" alt=\"lacliniquedulipoedeme.fr\"><\/div><\/div>\r\n                <div class=\"ng-caption\"><strong>lacliniquedulipoedeme.fr<\/strong><span>Design \u00b7 UX\/UI \u00b7 Development<\/span><\/div>\r\n              <\/article>\r\n                            <article class=\"ng-reveal\">\r\n                <div class=\"ng-card\"><div class=\"ng-img ng-zoom\" onclick=\"window.ng2OpenLightbox&&window.ng2OpenLightbox(this)\" data-full=\"https:\/\/noghli.fr\/wp-content\/uploads\/2025\/01\/site-groupegm-1.jpg\" data-label=\"GROUPE GM\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/noghli.fr\/wp-content\/uploads\/2025\/01\/site-groupegm-1.jpg\" alt=\"GROUPE GM\"><\/div><\/div>\r\n                <div class=\"ng-caption\"><strong>GROUPE GM<\/strong><span>Design \u00b7 UX\/UI \u00b7 Development<\/span><\/div>\r\n              <\/article>\r\n                            <article class=\"ng-reveal\">\r\n                <div class=\"ng-card\"><div class=\"ng-img ng-zoom\" onclick=\"window.ng2OpenLightbox&&window.ng2OpenLightbox(this)\" data-full=\"https:\/\/noghli.fr\/wp-content\/uploads\/2025\/02\/sitegm-2.jpg\" data-label=\"GROUPE GM\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/noghli.fr\/wp-content\/uploads\/2025\/02\/sitegm-2.jpg\" alt=\"GROUPE GM\"><\/div><\/div>\r\n                <div class=\"ng-caption\"><strong>GROUPE GM<\/strong><span>Design \u00b7 UX\/UI \u00b7 Development<\/span><\/div>\r\n              <\/article>\r\n                            <article class=\"ng-reveal\">\r\n                <div class=\"ng-card\"><div class=\"ng-img ng-zoom\" onclick=\"window.ng2OpenLightbox&&window.ng2OpenLightbox(this)\" data-full=\"https:\/\/noghli.fr\/wp-content\/uploads\/2025\/01\/portfolio.9.jpeg\" data-label=\"OLD WEB SITES\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/noghli.fr\/wp-content\/uploads\/2025\/01\/portfolio.9.jpeg\" alt=\"OLD WEB SITES\"><\/div><\/div>\r\n                <div class=\"ng-caption\"><strong>OLD WEB SITES<\/strong><span>Design \u00b7 UX\/UI \u00b7 Development<\/span><\/div>\r\n              <\/article>\r\n                            <article class=\"ng-reveal\">\r\n                <div class=\"ng-card\"><div class=\"ng-img ng-zoom\" onclick=\"window.ng2OpenLightbox&&window.ng2OpenLightbox(this)\" data-full=\"https:\/\/noghli.fr\/wp-content\/uploads\/2025\/01\/portfolio.10.jpeg\" data-label=\"OLD WEB SITES\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/noghli.fr\/wp-content\/uploads\/2025\/01\/portfolio.10.jpeg\" alt=\"OLD WEB SITES\"><\/div><\/div>\r\n                <div class=\"ng-caption\"><strong>OLD WEB SITES<\/strong><span>Design \u00b7 UX\/UI \u00b7 Development<\/span><\/div>\r\n              <\/article>\r\n                          <\/div>\r\n            <div class=\"ng-horizontal-note\">Scroll horizontally to explore \u2192<\/div>\r\n          <\/div>\r\n        <\/section>\r\n\r\n                <section class=\"ng-section ng-scene is-light\" id=\"artistiques\">\r\n          <div class=\"ng-shell\">\r\n            <div class=\"ng-head ng-reveal\">\r\n              <div class=\"ng-num\">05 \u00b7 Portfolio<\/div>\r\n              <h2 class=\"ng-scroll-drift\">PROJETS ARTISTIQUES<\/h2>\r\n              <div class=\"ng-sub\">Personal artistic work<\/div>\r\n            <\/div>\r\n            <div class=\"ng-art\">\r\n                            <article class=\"ng-art-card ng-reveal\">\r\n                <div class=\"ng-card\"><div class=\"ng-img ng-zoom\" onclick=\"window.ng2OpenLightbox&&window.ng2OpenLightbox(this)\" data-full=\"https:\/\/noghli.fr\/wp-content\/uploads\/2024\/09\/Capture-decran-2024-09-10-a-10.31.48-768x779.png\" data-label=\"Projet artistique\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/noghli.fr\/wp-content\/uploads\/2024\/09\/Capture-decran-2024-09-10-a-10.31.48-768x779.png\" alt=\"\"><\/div><\/div>\r\n              <\/article>\r\n                            <article class=\"ng-art-card ng-reveal\">\r\n                <div class=\"ng-card\"><div class=\"ng-img ng-zoom\" onclick=\"window.ng2OpenLightbox&&window.ng2OpenLightbox(this)\" data-full=\"https:\/\/noghli.fr\/wp-content\/uploads\/2024\/09\/Capture-decran-2024-09-10-a-10.32.24-768x971.png\" data-label=\"Projet artistique\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/noghli.fr\/wp-content\/uploads\/2024\/09\/Capture-decran-2024-09-10-a-10.32.24-768x971.png\" alt=\"\"><\/div><\/div>\r\n              <\/article>\r\n                            <article class=\"ng-art-card ng-reveal\">\r\n                <div class=\"ng-card\"><div class=\"ng-img ng-zoom\" onclick=\"window.ng2OpenLightbox&&window.ng2OpenLightbox(this)\" data-full=\"https:\/\/noghli.fr\/wp-content\/uploads\/2022\/05\/Screenshot-2022-05-28-at-16.12.35-768x765.png\" data-label=\"Projet artistique\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/noghli.fr\/wp-content\/uploads\/2022\/05\/Screenshot-2022-05-28-at-16.12.35-768x765.png\" alt=\"\"><\/div><\/div>\r\n              <\/article>\r\n                            <article class=\"ng-art-card ng-reveal\">\r\n                <div class=\"ng-card\"><div class=\"ng-img ng-zoom\" onclick=\"window.ng2OpenLightbox&&window.ng2OpenLightbox(this)\" data-full=\"https:\/\/noghli.fr\/wp-content\/uploads\/2022\/05\/Screenshot-2022-05-28-at-16.17.16-768x765.png\" data-label=\"Projet artistique\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/noghli.fr\/wp-content\/uploads\/2022\/05\/Screenshot-2022-05-28-at-16.17.16-768x765.png\" alt=\"\"><\/div><\/div>\r\n              <\/article>\r\n                            <article class=\"ng-art-card ng-reveal\">\r\n                <div class=\"ng-card\"><div class=\"ng-img ng-zoom\" onclick=\"window.ng2OpenLightbox&&window.ng2OpenLightbox(this)\" data-full=\"https:\/\/noghli.fr\/wp-content\/uploads\/2022\/05\/Screenshot-2022-05-28-at-16.16.11-768x735.png\" data-label=\"Projet artistique\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/noghli.fr\/wp-content\/uploads\/2022\/05\/Screenshot-2022-05-28-at-16.16.11-768x735.png\" alt=\"\"><\/div><\/div>\r\n              <\/article>\r\n                          <\/div>\r\n          <\/div>\r\n        <\/section>\r\n\r\n                <section class=\"ng-awards ng-scene is-dark\" id=\"awards\">\r\n          <div class=\"ng-shell\">\r\n            <div class=\"ng-awards-grid\">\r\n              <div class=\"ng-reveal\">\r\n                <div class=\"ng-num\">Recognition<\/div>\r\n                <h2 class=\"ng-scroll-drift\">Prix &amp;<br>distinctions.<\/h2>\r\n                <div class=\"ng-award-list\">\r\n                                      <div class=\"ng-award\">\r\n                      <strong>2012<\/strong>\r\n                      <span class=\"ng-award-type\">AWARD<\/span>\r\n                      <span class=\"ng-award-title\">International competition WEB awards<\/span>\r\n                    <\/div>\r\n                                      <div class=\"ng-award\">\r\n                      <strong>2010<\/strong>\r\n                      <span class=\"ng-award-type\">AWARD<\/span>\r\n                      <span class=\"ng-award-title\">Diamond Web Awards<\/span>\r\n                    <\/div>\r\n                                      <div class=\"ng-award\">\r\n                      <strong>2009<\/strong>\r\n                      <span class=\"ng-award-type\">AWARD<\/span>\r\n                      <span class=\"ng-award-title\">Hamshahry Iran Daily \u00b7 Best web design award<\/span>\r\n                    <\/div>\r\n                                      <div class=\"ng-award\">\r\n                      <strong>2008<\/strong>\r\n                      <span class=\"ng-award-type\">AWARD<\/span>\r\n                      <span class=\"ng-award-title\">International competition \u00b7 Awards judge<\/span>\r\n                    <\/div>\r\n                                      <div class=\"ng-award\">\r\n                      <strong>2003<\/strong>\r\n                      <span class=\"ng-award-type\">AWARD<\/span>\r\n                      <span class=\"ng-award-title\">Webmaster Awards<\/span>\r\n                    <\/div>\r\n                                      <div class=\"ng-award\">\r\n                      <strong>1996<\/strong>\r\n                      <span class=\"ng-award-type\">AWARD<\/span>\r\n                      <span class=\"ng-award-title\">Tehran International Exhibition \u00b7 Best design award for MAHRAM Co.<\/span>\r\n                    <\/div>\r\n                                      <div class=\"ng-award\">\r\n                      <strong><\/strong>\r\n                      <span class=\"ng-award-type\">AWARD<\/span>\r\n                      <span class=\"ng-award-title\">BBC Persian \u2014 Featured projects<\/span>\r\n                    <\/div>\r\n                                      <div class=\"ng-award\">\r\n                      <strong><\/strong>\r\n                      <span class=\"ng-award-type\">AWARD<\/span>\r\n                      <span class=\"ng-award-title\">Radio Nova \u2014 Guest programme<\/span>\r\n                    <\/div>\r\n                                  <\/div>\r\n              <\/div>\r\n              <div class=\"ng-award-media\">\r\n                                  <div class=\"ng-card ng-reveal\"><div class=\"ng-img ng-zoom\" onclick=\"window.ng2OpenLightbox&&window.ng2OpenLightbox(this)\" data-full=\"https:\/\/noghli.fr\/wp-content\/uploads\/2022\/05\/55a22a_17907bf1564146d3a144671652e35912.png\" data-label=\"Diamond Web Awards\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/noghli.fr\/wp-content\/uploads\/2022\/05\/55a22a_17907bf1564146d3a144671652e35912.png\" alt=\"Diamond Web Awards\"><\/div><\/div>\r\n                                  <div class=\"ng-card ng-reveal\"><div class=\"ng-img ng-zoom\" onclick=\"window.ng2OpenLightbox&&window.ng2OpenLightbox(this)\" data-full=\"https:\/\/noghli.fr\/wp-content\/uploads\/2022\/05\/55a22a_bb290905e5a848b2815b5787f8920d04.png\" data-label=\"Webmaster Awards\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/noghli.fr\/wp-content\/uploads\/2022\/05\/55a22a_bb290905e5a848b2815b5787f8920d04.png\" alt=\"Webmaster Awards\"><\/div><\/div>\r\n                                  <div class=\"ng-card ng-reveal\"><div class=\"ng-img ng-zoom\" onclick=\"window.ng2OpenLightbox&&window.ng2OpenLightbox(this)\" data-full=\"https:\/\/noghli.fr\/wp-content\/uploads\/2022\/05\/Screenshot-2022-05-26-at-12.35.58.png\" data-label=\"BBC Persian \u2014 Featured projects\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/noghli.fr\/wp-content\/uploads\/2022\/05\/Screenshot-2022-05-26-at-12.35.58.png\" alt=\"BBC Persian \u2014 Featured projects\"><\/div><\/div>\r\n                                  <div class=\"ng-card ng-reveal\"><div class=\"ng-img ng-zoom\" onclick=\"window.ng2OpenLightbox&&window.ng2OpenLightbox(this)\" data-full=\"https:\/\/noghli.fr\/wp-content\/uploads\/2022\/05\/Screenshot-2022-05-26-at-12.14.41.png\" data-label=\"Radio Nova \u2014 Guest programme\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/noghli.fr\/wp-content\/uploads\/2022\/05\/Screenshot-2022-05-26-at-12.14.41.png\" alt=\"Radio Nova \u2014 Guest programme\"><\/div><\/div>\r\n                              <\/div>\r\n            <\/div>\r\n          <\/div>\r\n        <\/section>\r\n\r\n        <section class=\"ng-testimonials ng-scene is-light\" id=\"testimonials\">\r\n          <div class=\"ng-shell\">\r\n            <div class=\"ng-testimonials-head ng-reveal\">\r\n              <div class=\"ng-num\">CLIENTS \/ COLLABORATIONS<\/div>\r\n              <h2 class=\"ng-scroll-drift\">Quelques mots<br>sur mon travail.<\/h2>\r\n            <\/div>\r\n            <div class=\"ng-quote-grid\">\r\n                            <article class=\"ng-quote ng-reveal\">\r\n                <div class=\"ng-quote-copy\"><p>\u00ab Allen est une personne aux nombreuses qualit\u00e9s : humaines tout d\u2019abord et avant tout. Ouvert, souriant, optimiste, c\u2019est tr\u00e8s agr\u00e9able de pouvoir \u00e9changer avec lui. Professionnelles bien s\u00fbr car il ma\u00eetrise la suite Adobe, largement, et est capable de produire des visuels et des habillages rapidement et efficacement. Artistiques enfin, car il est un v\u00e9ritable artiste avec des qualit\u00e9s techniques et une cr\u00e9ativit\u00e9 qui cr\u00e9ent \u00e9motions et ravissement. Rencontrez Allen ! Il vous surprendra et pourrait vous donner envie d\u2019aller plus loin dans la cr\u00e9ation de vos prochains briefs ! \u00bb<\/p><\/div>\r\n                <button class=\"ng-quote-toggle\" type=\"button\" aria-expanded=\"false\">\r\n                  <span class=\"ng-more\">Lire la suite \/ Read more<\/span>\r\n                  <span class=\"ng-less\">R\u00e9duire \/ Show less<\/span>\r\n                <\/button>\r\n                <div class=\"ng-person\">\r\n                  <img decoding=\"async\" src=\"https:\/\/noghli.fr\/wp-content\/uploads\/2022\/05\/1518797889972.jpeg\" alt=\"David Dargaud\">                  <div><strong>David Dargaud<\/strong><span>Directeur Communication et Brand Content<\/span><\/div>\r\n                <\/div>\r\n              <\/article>\r\n                            <article class=\"ng-quote ng-reveal\">\r\n                <div class=\"ng-quote-copy\"><p>\u00ab Monsieur Alen Noghli a travaill\u00e9 sous ma responsabilit\u00e9 en tant que D\u00e9veloppeur web du 23\/08\/2021 au 01\/10\/2021. Alen s\u2019est r\u00e9v\u00e9l\u00e9 tr\u00e8s rapidement \u00eatre tr\u00e8s dou\u00e9 tout en faisant preuve de qualit\u00e9s ind\u00e9niables : un travail impeccable, des valeurs tr\u00e8s fortes, proactivit\u00e9, discipline, rigueur, ponctualit\u00e9, un v\u00e9ritable savoir-\u00eatre, dynamisme, efficacit\u00e9, autonomie, fiabilit\u00e9, professionnalisme, sociabilit\u00e9 - avec au final un travail impeccable et largement sup\u00e9rieur \u00e0 la moyenne en termes de quantit\u00e9 et qualit\u00e9 de travail. La capacit\u00e9 d\u2019Alen \u00e0 mener \u00e0 leur terme dans les d\u00e9lais tous les travaux qui lui \u00e9taient assign\u00e9s m\u2019a fait forte impression. Alen a tous les atouts pour devenir un d\u00e9veloppeur web de tr\u00e8s haut niveau. Il a de plus tr\u00e8s rapidement su rejoindre avec brio une \u00e9quipe de talents du digital. Il a fait la d\u00e9monstration de qualit\u00e9s humaines \u00e9videntes, d\u2019un tr\u00e8s grand savoir-\u00eatre et d\u2019un esprit d\u2019\u00e9quipe remarquable. Aussi je recommande sans aucune h\u00e9sitation Alen pour qu\u2019il rejoigne vos \u00e9quipes. Fait \u00e0 La Celle-Saint-Cloud, le 10 octobre 2021 \u00bb<\/p><\/div>\r\n                <button class=\"ng-quote-toggle\" type=\"button\" aria-expanded=\"false\">\r\n                  <span class=\"ng-more\">Lire la suite \/ Read more<\/span>\r\n                  <span class=\"ng-less\">R\u00e9duire \/ Show less<\/span>\r\n                <\/button>\r\n                <div class=\"ng-person\">\r\n                  <img decoding=\"async\" src=\"https:\/\/noghli.fr\/wp-content\/uploads\/2022\/05\/jerom.jpeg\" alt=\"J\u00e9r\u00f4me Perrin\">                  <div><strong>J\u00e9r\u00f4me Perrin<\/strong><span>Dirigeant de J4JAY Studio Web<\/span><\/div>\r\n                <\/div>\r\n              <\/article>\r\n                          <\/div>\r\n          <\/div>\r\n        <\/section>\r\n\r\n        <div class=\"ng-contact-modal\" id=\"ng-contact-modal\" aria-hidden=\"true\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"ng-contact-modal-title\">\r\n          <div class=\"ng-contact-dialog\" role=\"document\">\r\n            <button class=\"ng-contact-close\" type=\"button\" aria-label=\"Close\"><\/button>\r\n            <div class=\"ng-contact-top\">\r\n              <div class=\"ng-contact-copy\">\r\n                <div class=\"ng-kicker\" data-i18n=\"contact_kicker\">CONTACT \u00b7 PARIS<\/div>\r\n                <h2 id=\"ng-contact-modal-title\" data-i18n=\"contact_title\">Let\u2019s talk.<\/h2>\r\n                <p data-i18n=\"contact_intro\">Tell me a little about you, your project and what you have in mind. I\u2019ll get back to you as soon as possible.<\/p>\r\n              <\/div>\r\n              <form class=\"ng-form\" id=\"ng2-contact-modal\">\r\n                <div class=\"ng-form-grid\">\r\n                  <input required name=\"name\" data-i18n-placeholder=\"contact_name\" placeholder=\"Your name\">\r\n                  <input required type=\"email\" name=\"email\" data-i18n-placeholder=\"contact_email\" placeholder=\"Email\">\r\n                  <input name=\"phone\" data-i18n-placeholder=\"contact_phone\" placeholder=\"Phone\">\r\n                  <input name=\"company\" data-i18n-placeholder=\"contact_company\" placeholder=\"Brand \/ Company\">\r\n                  <input class=\"full\" name=\"subject\" data-i18n-placeholder=\"contact_subject\" placeholder=\"Subject \/ Project type\">\r\n                  <textarea class=\"full\" required name=\"message\" data-i18n-placeholder=\"contact_message\" placeholder=\"Tell me about the project\"><\/textarea>\r\n                <\/div>\r\n                <input type=\"text\" name=\"website\" tabindex=\"-1\" autocomplete=\"off\" style=\"position:absolute;left:-99999px\">\r\n                <input type=\"hidden\" name=\"lang\" value=\"en\">\r\n                <input type=\"hidden\" name=\"action\" value=\"noghli_v2_contact\">\r\n                <input type=\"hidden\" name=\"nonce\" value=\"bb8f690346\">\r\n                <button class=\"ng-send\" type=\"submit\" data-i18n=\"contact_send\">Send message \u2197<\/button>\r\n                <div class=\"ng-status\" aria-live=\"polite\"><\/div>\r\n              <\/form>\r\n            <\/div>\r\n            <div class=\"ng-contact-success\" aria-live=\"polite\"><div><strong data-i18n=\"contact_thanks_title\">Thank you.<\/strong><span data-i18n=\"contact_thanks_text\">Your message has been sent. I\u2019ll get back to you very soon.<\/span><\/div><\/div>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <section class=\"ng-contact ng-scene is-dark\" id=\"contact\">\r\n          <div class=\"ng-shell ng-contact-grid\">\r\n            <div class=\"ng-reveal\"><div class=\"ng-kicker\">CONTACT \u00b7 PARIS<\/div><h2>Let\u2019s make<br>something<br>memorable.<\/h2><\/div>\r\n            <form class=\"ng-form ng-reveal\" id=\"ng2-contact\">\r\n              <input required name=\"name\" data-i18n-placeholder=\"contact_name\" placeholder=\"Your name\">\r\n              <input required type=\"email\" name=\"email\" data-i18n-placeholder=\"contact_email\" placeholder=\"Email\">\r\n              <input name=\"company\" data-i18n-placeholder=\"contact_company\" placeholder=\"Brand \/ Company\">\r\n              <textarea required name=\"message\" data-i18n-placeholder=\"contact_message\" placeholder=\"Tell me about the project\"><\/textarea>\r\n              <input type=\"text\" name=\"website\" tabindex=\"-1\" autocomplete=\"off\" style=\"position:absolute;left:-99999px\">\r\n              <input type=\"hidden\" name=\"lang\" value=\"en\">\r\n              <input type=\"hidden\" name=\"action\" value=\"noghli_v2_contact\">\r\n              <input type=\"hidden\" name=\"nonce\" value=\"bb8f690346\">\r\n              <button class=\"ng-send\" data-i18n=\"contact_send\">Send message \u2197<\/button>\r\n              <div class=\"ng-status\"><\/div>\r\n            <\/form>\r\n          <\/div>\r\n        <\/section>\r\n\r\n        <footer class=\"ng-footer\"><div class=\"ng-shell ng-foot\"><span>\u00a9 2026 ALEN NOGHLI<\/span><span>Paris \u00b7 Creative Direction \u00b7 Digital<\/span><\/div><\/footer>\r\n\r\n        <div class=\"ng-lightbox\" id=\"ng-lightbox\" aria-hidden=\"true\">\r\n          <button type=\"button\" class=\"ng-lb-close\" aria-label=\"Close\"><\/button>\r\n          <div class=\"ng-lb-inner\">\r\n            <img decoding=\"async\" src=\"\" alt=\"\">\r\n            <div class=\"ng-lb-bottom\">\r\n              <div class=\"ng-lb-caption\"><\/div>\r\n              <a class=\"ng-lb-demo\" href=\"#\" target=\"_blank\" rel=\"noopener\" hidden>View demo \u2197<\/a>\r\n            <\/div>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <script>\r\n        (()=> {\r\n          const root=document.getElementById('ng2'); if(!root)return;\r\n          const io=new IntersectionObserver(es=>es.forEach(e=>{if(e.isIntersecting){e.target.classList.add('in');io.unobserve(e.target)}}),{threshold:.08});\r\n          root.querySelectorAll('.ng-reveal').forEach(el=>io.observe(el));\r\n\r\n          \/\/ V3.8.19 bilingual engine \u2014 browser language + instant switch, no reload.\r\n          const i18n={\r\n            en:{\r\n              hero_kicker:\"PARIS \\u00b7 CREATIVE DIRECTOR \\u00b7 ART DIRECTION \\u00b7 DIGITAL\",\r\n              hero_title:\"Image, identity & digital experiences.\",\r\n              hero_text:\"A selected body of work across luxury, cosmetics, visual culture, web design and digital products.\",\r\n              about_title:\"Creative direction at the intersection of image, identity and digital experience.\",\r\n              about_text:\"For more than two decades, I have built visual identities, campaigns and digital experiences at the crossroads of art direction, design and technology.\\r\\n\\r\\nMy work moves between luxury and cosmetics, editorial and cultural projects, photography, packaging, web design and digital products. I have led creative direction and digital communication for brands and organisations in Paris, while remaining deeply connected to artistic practice through photography, painting and sculpture.\\r\\n\\r\\nToday, I approach every project as a complete visual system: an idea, an image, a brand language and an experience designed to remain coherent across print, screen and space.\",\r\n              nav_cosmetics:'COSMETICS',nav_posters:'POSTERS',nav_motion:'MOTION',nav_web:'WEB',\r\n              nav_art:'ARTISTIC',nav_products:'PRODUCTS',nav_about:'ABOUT',nav_contact:'CONTACT',menu_label:'Menu',\r\n              contact_kicker:'CONTACT \u00b7 PARIS',contact_title:'Let\u2019s talk.',contact_intro:'Tell me a little about you, your project and what you have in mind. I\u2019ll get back to you as soon as possible.',\r\n              contact_name:'Your name',contact_email:'Email',contact_phone:'Phone',contact_company:'Brand \/ Company',contact_subject:'Subject \/ Project type',contact_message:'Tell me about the project',contact_send:'Send message \u2197',contact_sending:'Sending\u2026',contact_thanks_title:'Thank you.',contact_thanks_text:'Your message has been sent. I\u2019ll get back to you very soon.',contact_error:'Something went wrong. Please try again.',\r\n              scroll_cta:'ABOUT & PORTFOLIO \u2193',\r\n              seo_title:\"Alen Noghli \\u2014 Creative Director, Art Direction & Digital Design in Paris\",\r\n              seo_description:\"Creative director and multidisciplinary designer in Paris. Art direction, visual identity, cosmetics, editorial design, web design, photography and digital products.\"            },\r\n            fr:{\r\n              hero_kicker:\"PARIS \\u00b7 DIRECTEUR ARTISTIQUE \\u00b7 DIRECTION ARTISTIQUE \\u00b7 DIGITAL\",\r\n              hero_title:\"Image, identit\\u00e9 & exp\\u00e9riences digitales.\",\r\n              hero_text:\"Une s\\u00e9lection de projets entre luxe, cosm\\u00e9tique, culture visuelle, web design et produits digitaux.\",\r\n              about_title:\"Direction artistique \\u00e0 l\\u2019intersection de l\\u2019image, de l\\u2019identit\\u00e9 et de l\\u2019exp\\u00e9rience digitale.\",\r\n              about_text:\"Depuis plus de vingt ans, je con\\u00e7ois des identit\\u00e9s visuelles, des campagnes et des exp\\u00e9riences digitales \\u00e0 la crois\\u00e9e de la direction artistique, du design et de la technologie.\\\\n\\\\nMon travail traverse le luxe et la cosm\\u00e9tique, l\\u2019\\u00e9ditorial et les projets culturels, la photographie, le packaging, le web design et les produits digitaux. J\\u2019ai dirig\\u00e9 la cr\\u00e9ation et la communication digitale de marques et d\\u2019organisations \\u00e0 Paris, tout en restant profond\\u00e9ment li\\u00e9 \\u00e0 la pratique artistique \\u00e0 travers la photographie, la peinture et la sculpture.\\\\n\\\\nAujourd\\u2019hui, j\\u2019aborde chaque projet comme un syst\\u00e8me visuel complet : une id\\u00e9e, une image, un langage de marque et une exp\\u00e9rience pens\\u00e9e pour rester coh\\u00e9rente sur papier, \\u00e0 l\\u2019\\u00e9cran et dans l\\u2019espace.\",\r\n              nav_cosmetics:'COSM\u00c9TIQUES',nav_posters:'AFFICHES',nav_motion:'MOTION',nav_web:'WEB',\r\n              nav_art:'ARTISTIQUE',nav_products:'PRODUITS',nav_about:'\u00c0 PROPOS',nav_contact:'CONTACT',menu_label:'Menu',\r\n              contact_kicker:'CONTACT \u00b7 PARIS',contact_title:'Parlons de votre projet.',contact_intro:'Parlez-moi de vous, de votre projet et de ce que vous imaginez. Je vous r\u00e9pondrai dans les plus brefs d\u00e9lais.',\r\n              contact_name:'Votre nom',contact_email:'E-mail',contact_phone:'T\u00e9l\u00e9phone',contact_company:'Marque \/ Soci\u00e9t\u00e9',contact_subject:'Sujet \/ Type de projet',contact_message:'Parlez-moi de votre projet',contact_send:'Envoyer le message \u2197',contact_sending:'Envoi\u2026',contact_thanks_title:'Merci.',contact_thanks_text:'Votre message a bien \u00e9t\u00e9 envoy\u00e9. Je vous recontacte tr\u00e8s bient\u00f4t.',contact_error:'Une erreur est survenue. Merci de r\u00e9essayer.',\r\n              scroll_cta:'\u00c0 PROPOS & PORTFOLIO \u2193',\r\n              seo_title:\"Alen Noghli \\u2014 Directeur artistique, direction artistique & design digital \\u00e0 Paris\",\r\n              seo_description:\"Directeur artistique et designer multidisciplinaire \\u00e0 Paris. Direction artistique, identit\\u00e9 visuelle, cosm\\u00e9tique, design \\u00e9ditorial, web design, photographie et produits digitaux.\"            }\r\n          };\r\n          const htmlify=v=>String(v??'').replace(\/\\n\/g,'<br>');\r\n          const applyLang=lang=>{\r\n            lang=(lang==='fr')?'fr':'en';\r\n            root.dataset.lang=lang;\r\n            document.documentElement.lang=lang;\r\n            try{localStorage.setItem('ng_lang',lang)}catch(e){}\r\n            root.querySelectorAll('[data-i18n]').forEach(el=>{\r\n              const k=el.dataset.i18n;\r\n              if(i18n[lang][k]!=null) el.innerHTML=htmlify(i18n[lang][k]);\r\n            });\r\n            root.querySelectorAll('[data-i18n-placeholder]').forEach(el=>{\r\n              const k=el.dataset.i18nPlaceholder;\r\n              if(i18n[lang][k]!=null) el.setAttribute('placeholder',i18n[lang][k]);\r\n            });\r\n            root.querySelectorAll('input[name=\"lang\"]').forEach(el=>el.value=lang);\r\n            root.querySelectorAll('.ng-lang button').forEach(b=>b.classList.toggle('is-active',b.dataset.lang===lang));\r\n            if(typeof translateVisibleText==='function') translateVisibleText(lang);\r\n            if(typeof buildAboutLineFX==='function') requestAnimationFrame(buildAboutLineFX);\r\n            document.title=i18n[lang].seo_title||document.title;\r\n            const setMeta=(sel,val)=>{const el=document.querySelector(sel);if(el&&val)el.setAttribute('content',val)};\r\n            setMeta('#ng-meta-description',i18n[lang].seo_description);\r\n            setMeta('#ng-og-title',i18n[lang].seo_title);\r\n            setMeta('#ng-og-description',i18n[lang].seo_description);\r\n            setMeta('#ng-og-locale',lang==='fr'?'fr_FR':'en_US');\r\n            setMeta('#ng-tw-title',i18n[lang].seo_title);\r\n            setMeta('#ng-tw-description',i18n[lang].seo_description);\r\n          };\r\n\r\n          \/\/ V3.6.5 \u2014 About title: exactly four editorial lines, fading in one by one.\r\n          const aboutTitle=root.querySelector('.ng-about-scroll-title');\r\n          let aboutLineWrap=null;\r\n          let aboutLines=[];\r\n\r\n          const aboutTitleLines={\r\n            fr:[\r\n              \"Direction artistique \u00e0\",\r\n              \"l\u2019intersection de\",\r\n              \"l\u2019image, de l\u2019identit\u00e9 et\",\r\n              \"de l\u2019exp\u00e9rience digitale.\"\r\n            ],\r\n            en:[\r\n              \"Creative direction at\",\r\n              \"the intersection of\",\r\n              \"image, identity and\",\r\n              \"digital experience.\"\r\n            ]\r\n          };\r\n\r\n          const buildAboutLineFX=()=>{\r\n            if(!aboutTitle) return;\r\n            const lang=(root.dataset.lang==='fr')?'fr':'en';\r\n\r\n            if(aboutLineWrap) aboutLineWrap.remove();\r\n            aboutLineWrap=document.createElement('span');\r\n            aboutLineWrap.className='ng-about-linefx';\r\n            aboutLineWrap.setAttribute('aria-hidden','true');\r\n\r\n            aboutLines=aboutTitleLines[lang].map((line)=>{\r\n              const sp=document.createElement('span');\r\n              sp.className='ng-about-line';\r\n              sp.textContent=line;\r\n              aboutLineWrap.appendChild(sp);\r\n              return sp;\r\n            });\r\n\r\n            aboutTitle.appendChild(aboutLineWrap);\r\n            paintAboutLines();\r\n          };\r\n\r\n          let aboutLinesTick=false;\r\n          const paintAboutLines=()=>{\r\n            aboutLinesTick=false;\r\n            if(!aboutTitle || !aboutLines.length) return;\r\n\r\n            const r=aboutTitle.getBoundingClientRect();\r\n            const vh=window.innerHeight||document.documentElement.clientHeight;\r\n\r\n            \/\/ Natural sequence while the four-line title moves through the viewport.\r\n            const p=Math.max(0,Math.min(1,(vh*.90-r.top)\/(vh*.62)));\r\n\r\n            aboutLines.forEach((line,i)=>{\r\n              const start=i*.18;\r\n              const local=Math.max(0,Math.min(1,(p-start)\/.22));\r\n              const eased=1-Math.pow(1-local,3);\r\n              line.style.setProperty('--ng-line-opacity',eased.toFixed(3));\r\n              line.style.setProperty('--ng-line-y',(28*(1-eased)).toFixed(1)+'px');\r\n            });\r\n          };\r\n\r\n          const queueAboutLines=()=>{\r\n            if(!aboutLinesTick){\r\n              aboutLinesTick=true;\r\n              requestAnimationFrame(paintAboutLines);\r\n            }\r\n          };\r\n\r\n          if(aboutTitle && !window.matchMedia('(prefers-reduced-motion: reduce)').matches){\r\n            buildAboutLineFX();\r\n            window.addEventListener('scroll',queueAboutLines,{passive:true});\r\n            window.addEventListener('resize',queueAboutLines,{passive:true});\r\n          }\r\n\r\n          const visualI18n={\"COSMETIQUES\":{\"en\":\"COSMETICS\",\"fr\":\"COSM\u00c9TIQUES\"},\"Design, Packaging & Photography\":{\"en\":\"Design, Packaging & Photography\",\"fr\":\"Design, Packaging & Photographie\"},\"01 \u00b7 Portfolio\":{\"en\":\"01 \u00b7 Portfolio\",\"fr\":\"01 \u00b7 Portfolio\"},\"Direction artistique\":{\"en\":\"Art direction\",\"fr\":\"Direction artistique\"},\"Design \u00b7 Packaging \u00b7 Photography\":{\"en\":\"Design \u00b7 Packaging \u00b7 Photography\",\"fr\":\"Design \u00b7 Packaging \u00b7 Photographie\"},\"CASANERA\":{\"en\":\"CASANERA\",\"fr\":\"CASANERA\"},\"PHYTOMER\":{\"en\":\"PHYTOMER\",\"fr\":\"PHYTOMER\"},\"AZZARO\":{\"en\":\"AZZARO\",\"fr\":\"AZZARO\"},\"LIGNE ZERO%\":{\"en\":\"LIGNE ZERO%\",\"fr\":\"LIGNE ZERO%\"},\"ISULA\":{\"en\":\"ISULA\",\"fr\":\"ISULA\"},\"ALGOTHERM\":{\"en\":\"ALGOTHERM\",\"fr\":\"ALGOTHERM\"},\"FRAGONARD\":{\"en\":\"FRAGONARD\",\"fr\":\"FRAGONARD\"},\"HUYGENS\":{\"en\":\"HUYGENS\",\"fr\":\"HUYGENS\"},\"POSTERS\":{\"en\":\"POSTERS\",\"fr\":\"AFFICHES\"},\"Design, Illustration & Photography\":{\"en\":\"Design, Illustration & Photography\",\"fr\":\"Design, Illustration & Photographie\"},\"02 \u00b7 Portfolio\":{\"en\":\"02 \u00b7 Portfolio\",\"fr\":\"02 \u00b7 Portfolio\"},\"CAFE KHAYYAM\":{\"en\":\"CAFE KHAYYAM\",\"fr\":\"CAFE KHAYYAM\"},\"Design \u00b7 Illustration \u00b7 Photography\":{\"en\":\"Design \u00b7 Illustration \u00b7 Photography\",\"fr\":\"Design \u00b7 Illustration \u00b7 Photographie\"},\"MOTION DESIGN\":{\"en\":\"MOTION DESIGN\",\"fr\":\"MOTION DESIGN\"},\"Realisation\":{\"en\":\"Production\",\"fr\":\"R\u00e9alisation\"},\"03 \u00b7 Portfolio\":{\"en\":\"03 \u00b7 Portfolio\",\"fr\":\"03 \u00b7 Portfolio\"},\"Motion Design\":{\"en\":\"Motion Design\",\"fr\":\"Motion Design\"},\"WEB DESIGN\":{\"en\":\"WEB DESIGN\",\"fr\":\"WEB DESIGN\"},\"Design, UX\/UI & Development\":{\"en\":\"Design, UX\/UI & Development\",\"fr\":\"Design, UX\/UI & D\u00e9veloppement\"},\"04 \u00b7 Portfolio\":{\"en\":\"04 \u00b7 Portfolio\",\"fr\":\"04 \u00b7 Portfolio\"},\"ATELIER OMBRES\":{\"en\":\"ATELIER OMBRES\",\"fr\":\"ATELIER OMBRES\"},\"Design \u00b7 UX\/UI \u00b7 Development\":{\"en\":\"Design \u00b7 UX\/UI \u00b7 Development\",\"fr\":\"Design \u00b7 UX\/UI \u00b7 D\u00e9veloppement\"},\"Atelier Sara\":{\"en\":\"Atelier Sara\",\"fr\":\"Atelier Sara\"},\"francelipoedeme.net\":{\"en\":\"francelipoedeme.net\",\"fr\":\"francelipoedeme.net\"},\"docteur-zwillinger.fr\":{\"en\":\"docteur-zwillinger.fr\",\"fr\":\"docteur-zwillinger.fr\"},\"lacliniquedulipoedeme.fr\":{\"en\":\"lacliniquedulipoedeme.fr\",\"fr\":\"lacliniquedulipoedeme.fr\"},\"GROUPE GM\":{\"en\":\"GROUPE GM\",\"fr\":\"GROUPE GM\"},\"OLD WEB SITES\":{\"en\":\"OLD WEB SITES\",\"fr\":\"OLD WEB SITES\"},\"PROJETS ARTISTIQUES\":{\"en\":\"ARTISTIC PROJECTS\",\"fr\":\"PROJETS ARTISTIQUES\"},\"Personal artistic work\":{\"en\":\"Personal artistic work\",\"fr\":\"Travail artistique personnel\"},\"05 \u00b7 Portfolio\":{\"en\":\"05 \u00b7 Portfolio\",\"fr\":\"05 \u00b7 Portfolio\"},\"Capture d\u2019e\u0301cran 2024-09-10 a\u0300 10.31.48\":{\"en\":\"Capture d\u2019e\u0301cran 2024-09-10 a\u0300 10.31.48\",\"fr\":\"Capture d\u2019e\u0301cran 2024-09-10 a\u0300 10.31.48\"},\"Personal work\":{\"en\":\"Personal work\",\"fr\":\"Travail personnel\"},\"Capture d\u2019e\u0301cran 2024-09-10 a\u0300 10.32.24\":{\"en\":\"Capture d\u2019e\u0301cran 2024-09-10 a\u0300 10.32.24\",\"fr\":\"Capture d\u2019e\u0301cran 2024-09-10 a\u0300 10.32.24\"},\"Screenshot 2022-05-28 at 16.12.35\":{\"en\":\"Screenshot 2022-05-28 at 16.12.35\",\"fr\":\"Screenshot 2022-05-28 at 16.12.35\"},\"Screenshot 2022-05-28 at 16.17.16\":{\"en\":\"Screenshot 2022-05-28 at 16.17.16\",\"fr\":\"Screenshot 2022-05-28 at 16.17.16\"},\"Screenshot 2022-05-28 at 16.16.11\":{\"en\":\"Screenshot 2022-05-28 at 16.16.11\",\"fr\":\"Screenshot 2022-05-28 at 16.16.11\"},\"Restaurant Management Ecosystem\":{\"en\":\"Restaurant Management Ecosystem\",\"fr\":\"\u00c9cosyst\u00e8me de gestion pour la restauration\"},\"Website, ordering, reservations, team operations, admin OS and mobile application.\":{\"en\":\"Website, ordering, reservations, team operations, admin OS and mobile application.\",\"fr\":\"Site web, commandes, r\u00e9servations, gestion des \u00e9quipes, syst\u00e8me d\u2019administration et application mobile.\"},\"Healthcare Operations Platform\":{\"en\":\"Healthcare Operations Platform\",\"fr\":\"Plateforme de gestion des op\u00e9rations de sant\u00e9\"},\"Patient journey, clinical workflows, documents, questionnaires, operations and administration.\":{\"en\":\"Patient journey, clinical workflows, documents, questionnaires, operations and administration.\",\"fr\":\"Parcours patient, flux cliniques, documents, questionnaires, op\u00e9rations et administration.\"},\"Mobile Product\":{\"en\":\"Mobile Product\",\"fr\":\"Produit mobile\"},\"Profiles, matching, persistent matches, media, messaging and mobile-first product experience.\":{\"en\":\"Profiles, matching, persistent matches, media, messaging and mobile-first product experience.\",\"fr\":\"Profils, mise en relation, correspondances persistantes, m\u00e9dias, messagerie et exp\u00e9rience pens\u00e9e d\u2019abord pour mobile.\"},\"AWARD\":{\"en\":\"AWARD\",\"fr\":\"PRIX\"},\"International competition WEB awards\":{\"en\":\"International competition WEB awards\",\"fr\":\"International competition WEB awards\"},\"Diamond Web Awards\":{\"en\":\"Diamond Web Awards\",\"fr\":\"Diamond Web Awards\"},\"Hamshahry Iran Daily \u00b7 Best web design award\":{\"en\":\"Hamshahry Iran Daily \u00b7 Best web design award\",\"fr\":\"Hamshahry Iran Daily \u00b7 Best web design award\"},\"International competition \u00b7 Awards judge\":{\"en\":\"International competition \u00b7 Awards judge\",\"fr\":\"International competition \u00b7 Awards judge\"},\"Webmaster Awards\":{\"en\":\"Webmaster Awards\",\"fr\":\"Webmaster Awards\"},\"Tehran International Exhibition \u00b7 Best design award for MAHRAM Co.\":{\"en\":\"Tehran International Exhibition \u00b7 Best design award for MAHRAM Co.\",\"fr\":\"Tehran International Exhibition \u00b7 Best design award for MAHRAM Co.\"},\"BBC Persian \u2014 Featured projects\":{\"en\":\"BBC Persian \u2014 Featured projects\",\"fr\":\"BBC Persian \u2014 Featured projects\"},\"Four programmes produced around selected artistic and cultural projects.\":{\"en\":\"Four programmes produced around selected artistic and cultural projects.\",\"fr\":\"Four programmes produced around selected artistic and cultural projects.\"},\"Radio Nova \u2014 Guest programme\":{\"en\":\"Radio Nova \u2014 Guest programme\",\"fr\":\"Radio Nova \u2014 Guest programme\"},\"Radio programme featuring artistic and cultural projects.\":{\"en\":\"Radio programme featuring artistic and cultural projects.\",\"fr\":\"Radio programme featuring artistic and cultural projects.\"},\"Directeur Communication et Brand Content\":{\"en\":\"Communication and Brand Content Director\",\"fr\":\"Directeur Communication et Brand Content\"},\"Allen est une personne aux nombreuses qualit\u00e9s : humaines tout d\u2019abord et avant tout. Ouvert, souriant, optimiste, c\u2019est tr\u00e8s agr\u00e9able de pouvoir \u00e9changer avec lui. Professionnelles bien s\u00fbr car il ma\u00eetrise la suite Adobe, largement, et est capable de produire des visuels et des habillages rapidement et efficacement. Artistiques enfin, car il est un v\u00e9ritable artiste avec des qualit\u00e9s techniques et une cr\u00e9ativit\u00e9 qui cr\u00e9ent \u00e9motions et ravissement. Rencontrez Allen ! Il vous surprendra et pourrait vous donner envie d\u2019aller plus loin dans la cr\u00e9ation de vos prochains briefs !\":{\"en\":\"Allen has many qualities, first and foremost on a human level. Open, cheerful and optimistic, he is a pleasure to work and exchange ideas with. Professionally, he has an extensive command of the Adobe suite and is able to produce visuals and graphic assets quickly and efficiently. Artistically, he is a true artist whose technical skill and creativity create emotion and delight. Meet Allen! He will surprise you and may well inspire you to take your next creative briefs even further!\",\"fr\":\"Allen est une personne aux nombreuses qualit\u00e9s : humaines tout d\u2019abord et avant tout. Ouvert, souriant, optimiste, c\u2019est tr\u00e8s agr\u00e9able de pouvoir \u00e9changer avec lui. Professionnelles bien s\u00fbr car il ma\u00eetrise la suite Adobe, largement, et est capable de produire des visuels et des habillages rapidement et efficacement. Artistiques enfin, car il est un v\u00e9ritable artiste avec des qualit\u00e9s techniques et une cr\u00e9ativit\u00e9 qui cr\u00e9ent \u00e9motions et ravissement. Rencontrez Allen ! Il vous surprendra et pourrait vous donner envie d\u2019aller plus loin dans la cr\u00e9ation de vos prochains briefs !\"},\"Dirigeant de J4JAY Studio Web\":{\"en\":\"Director of J4JAY Web Studio\",\"fr\":\"Dirigeant de J4JAY Studio Web\"},\"Monsieur Alen Noghli a travaill\u00e9 sous ma responsabilit\u00e9 en tant que D\u00e9veloppeur web du 23\/08\/2021 au 01\/10\/2021. Alen s\u2019est r\u00e9v\u00e9l\u00e9 tr\u00e8s rapidement \u00eatre tr\u00e8s dou\u00e9 tout en faisant preuve de qualit\u00e9s ind\u00e9niables : un travail impeccable, des valeurs tr\u00e8s fortes, proactivit\u00e9, discipline, rigueur, ponctualit\u00e9, un v\u00e9ritable savoir-\u00eatre, dynamisme, efficacit\u00e9, autonomie, fiabilit\u00e9, professionnalisme, sociabilit\u00e9 - avec au final un travail impeccable et largement sup\u00e9rieur \u00e0 la moyenne en termes de quantit\u00e9 et qualit\u00e9 de travail. La capacit\u00e9 d\u2019Alen \u00e0 mener \u00e0 leur terme dans les d\u00e9lais tous les travaux qui lui \u00e9taient assign\u00e9s m\u2019a fait forte impression. Alen a tous les atouts pour devenir un d\u00e9veloppeur web de tr\u00e8s haut niveau. Il a de plus tr\u00e8s rapidement su rejoindre avec brio une \u00e9quipe de talents du digital. Il a fait la d\u00e9monstration de qualit\u00e9s humaines \u00e9videntes, d\u2019un tr\u00e8s grand savoir-\u00eatre et d\u2019un esprit d\u2019\u00e9quipe remarquable. Aussi je recommande sans aucune h\u00e9sitation Alen pour qu\u2019il rejoigne vos \u00e9quipes. Fait \u00e0 La Celle-Saint-Cloud, le 10 octobre 2021\":{\"en\":\"Mr Alen Noghli worked under my supervision as a Web Developer from 23 August 2021 to 1 October 2021. Alen very quickly proved to be highly talented while demonstrating undeniable qualities: impeccable work, strong values, proactivity, discipline, rigour, punctuality, excellent interpersonal skills, dynamism, efficiency, autonomy, reliability, professionalism and sociability \u2014 ultimately delivering work well above average in both quantity and quality. I was particularly impressed by Alen\u2019s ability to complete every task assigned to him within the required deadlines. Alen has all the qualities needed to become a top-level web developer. He also very quickly and successfully became part of a talented digital team. He demonstrated clear human qualities, excellent interpersonal skills and a remarkable team spirit. I therefore recommend Alen without hesitation to join your teams. La Celle-Saint-Cloud, 10 October 2021\",\"fr\":\"Monsieur Alen Noghli a travaill\u00e9 sous ma responsabilit\u00e9 en tant que D\u00e9veloppeur web du 23\/08\/2021 au 01\/10\/2021. Alen s\u2019est r\u00e9v\u00e9l\u00e9 tr\u00e8s rapidement \u00eatre tr\u00e8s dou\u00e9 tout en faisant preuve de qualit\u00e9s ind\u00e9niables : un travail impeccable, des valeurs tr\u00e8s fortes, proactivit\u00e9, discipline, rigueur, ponctualit\u00e9, un v\u00e9ritable savoir-\u00eatre, dynamisme, efficacit\u00e9, autonomie, fiabilit\u00e9, professionnalisme, sociabilit\u00e9 - avec au final un travail impeccable et largement sup\u00e9rieur \u00e0 la moyenne en termes de quantit\u00e9 et qualit\u00e9 de travail. La capacit\u00e9 d\u2019Alen \u00e0 mener \u00e0 leur terme dans les d\u00e9lais tous les travaux qui lui \u00e9taient assign\u00e9s m\u2019a fait forte impression. Alen a tous les atouts pour devenir un d\u00e9veloppeur web de tr\u00e8s haut niveau. Il a de plus tr\u00e8s rapidement su rejoindre avec brio une \u00e9quipe de talents du digital. Il a fait la d\u00e9monstration de qualit\u00e9s humaines \u00e9videntes, d\u2019un tr\u00e8s grand savoir-\u00eatre et d\u2019un esprit d\u2019\u00e9quipe remarquable. Aussi je recommande sans aucune h\u00e9sitation Alen pour qu\u2019il rejoigne vos \u00e9quipes. Fait \u00e0 La Celle-Saint-Cloud, le 10 octobre 2021\"},\"Selected work.One visual language.\":{\"en\":\"Selected work.One visual language.\",\"fr\":\"Selected work.One visual language.\"},\"Art direction, photography, graphic design and digital experiences \u2014 a curated selection of work across image, identity and technology.\":{\"en\":\"Art direction, photography, graphic design and digital experiences \u2014 a curated selection of work across image, identity and technology.\",\"fr\":\"Art direction, photography, graphic design and digital experiences \u2014 a curated selection of work across image, identity and technology.\"},\"Digitalproducts.\":{\"en\":\"Digitalproducts.\",\"fr\":\"Digitalproducts.\"},\"Newer product projects across hospitality, healthcare and mobile experiences.\":{\"en\":\"Newer product projects across hospitality, healthcare and mobile experiences.\",\"fr\":\"Projets produits r\u00e9cents dans la restauration, la sant\u00e9 et les exp\u00e9riences mobiles.\"},\"Recognition\":{\"en\":\"Recognition\",\"fr\":\"Distinctions\"},\"Prix &amp;distinctions.\":{\"en\":\"Prix &amp;distinctions.\",\"fr\":\"Prix &amp;distinctions.\"},\"CLIENTS \/ COLLABORATIONS\":{\"en\":\"CLIENTS \/ COLLABORATIONS\",\"fr\":\"CLIENTS \/ COLLABORATIONS\"},\"Quelques motssur mon travail.\":{\"en\":\"Quelques motssur mon travail.\",\"fr\":\"Quelques motssur mon travail.\"},\"CONTACT \u00b7 PARIS\":{\"en\":\"CONTACT \u00b7 PARIS\",\"fr\":\"CONTACTER \u00b7 PARIS\"},\"Let\u2019s makesomethingmemorable.\":{\"en\":\"Let\u2019s makesomethingmemorable.\",\"fr\":\"Let\u2019s makesomethingmemorable.\"},\"Scroll horizontally to explore \u2192\":{\"en\":\"Scroll horizontally to explore \u2192\",\"fr\":\"Faites d\u00e9filer horizontalement pour explorer \u2192\"},\"Demo coming soon\":{\"en\":\"Demo coming soon\",\"fr\":\"D\u00e9mo bient\u00f4t disponible\"},\"View demo \u2192\":{\"en\":\"View demo \u2192\",\"fr\":\"Voir la d\u00e9mo \u2192\"},\"View demo \u2197\":{\"en\":\"View demo \u2197\",\"fr\":\"Voir la d\u00e9mo \u2197\"},\"Lire la suite \/ Read more\":{\"en\":\"Read more\",\"fr\":\"Lire la suite\"},\"R\u00e9duire \/ Show less\":{\"en\":\"Show less\",\"fr\":\"R\u00e9duire\"},\"JURY\":{\"en\":\"JURY\",\"fr\":\"JURY\"},\"MEDIA\":{\"en\":\"MEDIA\",\"fr\":\"M\u00c9DIA\"},\"Digital\":{\"en\":\"Digital\",\"fr\":\"Produits\"},\"products.\":{\"en\":\"products.\",\"fr\":\"digitaux.\"},\"Prix &\":{\"en\":\"Awards &\",\"fr\":\"Prix &\"},\"distinctions.\":{\"en\":\"recognition.\",\"fr\":\"distinctions.\"},\"Quelques mots\":{\"en\":\"A few words\",\"fr\":\"Quelques mots\"},\"sur mon travail.\":{\"en\":\"about my work.\",\"fr\":\"sur mon travail.\"},\"Let\u2019s make\":{\"en\":\"Let\u2019s make\",\"fr\":\"Cr\u00e9ons\"},\"something\":{\"en\":\"something\",\"fr\":\"quelque chose\"},\"memorable.\":{\"en\":\"memorable.\",\"fr\":\"de m\u00e9morable.\"},\"Paris \u00b7 Creative Direction \u00b7 Digital\":{\"en\":\"Paris \u00b7 Creative Direction \u00b7 Digital\",\"fr\":\"Paris \u00b7 Direction artistique \u00b7 Digital\"}};\r\n\r\n          const normalizeText=v=>String(v??'').replace(\/\\s+\/g,' ').trim();\r\n          const originalTextNodes=new WeakMap();\r\n          const translatedValue=(source,lang)=>{\r\n            const hit=visualI18n[normalizeText(source)];\r\n            return hit&&hit[lang]!=null?String(hit[lang]):null;\r\n          };\r\n          function translateVisibleText(lang){\r\n            const walker=document.createTreeWalker(root,NodeFilter.SHOW_TEXT,{acceptNode(node){\r\n              const p=node.parentElement;\r\n              if(!p||!normalizeText(node.nodeValue)) return NodeFilter.FILTER_REJECT;\r\n              if(p.closest('script,style,noscript,textarea,select,option')) return NodeFilter.FILTER_REJECT;\r\n              \/\/ Explicit proper names stay unchanged.\r\n              if(p.closest('.ng-brand,.ng-about-ao-link,.ng-person strong')) return NodeFilter.FILTER_REJECT;\r\n              return NodeFilter.FILTER_ACCEPT;\r\n            }});\r\n            const nodes=[]; let n; while((n=walker.nextNode())) nodes.push(n);\r\n            nodes.forEach(node=>{\r\n              if(!originalTextNodes.has(node)) originalTextNodes.set(node,node.nodeValue);\r\n              const original=originalTextNodes.get(node);\r\n              const trimmed=normalizeText(original);\r\n              let replacement=null;\r\n              const qm=trimmed.match(\/^\u00ab\\s*(.*?)\\s*\u00bb$\/s);\r\n              if(qm){\r\n                const inner=translatedValue(qm[1],lang);\r\n                if(inner!=null) replacement='\u00ab '+inner+' \u00bb';\r\n              } else replacement=translatedValue(trimmed,lang);\r\n              if(replacement==null){ if(lang==='en') node.nodeValue=original; return; }\r\n              const lead=(original.match(\/^\\s*\/)||[''])[0];\r\n              const tail=(original.match(\/\\s*$\/)||[''])[0];\r\n              node.nodeValue=lead+replacement+tail;\r\n            });\r\n          }\r\n\r\n          root.querySelectorAll('.ng-lang button').forEach(b=>b.addEventListener('click',()=>applyLang(b.dataset.lang)));\r\n          let savedLang=null; try{savedLang=localStorage.getItem('ng_lang')}catch(e){}\r\n          const browserLang=(navigator.language||'en').toLowerCase().startsWith('fr')?'fr':'en';\r\n          applyLang(savedLang||browserLang);\r\n\r\n\r\n          \/\/ V3.6.3 \u2014 stronger cinematic portrait scroll, isolated to the About image.\r\n          const aboutMedia=root.querySelector('.ng-about-media');\r\n          const aboutImg=aboutMedia?aboutMedia.querySelector('img'):null;\r\n          if(aboutMedia&&aboutImg&&!window.matchMedia('(prefers-reduced-motion: reduce)').matches){\r\n            aboutMedia.classList.add('ng-about-cinema');\r\n            let aboutTick=false;\r\n            const paintAboutPortrait=()=>{\r\n              aboutTick=false;\r\n              const r=aboutMedia.getBoundingClientRect();\r\n              const vh=window.innerHeight||document.documentElement.clientHeight;\r\n              const p=Math.max(0,Math.min(1,(vh-r.top)\/(vh+r.height)));\r\n\r\n              \/\/ Clearly visible choreography:\r\n              \/\/ close-up -> settle back into the frame\r\n              const scale=1.30-(p*.28);\r\n              const y=42-(p*86);\r\n              const x=-18+(p*34);\r\n              const wrapY=28-(p*48);\r\n              const tilt=-2.2+(p*4.0);\r\n              const radius=54-(p*34);\r\n              const shadow=.12+(p*.20);\r\n\r\n              aboutMedia.style.setProperty('--ng-about-scale',scale.toFixed(4));\r\n              aboutMedia.style.setProperty('--ng-about-y',y.toFixed(1)+'px');\r\n              aboutMedia.style.setProperty('--ng-about-x',x.toFixed(1)+'px');\r\n              aboutMedia.style.setProperty('--ng-about-wrap-y',wrapY.toFixed(1)+'px');\r\n              aboutMedia.style.setProperty('--ng-about-tilt',tilt.toFixed(2)+'deg');\r\n              aboutMedia.style.setProperty('--ng-about-radius',radius.toFixed(1)+'px');\r\n              aboutMedia.style.setProperty('--ng-about-shadow',shadow.toFixed(3));\r\n            };\r\n            const queueAboutPortrait=()=>{\r\n              if(!aboutTick){aboutTick=true;requestAnimationFrame(paintAboutPortrait)}\r\n            };\r\n            paintAboutPortrait();\r\n            window.addEventListener('scroll',queueAboutPortrait,{passive:true});\r\n            window.addEventListener('resize',queueAboutPortrait,{passive:true});\r\n          }\r\n\r\n          \/\/ V3.7 \u2014 QClay-inspired scroll choreography.\r\n          \/\/ No scroll hijacking, no external library, no layout reflow:\r\n          \/\/ one RAF loop drives hero, headings, media depth and section transitions.\r\n          const progressBar=root.querySelector('.ng-scroll-progress i');\r\n          const scenes=[...root.querySelectorAll('.ng-scene')].filter(sec=>!sec.closest('.ng-products'));\r\n          const titles=[...root.querySelectorAll('.ng-scroll-drift')].filter(el=>!el.closest('.ng-products'));\r\n          const portfolioMedia=[\r\n            ...root.querySelectorAll('#cosmetiques .ng-img,#posters .ng-img,#web .ng-img,#artistiques .ng-img,#awards .ng-img')\r\n          ];\r\n          const motionStages=[...root.querySelectorAll('#motion .ng-motion-stage')];\r\n          const quoteCards=[...root.querySelectorAll('.ng-quote')];\r\n          \/\/ v3.8.6 \u2014 Testimonials expand\/collapse in place; no layout or admin behavior changed.\r\n          root.querySelectorAll('.ng-quote-toggle').forEach(btn=>{\r\n            btn.addEventListener('click',()=>{\r\n              const card=btn.closest('.ng-quote');\r\n              if(!card) return;\r\n              const expanded=card.classList.toggle('is-expanded');\r\n              btn.setAttribute('aria-expanded',expanded?'true':'false');\r\n            });\r\n          });\r\n\r\n          const productCards=[...root.querySelectorAll('.ng-products .ng-product')];\r\n\r\n          const awardCards=[...root.querySelectorAll('.ng-award-media .ng-card')];\r\n          const heads=[...root.querySelectorAll('.ng-head')];\r\n          const hero=root.querySelector('.ng-hero');\r\n          const heroMedia=root.querySelector('.ng-hero-media');\r\n          const heroCopy=root.querySelector('.ng-hero-copy');\r\n\r\n          portfolioMedia.forEach(el=>el.classList.add('ng-q-media'));\r\n          motionStages.forEach(el=>el.classList.add('ng-q-stage'));\r\n\r\n          let lastY=window.scrollY;\r\n          let qTick=false;\r\n          const qClamp=(n,a,b)=>Math.max(a,Math.min(b,n));\r\n          const qEase=t=>1-Math.pow(1-t,3);\r\n\r\n          const updateQClay=()=>{\r\n            qTick=false;\r\n            const y=Math.max(0,window.scrollY);\r\n            const vh=window.innerHeight||document.documentElement.clientHeight;\r\n            const isMobile=window.matchMedia('(max-width: 760px)').matches;\r\n            const max=Math.max(1,document.documentElement.scrollHeight-vh);\r\n            if(progressBar) progressBar.style.setProperty('--ng-progress',qClamp((y\/max)*100,0,100)+'%');\r\n\r\n            const dir=y>lastY?'down':(y<lastY?'up':(root.dataset.scrollDir||'down'));\r\n            root.dataset.scrollDir=dir;\r\n\r\n            \/\/ HERO \u2014 large, cinematic compression into the page.\r\n            if(hero&&heroMedia&&heroCopy){\r\n              const hr=hero.getBoundingClientRect();\r\n              const hp=qClamp((-hr.top)\/(Math.max(1,hero.offsetHeight)*.82),0,1);\r\n              if(isMobile){\r\n                heroMedia.style.setProperty('--ng-hero-media-scale-mobile',(1.035-hp*.015).toFixed(4));\r\n                heroMedia.style.setProperty('--ng-hero-media-y-mobile',(hp*-10).toFixed(1)+'px');\r\n                heroCopy.style.setProperty('--ng-hero-copy-y-mobile',(hp*-26).toFixed(1)+'px');\r\n                heroCopy.style.setProperty('--ng-hero-copy-opacity-mobile',(1-hp*.22).toFixed(3));\r\n              }else{\r\n                heroMedia.style.setProperty('--ng-hero-media-scale',(1.08-hp*.06).toFixed(4));\r\n                heroMedia.style.setProperty('--ng-hero-media-y',(hp*-28).toFixed(1)+'px');\r\n                heroCopy.style.setProperty('--ng-hero-copy-y',(hp*-72).toFixed(1)+'px');\r\n                heroCopy.style.setProperty('--ng-hero-copy-scale',(1-hp*.035).toFixed(4));\r\n                heroCopy.style.setProperty('--ng-hero-copy-opacity',(1-hp*.48).toFixed(3));\r\n              }\r\n            }\r\n\r\n            \/\/ OVERSIZED TITLES \u2014 lateral editorial travel, alternating direction.\r\n            titles.forEach((el,i)=>{\r\n              const r=el.getBoundingClientRect();\r\n              if(r.bottom<-180||r.top>vh+180)return;\r\n              const center=(r.top+r.height\/2)-vh\/2;\r\n              const n=qClamp(center\/(vh*.72),-1,1);\r\n              const side=(i%2===0)?-1:1;\r\n              if(isMobile){\r\n                el.style.setProperty('--ng-x-mobile',(n*side*20).toFixed(1)+'px');\r\n                el.style.setProperty('--ng-y-mobile',(n*6).toFixed(1)+'px');\r\n                el.style.setProperty('--ng-title-opacity-mobile',(1-Math.abs(n)*.10).toFixed(3));\r\n              }else{\r\n                el.style.setProperty('--ng-x',(n*side*115).toFixed(1)+'px');\r\n                el.style.setProperty('--ng-y',(n*16).toFixed(1)+'px');\r\n                el.style.setProperty('--ng-title-opacity',(1-Math.abs(n)*.22).toFixed(3));\r\n              }\r\n            });\r\n\r\n            \/\/ HEAD META \u2014 counter-motion creates multi-layer typography.\r\n            heads.forEach((head,i)=>{\r\n              const r=head.getBoundingClientRect();\r\n              if(r.bottom<-150||r.top>vh+150)return;\r\n              const n=qClamp(((r.top+r.height\/2)-vh\/2)\/(vh*.75),-1,1);\r\n              const side=i%2?1:-1;\r\n              if(isMobile){\r\n                head.style.setProperty('--ng-q-meta-y-mobile',(n*-4).toFixed(1)+'px');\r\n                head.style.setProperty('--ng-q-meta-opacity-mobile',(1-Math.abs(n)*.10).toFixed(3));\r\n              }else{\r\n                head.style.setProperty('--ng-q-meta-x',(n*side*28).toFixed(1)+'px');\r\n                head.style.setProperty('--ng-q-meta-y',(n*-10).toFixed(1)+'px');\r\n                head.style.setProperty('--ng-q-meta-opacity',(1-Math.abs(n)*.28).toFixed(3));\r\n              }\r\n            });\r\n\r\n            \/\/ PORTFOLIO IMAGES \u2014 different phase per card creates QClay-like depth.\r\n            portfolioMedia.forEach((el,i)=>{\r\n              const r=el.getBoundingClientRect();\r\n              if(r.bottom<-220||r.top>vh+220)return;\r\n              const center=(r.top+r.height\/2)-vh\/2;\r\n              const n=qClamp(center\/(vh*.78),-1,1);\r\n              const phase=(i%3)-1; \/\/ -1, 0, +1\r\n              const x=n*phase*24;\r\n              const yy=n*(-42-(i%2)*10);\r\n              const sc=1.085+Math.abs(n)*.035;\r\n              if(isMobile){\r\n                el.style.setProperty('--ng-q-y-mobile',(n*-14).toFixed(1)+'px');\r\n                el.style.setProperty('--ng-q-scale-mobile',(1.03+Math.abs(n)*.012).toFixed(4));\r\n                el.style.setProperty('--ng-q-sheen-mobile',(0.05+(1-Math.abs(n))*.08).toFixed(3));\r\n              }else{\r\n                el.style.setProperty('--ng-q-x',x.toFixed(1)+'px');\r\n                el.style.setProperty('--ng-q-y',yy.toFixed(1)+'px');\r\n                el.style.setProperty('--ng-q-scale',sc.toFixed(4));\r\n                el.style.setProperty('--ng-q-sheen',(0.06+(1-Math.abs(n))*.20).toFixed(3));\r\n              }\r\n            });\r\n\r\n            \/\/ MOTION \u2014 stage floats as one cinematic slab.\r\n            motionStages.forEach((el,i)=>{\r\n              const r=el.getBoundingClientRect();\r\n              if(r.bottom<-220||r.top>vh+220)return;\r\n              const n=qClamp(((r.top+r.height\/2)-vh\/2)\/(vh*.82),-1,1);\r\n              if(isMobile){\r\n                el.style.setProperty('--ng-q-stage-y-mobile',(n*-12).toFixed(1)+'px');\r\n                el.style.setProperty('--ng-q-stage-scale-mobile',(1-Math.abs(n)*.006).toFixed(4));\r\n              }else{\r\n                el.style.setProperty('--ng-q-stage-x',(n*(i%2?18:-18)).toFixed(1)+'px');\r\n                el.style.setProperty('--ng-q-stage-y',(n*-42).toFixed(1)+'px');\r\n                el.style.setProperty('--ng-q-stage-scale',(1.015-Math.abs(n)*.018).toFixed(4));\r\n              }\r\n            });\r\n\r\n            \/\/ DIGITAL PRODUCTS \u2014 restrained motion so Safari stays stable.\r\n            productCards.forEach((el,i)=>{\r\n              const r=el.getBoundingClientRect();\r\n              if(r.bottom<-180||r.top>vh+180)return;\r\n              const n=qClamp(((r.top+r.height\/2)-vh\/2)\/(vh*.9),-1,1);\r\n              const visible=1-Math.min(1,Math.abs(n));\r\n              if(isMobile){\r\n                el.style.setProperty('--ng-product-y-mobile',(n*-8).toFixed(1)+'px');\r\n                el.style.setProperty('--ng-product-scale-mobile',(0.995+visible*.005).toFixed(4));\r\n                el.style.setProperty('--ng-product-opacity-mobile',(0.90+visible*.10).toFixed(3));\r\n                el.style.setProperty('--ng-product-img-scale-mobile',(1.01+visible*.01).toFixed(4));\r\n              }else{\r\n                const stagger=(i-1)*8;\r\n                el.style.setProperty('--ng-product-y',(n*-18+stagger).toFixed(1)+'px');\r\n                el.style.setProperty('--ng-product-scale',(0.99+visible*.01).toFixed(4));\r\n                el.style.setProperty('--ng-product-opacity',(0.86+visible*.14).toFixed(3));\r\n                el.style.setProperty('--ng-product-img-scale',(1.018+visible*.018).toFixed(4));\r\n              }\r\n            });\r\n\r\n            \/\/ AWARDS \/ TESTIMONIALS \u2014 staggered depth without touching layout.\r\n            [...awardCards,...quoteCards].forEach((el,i)=>{\r\n              const r=el.getBoundingClientRect();\r\n              if(r.bottom<-180||r.top>vh+180)return;\r\n              const n=qClamp(((r.top+r.height\/2)-vh\/2)\/(vh*.82),-1,1);\r\n              const stagger=(i%2===0)?1:-1;\r\n              if(isMobile){\r\n                el.style.setProperty('--ng-q-card-y-mobile',(n*8).toFixed(1)+'px');\r\n                el.style.setProperty('--ng-q-card-scale-mobile',(1-Math.abs(n)*.005).toFixed(4));\r\n              }else{\r\n                el.style.setProperty('--ng-q-card-y',(n*stagger*24).toFixed(1)+'px');\r\n                el.style.setProperty('--ng-q-card-scale',(1-Math.abs(n)*.018).toFixed(4));\r\n              }\r\n            });\r\n\r\n            lastY=y;\r\n          };\r\n\r\n          const askQClay=()=>{if(!qTick){qTick=true;requestAnimationFrame(updateQClay)}};\r\n          if(!window.matchMedia('(prefers-reduced-motion: reduce)').matches){\r\n            window.addEventListener('scroll',askQClay,{passive:true});\r\n            window.addEventListener('resize',askQClay,{passive:true});\r\n            window.addEventListener('pageshow',askQClay,{passive:true});\r\n            updateQClay();\r\n          }\r\n\r\n                    const lb=document.getElementById('ng-lightbox'),lbImg=lb?.querySelector('img'),lbCap=lb?.querySelector('.ng-lb-caption'),lbDemo=lb?.querySelector('.ng-lb-demo');\r\n          const closeLb=()=>{if(!lb)return;lb.classList.remove('open');lb.setAttribute('aria-hidden','true');if(lbImg)lbImg.src='';if(lbDemo){lbDemo.hidden=true;lbDemo.removeAttribute('href')}document.documentElement.style.overflow=''};\r\n          window.ng2OpenLightbox=(z)=>{\r\n            if(!z||!lb)return;\r\n            const src=z.dataset.full||z.querySelector('img')?.src;if(!src)return;\r\n            const demo=(z.dataset.demo||'').trim();\r\n            lbImg.src=src;lbCap.textContent=z.dataset.label||'';\r\n            if(lbDemo){\r\n              if(demo){lbDemo.href=demo;lbDemo.hidden=false}else{lbDemo.hidden=true;lbDemo.removeAttribute('href')}\r\n            }\r\n            lb.classList.add('open');lb.setAttribute('aria-hidden','false');document.documentElement.style.overflow='hidden';\r\n          };\r\n          root.addEventListener('click',e=>{\r\n            const z=e.target.closest('.ng-zoom'); if(!z||!lb)return;\r\n            window.ng2OpenLightbox(z);\r\n          });\r\n          lb?.addEventListener('click',e=>{if(e.target===lb||e.target.closest('.ng-lb-close'))closeLb()});\r\n          document.addEventListener('keydown',e=>{if(e.key==='Escape')closeLb()});\r\n\r\n          \/\/ v3.8.1 \u2014 compact mobile navigation. Desktop layout remains unchanged.\r\n          const menuToggle=root.querySelector('.ng-menu-toggle'),menu=root.querySelector('.ng-menu');\r\n          const setMenu=open=>{\r\n            if(!menuToggle||!menu)return;\r\n            menu.classList.toggle('open',!!open);menuToggle.classList.toggle('is-open',!!open);\r\n            menuToggle.setAttribute('aria-expanded',open?'true':'false');\r\n          };\r\n          menuToggle?.addEventListener('click',()=>setMenu(!menu.classList.contains('open')));\r\n          menu?.querySelectorAll('a').forEach(a=>a.addEventListener('click',()=>setMenu(false)));\r\n\r\n          \/\/ Contact opens as a modal instead of scrolling to the footer.\r\n          const contactModal=document.getElementById('ng-contact-modal');\r\n          const contactDialog=contactModal?.querySelector('.ng-contact-dialog');\r\n          const modalForm=document.getElementById('ng2-contact-modal');\r\n          let contactCloseTimer=null;\r\n          const openContact=()=>{\r\n            if(!contactModal)return;\r\n            clearTimeout(contactCloseTimer);\r\n            contactModal.classList.remove('closing');contactDialog?.classList.remove('is-success');\r\n            contactModal.classList.add('open');contactModal.setAttribute('aria-hidden','false');document.body.classList.add('ng-modal-lock');\r\n            setMenu(false);setTimeout(()=>modalForm?.querySelector('input[name=\"name\"]')?.focus(),180);\r\n          };\r\n          const closeContact=()=>{\r\n            if(!contactModal)return;\r\n            contactModal.classList.add('closing');document.body.classList.remove('ng-modal-lock');\r\n            setTimeout(()=>{contactModal.classList.remove('open','closing');contactModal.setAttribute('aria-hidden','true');contactDialog?.classList.remove('is-success');},320);\r\n          };\r\n          root.querySelectorAll('[data-contact-open]').forEach(a=>a.addEventListener('click',e=>{e.preventDefault();openContact()}));\r\n          contactModal?.querySelector('.ng-contact-close')?.addEventListener('click',closeContact);\r\n          contactModal?.addEventListener('click',e=>{if(e.target===contactModal)closeContact()});\r\n          document.addEventListener('keydown',e=>{if(e.key==='Escape'){setMenu(false);if(contactModal?.classList.contains('open'))closeContact()}});\r\n\r\n          const bindContactForm=(form,isModal=false)=>{\r\n            if(!form)return;\r\n            form.addEventListener('submit',async e=>{\r\n              e.preventDefault();\r\n              const lang=(root.dataset.lang==='fr')?'fr':'en',st=form.querySelector('.ng-status'),btn=form.querySelector('.ng-send');\r\n              const langInput=form.querySelector('input[name=\"lang\"]');if(langInput)langInput.value=lang;\r\n              if(st)st.textContent=i18n[lang].contact_sending; if(btn)btn.disabled=true;\r\n              try{\r\n                const r=await fetch('https:\/\/noghli.fr\/wp-admin\/admin-ajax.php',{method:'POST',body:new FormData(form)});\r\n                const j=await r.json(); if(!j.success)throw new Error(j.data?.message||i18n[lang].contact_error);\r\n                if(isModal){\r\n                  if(st)st.textContent='';\r\n                  contactDialog?.classList.add('is-success');form.reset();\r\n                  const li=form.querySelector('input[name=\"lang\"]');if(li)li.value=lang;\r\n                  contactCloseTimer=setTimeout(closeContact,2600);\r\n                }else{\r\n                  if(st)st.textContent=i18n[lang].contact_thanks_text; form.reset();\r\n                }\r\n              }catch(err){if(st)st.textContent=err.message||i18n[lang].contact_error}\r\n              if(btn)btn.disabled=false;\r\n            });\r\n          };\r\n          bindContactForm(document.getElementById('ng2-contact'),false);\r\n          bindContactForm(modalForm,true);\r\n        })();\r\n        <\/script>\r\n        <\/div>\r\n        \n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1590","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Site V2 - Alen Noghli<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/noghli.fr\/index.php\/site-v2\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Site V2 - Alen Noghli\" \/>\n<meta property=\"og:url\" content=\"https:\/\/noghli.fr\/index.php\/site-v2\/\" \/>\n<meta property=\"og:site_name\" content=\"Alen Noghli\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-28T13:29:33+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/noghli.fr\\\/index.php\\\/site-v2\\\/\",\"url\":\"https:\\\/\\\/noghli.fr\\\/index.php\\\/site-v2\\\/\",\"name\":\"Site V2 - Alen Noghli\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/noghli.fr\\\/#website\"},\"datePublished\":\"2026-08-28T11:05:55+00:00\",\"dateModified\":\"2026-08-28T13:29:33+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/noghli.fr\\\/index.php\\\/site-v2\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/noghli.fr\\\/index.php\\\/site-v2\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/noghli.fr\\\/index.php\\\/site-v2\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/noghli.fr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Site V2\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/noghli.fr\\\/#website\",\"url\":\"https:\\\/\\\/noghli.fr\\\/\",\"name\":\"Alen Noghli\",\"description\":\"Directeur artistique, designer &amp; artiste visuel\",\"publisher\":{\"@id\":\"https:\\\/\\\/noghli.fr\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/noghli.fr\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/noghli.fr\\\/#organization\",\"name\":\"Alen Noghli\",\"url\":\"https:\\\/\\\/noghli.fr\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/noghli.fr\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/noghli.fr\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/cropped-color-logo_N.png\",\"contentUrl\":\"https:\\\/\\\/noghli.fr\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/cropped-color-logo_N.png\",\"width\":512,\"height\":512,\"caption\":\"Alen Noghli\"},\"image\":{\"@id\":\"https:\\\/\\\/noghli.fr\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Site V2 - Alen Noghli","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/noghli.fr\/index.php\/site-v2\/","og_locale":"en_US","og_type":"article","og_title":"Site V2 - Alen Noghli","og_url":"https:\/\/noghli.fr\/index.php\/site-v2\/","og_site_name":"Alen Noghli","article_modified_time":"2026-08-28T13:29:33+00:00","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/noghli.fr\/index.php\/site-v2\/","url":"https:\/\/noghli.fr\/index.php\/site-v2\/","name":"Site V2 - Alen Noghli","isPartOf":{"@id":"https:\/\/noghli.fr\/#website"},"datePublished":"2026-08-28T11:05:55+00:00","dateModified":"2026-08-28T13:29:33+00:00","breadcrumb":{"@id":"https:\/\/noghli.fr\/index.php\/site-v2\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/noghli.fr\/index.php\/site-v2\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/noghli.fr\/index.php\/site-v2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/noghli.fr\/"},{"@type":"ListItem","position":2,"name":"Site V2"}]},{"@type":"WebSite","@id":"https:\/\/noghli.fr\/#website","url":"https:\/\/noghli.fr\/","name":"Alen Noghli","description":"Directeur artistique, designer &amp; artiste visuel","publisher":{"@id":"https:\/\/noghli.fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/noghli.fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/noghli.fr\/#organization","name":"Alen Noghli","url":"https:\/\/noghli.fr\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/noghli.fr\/#\/schema\/logo\/image\/","url":"https:\/\/noghli.fr\/wp-content\/uploads\/2025\/04\/cropped-color-logo_N.png","contentUrl":"https:\/\/noghli.fr\/wp-content\/uploads\/2025\/04\/cropped-color-logo_N.png","width":512,"height":512,"caption":"Alen Noghli"},"image":{"@id":"https:\/\/noghli.fr\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/noghli.fr\/index.php\/wp-json\/wp\/v2\/pages\/1590","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/noghli.fr\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/noghli.fr\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/noghli.fr\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/noghli.fr\/index.php\/wp-json\/wp\/v2\/comments?post=1590"}],"version-history":[{"count":1,"href":"https:\/\/noghli.fr\/index.php\/wp-json\/wp\/v2\/pages\/1590\/revisions"}],"predecessor-version":[{"id":1605,"href":"https:\/\/noghli.fr\/index.php\/wp-json\/wp\/v2\/pages\/1590\/revisions\/1605"}],"wp:attachment":[{"href":"https:\/\/noghli.fr\/index.php\/wp-json\/wp\/v2\/media?parent=1590"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}