{"id":15405,"date":"2026-09-15T19:56:09","date_gmt":"2026-09-15T17:56:09","guid":{"rendered":"https:\/\/www.ok3d.fr\/?page_id=15405"},"modified":"2026-09-15T20:17:29","modified_gmt":"2026-09-15T18:17:29","slug":"politext","status":"publish","type":"page","link":"https:\/\/www.ok3d.fr\/en\/projets\/politext\/","title":{"rendered":"Politext"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"15405\" class=\"elementor elementor-15405\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e62dd1c e-con-full e-flex e-con e-parent\" data-id=\"e62dd1c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0039ac6 elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"0039ac6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- OK3D \u00b7 MOD\u00c8LE 3D \u00b7 Politext \u00b7 SANS HEADER \u00b7 SANS FOOTER \u00b7 SANS PROJET SUIVANT -->\r\n<div id=\"ok3d-project-politext\"><span id=\"ok3d-project-politext-top\"><\/span><a class=\"skip\" href=\"#ok3d-project-politext-main\">Aller au contenu<\/a>\r\n<main id=\"ok3d-project-politext-main\">\r\n<!-- 01 \u00b7 EN-T\u00caTE PROJET : titre, accroche et informations -->\r\n<section class=\"case-hero\"><div class=\"wrap\">\r\n<a class=\"case-back\" href=\"\/projets\/\">\u2190 Retour aux projets<\/a>\r\n<div class=\"case-heading\"><div><p class=\"kicker\">Projet \/ 3D &amp; motion<\/p><h1 class=\"case-title\">Politext<span>.<\/span><\/h1><\/div><div class=\"case-summary\"><p class=\"case-lead\">Mettre en sc\u00e8ne un configurateur textile et toutes ses possibilit\u00e9s dans une animation 3D pens\u00e9e pour les r\u00e9seaux sociaux.<\/p><a class=\"text-link\" href=\"#ok3d-project-politext-film\">D\u00e9couvrir les films <span aria-hidden=\"true\">\u2193<\/span><\/a><\/div><\/div>\r\n<dl class=\"case-meta\"><div><dt>Projet<\/dt><dd>Configurateur maillot running<\/dd><\/div><div><dt>Intervention<\/dt><dd>Animation 3D \u00b7 UI \u00b7 Motion<\/dd><\/div><div><dt>Personnalisation<\/dt><dd>7 couleurs \u00b7 Logos \u00b7 Nom<\/dd><\/div><div><dt>Formats<\/dt><dd>Carr\u00e9 1:1 \u00b7 Portrait 9:16<\/dd><\/div><\/dl>\r\n<!-- 02 \u00b7 FILM : remplacer le poster, le fichier vid\u00e9o et le lien Vimeo -->\r\n<!-- FILMS YOUTUBE : liens \u00e0 renseigner dans POLITEXT_MEDIA, en fin de fichier. -->\r\n<div class=\"politext-films\" id=\"ok3d-project-politext-film\"><div class=\"politext-duo\"><figure class=\"politext-square-film\"><div class=\"politext-square-frame\"><div class=\"politext-player\" data-politext-player=\"square\"><div class=\"politext-film-empty\"><span>POLITEXT \/ FILM CARR\u00c9<\/span><strong>Le textile prend vie.<\/strong><small>Lien YouTube \u00e0 renseigner<\/small><\/div><\/div><\/div><figcaption><div><span>01 \/ CARR\u00c9 \u00b7 1:1<\/span><p>La cr\u00e9ation et ses possibilit\u00e9s.<\/p><\/div><a data-politext-film-link=\"square\" hidden target=\"_blank\" rel=\"noopener noreferrer\" aria-label=\"Ouvrir le film carr\u00e9 sur YouTube\">YouTube \u2197<\/a><\/figcaption><\/figure><figure class=\"politext-portrait-film\"><div class=\"politext-phone\"><div class=\"politext-phone-top\" aria-hidden=\"true\"><span><\/span><small>POLITEXT<\/small><\/div><div class=\"politext-player\" data-politext-player=\"portrait\"><div class=\"politext-film-empty\"><span>POLITEXT \/ FILM PORTRAIT<\/span><strong>Le mouvement.<br>En vertical.<\/strong><small>Lien YouTube \u00e0 renseigner<\/small><\/div><\/div><div class=\"politext-phone-bottom\" aria-hidden=\"true\"><span><\/span><\/div><\/div><figcaption><div><span>02 \/ PORTRAIT \u00b7 9:16<\/span><p>L\u2019animation au format mobile.<\/p><\/div><a data-politext-film-link=\"portrait\" hidden target=\"_blank\" rel=\"noopener noreferrer\" aria-label=\"Ouvrir le film portrait sur YouTube\">YouTube \u2197<\/a><\/figcaption><\/figure><\/div><p class=\"politext-formats-caption\">Une m\u00eame animation, deux compositions adapt\u00e9es au carr\u00e9 et au portrait.<\/p><\/div>\r\n<\/div><\/section>\r\n<!-- 03 \u00b7 CONTEXTE & ENJEU -->\r\n<section class=\"section wrap\" id=\"ok3d-project-politext-projet\"><div class=\"case-overview\"><div class=\"reveal\"><p class=\"kicker\">01 \/ Le projet<\/p><h2 class=\"case-h2\">Montrer le choix.<br\/><span>Garder le rythme.<\/span><\/h2><\/div><div class=\"case-copy reveal\"><p>Politext souhaitait pr\u00e9senter un configurateur de maillot running personnalisable dans une vid\u00e9o 3D claire et attractive.<\/p><p>Le concept met en sc\u00e8ne le v\u00eatement et l\u2019interface de personnalisation : choix parmi sept couleurs, organisation en plusieurs groupes, ajout du logo et du nom, avec une logique proche d\u2019un configurateur produit r\u00e9el.<\/p><p>Le film associe animation du v\u00eatement, apparition stylis\u00e9e du textile et pr\u00e9sentation de l\u2019interface. Les d\u00e9clinaisons permettent d\u2019adapter la composition aux diff\u00e9rents supports de diffusion.<\/p><div class=\"case-challenge\"><strong>L\u2019enjeu<\/strong><p>Faire comprendre rapidement plusieurs possibilit\u00e9s de personnalisation sans transformer la vid\u00e9o en tutoriel d\u2019interface.<\/p><\/div><\/div><\/div><\/section>\r\n<section class=\"section case-gallery-section\"><div class=\"wrap\"><div class=\"section-head reveal\"><div><p class=\"kicker\">02 \/ Les variations du produit<\/p><h2>Un maillot.<br><span>Plusieurs expressions.<\/span><\/h2><\/div><p>Une vue d\u2019ensemble des diff\u00e9rents maillots pour rendre les possibilit\u00e9s de personnalisation visibles au premier regard.<\/p><\/div><figure class=\"politext-lineup reveal\"><button type=\"button\" class=\"politext-zoom\" data-zoom data-politext-image=\"jerseys\"  aria-label=\"Agrandir : Les diff\u00e9rents maillots\"><img src=\"https:\/\/www.ok3d.fr\/wp-content\/uploads\/2026\/09\/politext_t-shirts_3d.webp\" alt=\"Politext \u2014 Les diff\u00e9rents maillots\" loading=\"lazy\" decoding=\"async\"><span class=\"politext-image-empty\" hidden><small>VISUEL \u00c0 INT\u00c9GRER<\/small><strong>Les diff\u00e9rents maillots<\/strong><\/span><span class=\"politext-expand\" aria-hidden=\"true\">+<\/span><\/button><figcaption><small>01 \/ VUE D\u2019ENSEMBLE<\/small><p>Couleurs, logos et nom : les variations du maillot r\u00e9unies dans une composition paysage.<\/p><\/figcaption><\/figure><\/div><\/section>\r\n<section class=\"section wrap\"><div class=\"politext-focus-grid\"><article class=\"reveal\"><p class=\"kicker\">03 \/ Le textile en mouvement<\/p><h2 class=\"case-h2\">Faire appara\u00eetre.<br><span>Donner du caract\u00e8re.<\/span><\/h2><p class=\"politext-focus-copy\">L\u2019apparition du textile a \u00e9t\u00e9 travaill\u00e9e en 3D comme un moment visuel \u00e0 part enti\u00e8re. Un effet stylis\u00e9 qui accompagne la r\u00e9v\u00e9lation du v\u00eatement et donne son rythme \u00e0 la s\u00e9quence.<\/p><div class=\"politext-textile-video\" aria-label=\"Politext \u2014 apparition stylis\u00e9e du textile\">\r\n<video autoplay muted loop playsinline preload=\"metadata\" aria-label=\"Politext \u2014 animation stylis\u00e9e d\u2019apparition du textile\">\r\n<source src=\"https:\/\/www.ok3d.fr\/wp-content\/uploads\/2026\/09\/politext_animation_textile_site.mp4\" type=\"video\/mp4\">\r\n<\/video>\r\n<\/div><p class=\"politext-small-caption\">Un gros plan pour montrer l\u2019effet d\u2019apparition et le travail de la mati\u00e8re.<\/p><\/article><article class=\"reveal\"><p class=\"kicker\">04 \/ La personnalisation<\/p><h2 class=\"case-h2\">Montrer le choix.<br><span>Clarifier l\u2019interface.<\/span><\/h2><p class=\"politext-focus-copy\">Le configurateur est mis en sc\u00e8ne dans l\u2019animation pour pr\u00e9senter la s\u00e9lection des couleurs, l\u2019ajout d\u2019un logo et la personnalisation du nom. L\u2019interface accompagne le produit sans d\u00e9tourner l\u2019attention du maillot.<\/p><button type=\"button\" class=\"politext-zoom\" data-zoom data-politext-image=\"configurator\" aria-label=\"Agrandir : Le configurateur \u2014 interface de personnalisation\"><img src=\"https:\/\/www.ok3d.fr\/wp-content\/uploads\/2026\/09\/Capture-decran-2026-06-06-214050.png\" alt=\"Politext \u2014 Le configurateur \u2014 interface de personnalisation\" loading=\"lazy\" decoding=\"async\"><span class=\"politext-expand\" aria-hidden=\"true\">+<\/span><\/button><p class=\"politext-small-caption\">Une capture d\u00e9di\u00e9e \u00e0 l\u2019interface telle qu\u2019elle appara\u00eet dans le film.<\/p><\/article><\/div><\/section>\r\n\r\n<!-- 05 \u00b7 R\u00c9ALISATION : expliquer votre r\u00f4le avec des \u00e9l\u00e9ments v\u00e9rifi\u00e9s -->\r\n<section class=\"section wrap\"><div class=\"case-craft\"><div class=\"reveal\"><p class=\"kicker\">05 \/ La r\u00e9alisation<\/p><h2 class=\"case-h2\">De l\u2019intention<br\/><span>\u00e0 la livraison.<\/span><\/h2><p class=\"subtext\">Du v\u00eatement \u00e0 l\u2019interface, une m\u00eame direction visuelle relie les \u00e9tapes de l\u2019animation.<\/p><\/div><ol class=\"case-process\"><li class=\"reveal\"><span>01<\/span><div><h3>Construire le textile.<\/h3><p>Pr\u00e9parer le maillot 3D, ses variantes et l\u2019animation stylis\u00e9e d\u2019apparition du textile.<\/p><\/div><\/li><li class=\"reveal\"><span>02<\/span><div><h3>Mettre en sc\u00e8ne l\u2019interface.<\/h3><p>Organiser couleurs, logo et nom dans une UI lisible qui accompagne le v\u00eatement sans lui voler la vedette.<\/p><\/div><\/li><li class=\"reveal\"><span>03<\/span><div><h3>D\u00e9cliner les formats.<\/h3><p>Adapter cadrages et composition aux principaux ratios des r\u00e9seaux sociaux pour conserver une lecture efficace.<\/p><\/div><\/li><\/ol><\/div><div class=\"case-delivery reveal\"><div><h3>Une animation con\u00e7ue d\u00e8s le d\u00e9part pour plusieurs formats.<\/h3><p class=\"subtext\">Une mise en sc\u00e8ne du produit et de sa personnalisation, d\u00e9clin\u00e9e pour la diffusion.<\/p><\/div><div><ul aria-label=\"Livrables\"><li>Animation 3D ~30 s<\/li><li>Format 1:1<\/li><li>Format portrait 9:16<\/li><li>Apparition du textile en 3D<\/li><\/ul><\/div><\/div><\/section>\r\n<section class=\"portfolio-cta\"><div class=\"wrap\"><div><p class=\"kicker\">Votre prochain projet<\/p><h2>Un projet \u00e0 r\u00e9v\u00e9ler ?<br\/><span class=\"accent-line\">Donnons-lui vie.<\/span><\/h2><p>Parlons de votre univers, de vos objectifs et de la meilleure fa\u00e7on de les transformer en images, en mouvement ou en exp\u00e9rience.<\/p><\/div><a class=\"btn btn-primary\" href=\"\/3d-animation\/#ok3d-3d-contact\">Parlons de votre projet <span aria-hidden=\"true\" class=\"arrow\">\u2197<\/span><\/a><\/div><\/section>\r\n<\/main>\r\n<dialog aria-labelledby=\"ok3d-project-politext-image-title\" class=\"case-lightbox\"><div class=\"lightbox-top\"><p data-image-title=\"\" id=\"ok3d-project-politext-image-title\"><\/p><button aria-label=\"Fermer l\u2019image\" data-close=\"\" type=\"button\">\u00d7<\/button><\/div><img alt=\"\" data-full-image=\"\"\/><\/dialog><\/div>\r\n<style>\r\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Manrope:wght@400;500;600;700;800&family=Space+Grotesk:wght@400;500;600;700&display=swap');\r\n\r\n#ok3d-project-politext{--bg:#080a10;--surface:#0e111a;--text:#f1f3fa;--muted:#a1a8ba;--line:#ffffff20;--blue:#648cff;--font:'Manrope',Arial,sans-serif;--display:'Space Grotesk',Arial,sans-serif;--gutter:clamp(22px,5vw,88px);position:relative;width:100%;max-width:none!important;margin:0!important;background:var(--bg);color:var(--text);font-family:var(--font);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow:clip}\r\n#ok3d-project-politext,#ok3d-project-politext *{box-sizing:border-box}\r\n#ok3d-project-politext img{max-width:none}\r\n#ok3d-project-politext button,#ok3d-project-politext input,#ok3d-project-politext select,#ok3d-project-politext textarea{font-family:inherit}\r\n\/* Force the Elementor HTML widget\/container to span full width when possible. *\/\r\n.elementor-widget-html:has(#ok3d-project-politext),.elementor-widget-html:has(#ok3d-project-politext) .elementor-widget-container{width:100%;max-width:none!important}\r\n\r\n\r\n#ok3d-project-politext{--bg:#080a10;--surface:#0e111a;--text:#f1f3fa;--muted:#a1a8ba;--line:#ffffff20;--blue:#648cff;--font:\"Manrope\",Arial,sans-serif;--display:\"Space Grotesk\",Arial,sans-serif;--gutter:clamp(22px,5vw,88px)}\r\n#ok3d-project-politext *{box-sizing:border-box}#ok3d-project-politext{scroll-behavior:smooth;scroll-padding-top:100px}#ok3d-project-politext{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}#ok3d-project-politext.locked{overflow:hidden}#ok3d-project-politext button,#ok3d-project-politext input,#ok3d-project-politext select,#ok3d-project-politext textarea{font:inherit}#ok3d-project-politext button,#ok3d-project-politext a{-webkit-tap-highlight-color:transparent}#ok3d-project-politext button{cursor:pointer}#ok3d-project-politext a{color:inherit;text-decoration:none}#ok3d-project-politext button{color:inherit}#ok3d-project-politext img{display:block;width:100%;height:auto}#ok3d-project-politext ::selection{background:#648cff;color:#080a10}#ok3d-project-politext :focus-visible{outline:2px solid #90adff;outline-offset:6px}#ok3d-project-politext h1,#ok3d-project-politext h2,#ok3d-project-politext h3,#ok3d-project-politext p{margin:0}#ok3d-project-politext h1,#ok3d-project-politext h2,#ok3d-project-politext h3{font-family:var(--display);font-weight:500}#ok3d-project-politext button:disabled{cursor:wait;opacity:.65}#ok3d-project-politext .wrap{width:min(100%,1600px);margin:auto;padding-inline:var(--gutter)}#ok3d-project-politext .section{padding-block:112px}#ok3d-project-politext .kicker{font-size:13px;text-transform:uppercase;letter-spacing:.14em;display:flex;align-items:center;gap:14px;color:var(--muted)}#ok3d-project-politext .kicker::before{content:\"\";width:22px;height:1px;background:var(--blue)}#ok3d-project-politext .blue{color:var(--blue)}#ok3d-project-politext .arrow{font-size:24px;line-height:1;display:inline-block;transition:transform .25s}#ok3d-project-politext .btn{display:inline-flex;justify-content:center;align-items:center;gap:30px;min-height:54px;padding:14px 24px;border:1px solid var(--line);border-radius:4px;background:transparent;color:var(--text);font-size:14px;font-weight:700;transition:background .25s,border-color .25s,transform .25s}#ok3d-project-politext .btn:hover{border-color:var(--blue);background:#648cff10}#ok3d-project-politext .btn:hover .arrow{transform:translate(3px,-3px)}#ok3d-project-politext .btn-primary{background:#537fff;border-color:#537fff;color:#fff}#ok3d-project-politext .btn-primary:hover{background:#6d92ff;border-color:#6d92ff}#ok3d-project-politext .text-link{display:inline-flex;align-items:center;gap:20px;font-size:14px;border-bottom:1px solid var(--line);padding-bottom:8px}#ok3d-project-politext .text-link:hover{color:var(--blue)}#ok3d-project-politext .skip{position:fixed;left:20px;top:-100px;z-index:100;background:var(--text);color:var(--bg);padding:10px}#ok3d-project-politext .skip:focus{top:15px}\r\n#ok3d-project-politext .header{position:absolute;top:0;left:0;width:100%;z-index:20;border-bottom:1px solid var(--line)}#ok3d-project-politext .header-inner{display:flex;align-items:center;justify-content:space-between;height:94px;gap:24px}#ok3d-project-politext .logo{font-family:var(--display);font-size:34px;font-weight:700;letter-spacing:-3px;line-height:1}#ok3d-project-politext .logo span{color:var(--blue)}#ok3d-project-politext .logo b{display:inline-block;width:7px;height:7px;background:var(--blue);margin-left:5px}#ok3d-project-politext .nav{display:flex;gap:34px;align-items:center}#ok3d-project-politext .nav a{font-size:14px;color:#c4cad8;transition:color .2s}#ok3d-project-politext .nav a:hover{color:#fff}#ok3d-project-politext .header-contact{font-size:14px;border:1px solid #ffffff40;padding:10px 18px;border-radius:3px}#ok3d-project-politext .menu-toggle{display:none;background:transparent;border:1px solid var(--line);padding:8px 13px;font-size:14px}\r\n#ok3d-project-politext .hero{position:relative;min-height:850px;min-height:min(940px,100svh);overflow:hidden;isolation:isolate;border-bottom:1px solid var(--line);background:#0a0d18}#ok3d-project-politext .hero-media{position:absolute;inset:0;z-index:-3}#ok3d-project-politext .hero-media video{width:100%;height:100%;object-fit:cover;object-position:center}#ok3d-project-politext .hero::before{content:\"\";position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,rgba(5,8,17,.94),rgba(5,8,17,.76) 40%,rgba(5,8,17,.13) 78%),linear-gradient(0deg,#080a10 0%,transparent 36%,#080a1055)}#ok3d-project-politext .hero::after{content:\"\";position:absolute;inset:94px 0 0;z-index:-1;background:linear-gradient(90deg,transparent calc(75% - 1px),#ffffff0b 75%,transparent calc(75% + 1px));pointer-events:none}#ok3d-project-politext .hero-body{padding-top:clamp(165px,19vh,230px);padding-bottom:165px}#ok3d-project-politext .hero .kicker{color:#c5cfe6;margin-bottom:28px}#ok3d-project-politext .hero h1{font-size:clamp(60px,7.5vw,116px);letter-spacing:-.065em;line-height:1.02;max-width:1000px}#ok3d-project-politext .hero h1 em{font-style:normal;color:#92acff}#ok3d-project-politext .hero-copy{max-width:470px;color:#bdc5d6;margin-top:30px;font-size:17px;line-height:1.8}#ok3d-project-politext .hero-actions{display:flex;gap:28px;align-items:center;margin-top:34px}#ok3d-project-politext .reel-trigger{display:inline-flex;gap:13px;align-items:center;background:transparent;border:0;font-size:14px;padding:10px 0}#ok3d-project-politext .play{display:grid;place-items:center;width:40px;height:40px;border:1px solid #ffffff55;border-radius:50%;font-size:12px;padding-left:2px}#ok3d-project-politext .reel-trigger:hover .play{background:var(--blue);border-color:var(--blue)}#ok3d-project-politext .hero-bottom{position:absolute;bottom:0;width:100%;padding-block:24px;display:flex;justify-content:space-between;align-items:end}#ok3d-project-politext .hero-signature{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#b4bed0;display:flex;gap:20px}#ok3d-project-politext .hero-signature span+span{border-left:1px solid #ffffff40;padding-left:20px}#ok3d-project-politext .hero-controls{display:flex;align-items:center;gap:22px;font-size:12px;color:#b4bed0}#ok3d-project-politext .pause{border:1px solid #ffffff35;background:#080a1055;border-radius:50%;height:36px;width:36px;font-size:13px}#ok3d-project-politext .scroll-link{font-size:13px;display:flex;gap:14px;align-items:center}#ok3d-project-politext .hero-index{position:absolute;right:var(--gutter);top:47%;writing-mode:vertical-rl;color:#d4ddf0;letter-spacing:.13em;font-size:12px}\r\n#ok3d-project-politext .clients{padding-block:34px;border-bottom:1px solid var(--line)}#ok3d-project-politext .clients-inner{display:flex;align-items:center;justify-content:space-between;gap:40px}#ok3d-project-politext .clients-label{font-size:12px;color:var(--muted);max-width:115px;line-height:1.7}#ok3d-project-politext .client-list{display:flex;align-items:center;justify-content:space-between;flex:1;gap:30px}#ok3d-project-politext .client-list span{font-family:var(--display);font-size:23px;font-weight:600;letter-spacing:-.04em;color:#bec3cf}#ok3d-project-politext .client-list .kiprun{font-style:italic;letter-spacing:-.08em}#ok3d-project-politext .client-list .obvious{font-size:19px;letter-spacing:-.04em}#ok3d-project-politext .client-list .laposte{font-size:20px;font-style:italic}\r\n#ok3d-project-politext .section-head{display:flex;justify-content:space-between;align-items:end;gap:36px;margin-bottom:46px}#ok3d-project-politext .section-head h2,#ok3d-project-politext .about h2,#ok3d-project-politext .contact h2{font-size:clamp(40px,4.5vw,66px);letter-spacing:-.055em;line-height:1.08;margin-top:20px}#ok3d-project-politext .section-head h2 span{color:var(--muted)}#ok3d-project-politext .works{padding-bottom:106px}#ok3d-project-politext .project-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:46px 28px}#ok3d-project-politext .project:first-child{grid-column:1\/-1}#ok3d-project-politext .project-media{position:relative;overflow:hidden;aspect-ratio:16\/10;background:var(--surface);border:1px solid var(--line);border-radius:6px;display:block;width:100%;padding:0;text-align:left}#ok3d-project-politext .project:first-child .project-media{aspect-ratio:2.2}#ok3d-project-politext .project-media img{height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.8,.2,1),filter .5s;filter:saturate(.92)}#ok3d-project-politext .project-media:hover img{transform:scale(1.035);filter:saturate(1.1)}#ok3d-project-politext .project:first-child .project-media img{object-position:50% 48%}#ok3d-project-politext .project:nth-child(2) .project-media img{object-position:50% 40%}#ok3d-project-politext .project-label{position:absolute;left:22px;top:22px;padding:7px 12px;font-size:12px;background:#080a10b8;border:1px solid #ffffff30;border-radius:3px;backdrop-filter:blur(12px)}#ok3d-project-politext .project-play{position:absolute;right:22px;bottom:22px;width:54px;height:54px;display:grid;place-items:center;border:1px solid #ffffff70;border-radius:50%;background:#080a1055;backdrop-filter:blur(10px);font-size:14px;transition:background .2s}#ok3d-project-politext .project-media:hover .project-play{background:#537fff}#ok3d-project-politext .project-info{padding-top:18px;display:flex;justify-content:space-between;align-items:start;gap:15px}#ok3d-project-politext .project-info h3{font-size:25px;letter-spacing:-.045em}#ok3d-project-politext .project-info p{font-size:14px;color:var(--muted);margin-top:4px}#ok3d-project-politext .project-number{font-family:var(--display);font-size:13px;color:var(--muted);padding-top:7px}#ok3d-project-politext .work-footer{display:flex;justify-content:center;margin-top:48px}\r\n#ok3d-project-politext .expertise{border-block:1px solid var(--line);background:var(--surface)}#ok3d-project-politext .expertise .section-head>p{max-width:350px;color:var(--muted)}#ok3d-project-politext .service{border-top:1px solid var(--line);display:grid;grid-template-columns:70px 1fr 1fr;gap:35px;padding:38px 0;transition:background .25s}#ok3d-project-politext .service:last-child{border-bottom:1px solid var(--line)}#ok3d-project-politext .service-num{color:var(--blue);font-family:var(--display);font-size:14px;padding-top:6px}#ok3d-project-politext .service h3{font-size:clamp(28px,3vw,40px);line-height:1.2;letter-spacing:-.045em}#ok3d-project-politext .service p{color:var(--muted);max-width:480px;font-size:16px}#ok3d-project-politext .tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}#ok3d-project-politext .tags span{border:1px solid var(--line);padding:4px 10px;border-radius:3px;font-size:12px;color:#c0c7d7}#ok3d-project-politext .service-title small{display:block;margin-top:12px;color:#8292ba;font-size:13px;font-weight:400}\r\n#ok3d-project-politext .about-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:100px;align-items:start}#ok3d-project-politext .about h2{margin-bottom:28px}#ok3d-project-politext .about-copy>p{color:#b6bed0;font-size:18px;line-height:1.9;max-width:640px}#ok3d-project-politext .about-copy>p+p{margin-top:18px;font-size:16px;color:var(--muted)}#ok3d-project-politext .signature{display:flex;align-items:center;gap:17px;margin-top:30px}#ok3d-project-politext .initials{width:51px;height:51px;display:grid;place-items:center;background:#152244;border:1px solid #648cff55;border-radius:50%;font-family:var(--display);color:#b2c6ff}#ok3d-project-politext .signature strong{display:block;font-size:16px;font-weight:600}#ok3d-project-politext .signature small{font-size:13px;color:var(--muted)}#ok3d-project-politext .stats{display:grid;grid-template-columns:repeat(3,1fr);margin-top:68px;border-block:1px solid var(--line);padding-block:28px}#ok3d-project-politext .stat{padding-inline:30px;border-right:1px solid var(--line)}#ok3d-project-politext .stat:first-child{padding-left:0}#ok3d-project-politext .stat:last-child{border:0}#ok3d-project-politext .stat strong{font-family:var(--display);font-weight:500;font-size:48px;letter-spacing:-.06em;display:block;line-height:1.2}#ok3d-project-politext .stat strong span{color:var(--blue)}#ok3d-project-politext .stat p{font-size:13px;color:var(--muted);margin-top:8px}#ok3d-project-politext .tool-list{display:flex;gap:12px 25px;flex-wrap:wrap;align-items:center;margin-top:30px;font-size:13px;color:#c0c7d7}#ok3d-project-politext .tool-list>span:first-child{color:var(--muted);margin-right:auto}\r\n#ok3d-project-politext .method{padding-top:0}#ok3d-project-politext .method-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px}#ok3d-project-politext .step{border-top:1px solid var(--line);padding-top:22px}#ok3d-project-politext .step>span{font-family:var(--display);color:var(--blue);font-size:13px}#ok3d-project-politext .step h3{font-size:23px;letter-spacing:-.03em;margin-top:22px}#ok3d-project-politext .step p{font-size:14px;color:var(--muted);margin-top:12px;line-height:1.8}\r\n#ok3d-project-politext .contact{border-top:1px solid #ffffff25;background:radial-gradient(ellipse at 0% 100%,#14234d 0,transparent 65%),#0e131f}#ok3d-project-politext .contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px}#ok3d-project-politext .contact h2{font-size:clamp(44px,5vw,76px);margin-bottom:28px}#ok3d-project-politext .contact-intro>p{color:var(--muted);max-width:400px}#ok3d-project-politext .email-link{display:inline-flex;align-items:center;gap:24px;margin-top:34px;font-family:var(--display);font-size:clamp(21px,2.2vw,30px);border-bottom:1px solid #648cff70;padding-bottom:8px}#ok3d-project-politext .contact-note{display:block;margin-top:35px;font-size:13px;color:#aeb9d0}#ok3d-project-politext .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px 22px}#ok3d-project-politext .field{display:flex;flex-direction:column;gap:8px}#ok3d-project-politext .field.full{grid-column:1\/-1}#ok3d-project-politext .field label{font-size:13px;color:#c7cfdf}#ok3d-project-politext .field input,#ok3d-project-politext .field select,#ok3d-project-politext .field textarea{width:100%;border:0;border-bottom:1px solid #ffffff35;border-radius:0;background:transparent;color:var(--text);padding:10px 0 14px;outline-offset:5px;min-width:0;font-size:16px}#ok3d-project-politext .field input::placeholder,#ok3d-project-politext .field textarea::placeholder{color:#838fa7}#ok3d-project-politext .field select{color:#c7cfdf}#ok3d-project-politext .field select option{background:#101622;color:var(--text)}#ok3d-project-politext .field textarea{resize:vertical;min-height:105px}#ok3d-project-politext .form-submit{margin-top:28px;display:flex;align-items:center;gap:24px}#ok3d-project-politext .form-submit small{color:#aeb9d0;font-size:12px}#ok3d-project-politext .form-status{margin-top:14px;font-size:14px;color:#c0cfff}#ok3d-project-politext .form-status.error{color:#ffc1bf}#ok3d-project-politext .honeypot{position:absolute;left:-9999px;opacity:0}#ok3d-project-politext .form-privacy{font-size:12px;color:#9ba8c1;margin-top:18px}\r\n#ok3d-project-politext .video-dialog{background:#080a10;color:var(--text);border:1px solid #ffffff40;width:min(1120px,94vw);max-width:none;padding:0;border-radius:7px;overflow:visible}#ok3d-project-politext .video-dialog::backdrop{background:#02040bec;backdrop-filter:blur(14px)}#ok3d-project-politext .dialog-head{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;gap:20px}#ok3d-project-politext .dialog-head p{font-size:14px}#ok3d-project-politext .dialog-close{border:1px solid var(--line);background:transparent;min-width:40px;min-height:40px;font-size:22px}#ok3d-project-politext .dialog-player{aspect-ratio:16\/9;background:black}#ok3d-project-politext .dialog-player iframe,#ok3d-project-politext .dialog-player video{width:100%;height:100%;border:0;display:block}#ok3d-project-politext .dialog-fallback{font-size:13px;color:var(--muted);padding:13px 20px}#ok3d-project-politext .dialog-fallback a{text-decoration:underline}#ok3d-project-politext .reveal{transition:opacity .65s,transform .65s}#ok3d-project-politext .reveal.pending{opacity:0;transform:translateY(22px)}\r\n@media(min-width:1700px){#ok3d-project-politext .hero-bottom{max-width:1600px;left:50%;transform:translateX(-50%)}}\r\n@media(max-width:1000px){#ok3d-project-politext .hero h1{font-size:clamp(60px,9vw,100px)}#ok3d-project-politext .hero{min-height:820px}#ok3d-project-politext .hero-index{display:none}#ok3d-project-politext .nav{gap:20px}#ok3d-project-politext .about-grid,#ok3d-project-politext .contact-grid{gap:45px}#ok3d-project-politext .service{grid-template-columns:45px 1fr 1.1fr;gap:20px}#ok3d-project-politext .client-list{flex-wrap:wrap;justify-content:center;gap:20px 35px}#ok3d-project-politext .method-grid{grid-template-columns:1fr 1fr}#ok3d-project-politext .clients-inner{gap:25px}#ok3d-project-politext .section{padding-block:85px}#ok3d-project-politext .method{padding-top:0}#ok3d-project-politext .client-list span{font-size:20px}}\r\n@media(max-width:700px){#ok3d-project-politext .header-inner{height:78px}#ok3d-project-politext .logo{font-size:31px}#ok3d-project-politext .header-contact{display:none}#ok3d-project-politext .menu-toggle{display:block}#ok3d-project-politext .nav{display:none;position:absolute;top:78px;left:0;right:0;background:#0b101ded;border-bottom:1px solid var(--line);padding:25px var(--gutter);backdrop-filter:blur(18px);flex-direction:column;align-items:stretch;gap:0}#ok3d-project-politext .nav.open{display:flex}#ok3d-project-politext .nav a{font-size:17px;padding:12px 0}#ok3d-project-politext .hero{min-height:810px;min-height:max(810px,100svh)}#ok3d-project-politext .hero-body{padding-top:156px;padding-bottom:180px}#ok3d-project-politext .hero h1{font-size:clamp(52px,11.4vw,79px);letter-spacing:-.065em}#ok3d-project-politext .hero-copy{font-size:16px;max-width:350px}#ok3d-project-politext .hero .kicker{font-size:11px;letter-spacing:.1em}#ok3d-project-politext .hero-actions{gap:20px;flex-wrap:wrap}#ok3d-project-politext .hero-actions .btn{gap:20px;padding-inline:19px}#ok3d-project-politext .hero::before{background:linear-gradient(90deg,#050811d9,#05081170),linear-gradient(0deg,#080a10,transparent 60%)}#ok3d-project-politext .hero-media video{object-position:60% center;opacity:.75}#ok3d-project-politext .hero-bottom{align-items:center;padding-block:22px;gap:20px}#ok3d-project-politext .hero-signature{display:block;font-size:11px;line-height:1.9}#ok3d-project-politext .hero-signature span{display:block}#ok3d-project-politext .hero-signature span+span{border:0;padding:0}#ok3d-project-politext .hero-controls{gap:16px}#ok3d-project-politext .scroll-link{display:none}#ok3d-project-politext .clients{padding-block:25px}#ok3d-project-politext .clients-inner{display:block}#ok3d-project-politext .clients-label{max-width:none;text-align:center;margin-bottom:20px}#ok3d-project-politext .client-list{gap:18px 25px}#ok3d-project-politext .client-list span{font-size:20px}#ok3d-project-politext .client-list .obvious{font-size:17px}#ok3d-project-politext .section{padding-block:65px}#ok3d-project-politext .section-head{display:block;margin-bottom:30px}#ok3d-project-politext .section-head .text-link{margin-top:25px}#ok3d-project-politext .section-head h2,#ok3d-project-politext .about h2{font-size:43px}#ok3d-project-politext .section-head>p{margin-top:22px}#ok3d-project-politext .project-grid{grid-template-columns:1fr;gap:30px}#ok3d-project-politext .project:first-child{grid-column:auto}#ok3d-project-politext .project:first-child .project-media,#ok3d-project-politext .project-media{aspect-ratio:4\/3}#ok3d-project-politext .project:first-child .project-media img{object-position:center}#ok3d-project-politext .project-info h3{font-size:24px}#ok3d-project-politext .project-label{left:15px;top:15px;font-size:11px}#ok3d-project-politext .project-play{right:15px;bottom:15px;width:44px;height:44px}#ok3d-project-politext .service{grid-template-columns:25px 1fr;gap:14px;padding-block:30px}#ok3d-project-politext .service-description{grid-column:2}#ok3d-project-politext .service h3{font-size:31px}#ok3d-project-politext .service-title small{margin-top:8px}#ok3d-project-politext .service p{font-size:15px}#ok3d-project-politext .about-grid,#ok3d-project-politext .contact-grid{grid-template-columns:1fr;gap:32px}#ok3d-project-politext .about-copy>p{font-size:17px}#ok3d-project-politext .stats{margin-top:35px}#ok3d-project-politext .stat{padding-inline:15px}#ok3d-project-politext .stat strong{font-size:37px}#ok3d-project-politext .stat p{font-size:12px}#ok3d-project-politext .tool-list{gap:12px 20px}#ok3d-project-politext .tool-list>span:first-child{width:100%}#ok3d-project-politext .method{padding-top:0}#ok3d-project-politext .method-grid{gap:28px 22px}#ok3d-project-politext .step h3{font-size:22px}#ok3d-project-politext .step p{font-size:14px}#ok3d-project-politext .contact h2{font-size:53px}#ok3d-project-politext .contact-note{margin-top:23px}#ok3d-project-politext .contact-grid{gap:45px}#ok3d-project-politext .form-grid{gap:24px 18px}#ok3d-project-politext .form-submit{align-items:start;flex-direction:column;gap:12px}#ok3d-project-politext .form-submit .btn{width:100%;justify-content:space-between}#ok3d-project-politext .video-dialog{width:96vw}#ok3d-project-politext .dialog-head{padding:10px 12px}#ok3d-project-politext .dialog-player{aspect-ratio:4\/3}#ok3d-project-politext .dialog-fallback{padding:10px 12px}}\r\n@media(prefers-reduced-motion:reduce){#ok3d-project-politext{scroll-behavior:auto}#ok3d-project-politext *,#ok3d-project-politext *::before,#ok3d-project-politext *::after{animation:none!important;transition:none!important}#ok3d-project-politext .reveal.pending{opacity:1;transform:none}}\r\n\r\n\/* V2 \u2014 trois exp\u00e9riences, une m\u00eame direction artistique. *\/\r\n@keyframes gem-levitate{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}\r\n@keyframes wire-reveal{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}\r\n#ok3d-project-politext .gem-stage.in-view .gem-object{animation:gem-levitate 6s ease-in-out infinite}\r\n#ok3d-project-politext .gem-stage.draw-in .gem-wire .gw{stroke-dasharray:1;animation:wire-reveal 1.8s ease both}\r\n\r\n#ok3d-project-politext .expertise{background:#0b0e16;position:relative;overflow:hidden}#ok3d-project-politext .interactive-services{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}#ok3d-project-politext .experience-card{min-width:0;position:relative;border:1px solid #ffffff20;border-radius:9px;background:linear-gradient(160deg,#141b2b,#0c111d 65%);overflow:hidden;transition:border-color .4s,box-shadow .4s}#ok3d-project-politext .experience-card:hover,#ok3d-project-politext .experience-card:focus-within{border-color:#648cff75;box-shadow:0 20px 55px #0004}#ok3d-project-politext .experience-top{padding:20px 23px;display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:12px;letter-spacing:.08em;color:#b1bed6}#ok3d-project-politext .experience-symbol{font-size:24px;color:#8daaff;line-height:1}#ok3d-project-politext .service-stage{height:315px;position:relative;overflow:hidden;background:radial-gradient(ellipse at 50% 50%,#23346755,transparent 70%);border-block:1px solid #ffffff0b}#ok3d-project-politext .stage-corner{position:absolute;top:14px;left:18px;font-size:10px;letter-spacing:.14em;color:#9caac7;z-index:3}#ok3d-project-politext .gem-stage{background:linear-gradient(#648cff09 1px,transparent 1px),linear-gradient(90deg,#648cff09 1px,transparent 1px),radial-gradient(ellipse at 50% 60%,#263b7255,transparent 70%);background-size:28px 28px,28px 28px,100% 100%}#ok3d-project-politext .gem-object{position:absolute;left:calc(50% - 122px);top:35px;width:244px;height:244px;transform:translateY(0)}#ok3d-project-politext .gem-object svg{display:block;width:244px;height:244px}#ok3d-project-politext .gem-wire{position:absolute;inset:0}#ok3d-project-politext .gem-wire .gw{fill:none;stroke:#8eaafa;stroke-width:.55}#ok3d-project-politext .gem-wire .gv{fill:#b5caff;stroke:#0b101c;stroke-width:.45;r:1.15}#ok3d-project-politext .gem-wire .gs{display:none}#ok3d-project-politext .gem-render{position:absolute;inset:0;clip-path:inset(0 0 0 var(--split));filter:drop-shadow(0 8px 16px #4674ff30)}#ok3d-project-politext .gem-solid .gf-hi{fill:url(#chrome-high)}#ok3d-project-politext .gem-solid .gf-lo{fill:url(#chrome-low)}#ok3d-project-politext .gem-solid .gw{fill:none;stroke:#c0d4ff;stroke-width:.35;opacity:.7}#ok3d-project-politext .gem-solid .gv{display:none}#ok3d-project-politext .compare-line{position:absolute;top:38px;bottom:36px;left:calc(50% - 122px + 244px * var(--split-number,.52));width:1px;background:linear-gradient(transparent,#d5e2ff 20%,#d5e2ff 80%,transparent);pointer-events:none}#ok3d-project-politext .compare-line span{position:absolute;top:50%;left:0;transform:translate(-50%,-50%);width:28px;height:28px;display:grid;place-items:center;border:1px solid #d5e2ff;background:#19284b;border-radius:50%;color:#e4eeff;font-size:14px}#ok3d-project-politext .compare-labels{position:absolute;bottom:15px;left:20px;right:20px;display:flex;justify-content:space-between;color:#8ea1c8;font-size:10px;letter-spacing:.12em}#ok3d-project-politext .experience-control{padding:13px 22px;min-height:65px;border-bottom:1px solid #ffffff14;display:flex;align-items:center;gap:16px}#ok3d-project-politext .experience-control label{font-size:12px;color:#adbad3;white-space:nowrap}#ok3d-project-politext .experience-control input{width:100%;min-width:40px;accent-color:#8aa8ff;cursor:ew-resize;height:24px}#ok3d-project-politext .segmented{justify-content:center;gap:5px}#ok3d-project-politext .segmented button{border:1px solid transparent;background:transparent;padding:6px 16px;border-radius:4px;color:#a7b5cf;font-size:13px;min-height:36px;transition:background .25s,color .25s,border-color .25s}#ok3d-project-politext .segmented button[aria-pressed=\"true\"]{background:#7296ff18;color:#dce7ff;border-color:#89a7ff45}#ok3d-project-politext .segmented button:hover{color:white;background:#7296ff12}#ok3d-project-politext .experience-copy{padding:27px 24px 0}#ok3d-project-politext .experience-copy h3{font-size:clamp(26px,2.55vw,39px);line-height:1.13;letter-spacing:-.055em}#ok3d-project-politext .experience-copy p{font-size:15px;line-height:1.85;color:#a8b5cd;margin-top:20px;min-height:84px}#ok3d-project-politext .experience-copy .tags{gap:6px;min-height:62px;margin-top:18px;align-content:start}#ok3d-project-politext .experience-copy .tags span{font-size:11px;padding:3px 7px;height:max-content}#ok3d-project-politext .experience-link{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #ffffff1c;padding:20px 0;font-size:14px;margin-top:20px}#ok3d-project-politext .experience-link span{font-size:22px;color:#8aa8ff;transition:transform .25s}#ok3d-project-politext .experience-link:hover{color:#9eb8ff}#ok3d-project-politext .experience-link:hover span{transform:translate(3px,-3px)}\r\n#ok3d-project-politext .brand-stage{background:radial-gradient(ellipse at 50% 50%,#3a448333,transparent 65%)}#ok3d-project-politext .brand-symbol{position:absolute;inset:36px 0 20px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:25px;transition:opacity .45s,transform .65s}#ok3d-project-politext .brand-symbol img{width:162px;filter:invert(1) drop-shadow(0 0 28px #739bff40)}#ok3d-project-politext .brand-symbol>span{font-family:var(--display);font-size:18px;letter-spacing:.27em;color:#a8bbdf}#ok3d-project-politext .brand-universe{position:absolute;inset:50px 21px 24px;display:grid;grid-template-columns:1.15fr 1fr;grid-template-rows:1fr 38px .7fr;gap:8px;opacity:0;transform:translateY(20px) scale(.94);transition:opacity .45s,transform .6s;pointer-events:none}#ok3d-project-politext .brand-tile{border-radius:3px;overflow:hidden}#ok3d-project-politext .brand-primary{grid-row:span 3;background:#6389ff;padding:18px;display:flex;flex-direction:column;justify-content:space-between}#ok3d-project-politext .brand-primary img{width:70px}#ok3d-project-politext .brand-primary>span{font-family:var(--display);font-weight:600;font-size:clamp(16px,1.5vw,22px);line-height:1.16;letter-spacing:-.055em;color:#0b1434}#ok3d-project-politext .brand-type{background:#eef1ff;color:#172444;padding:8px 13px;display:flex;align-items:center;justify-content:space-between;gap:7px}#ok3d-project-politext .brand-type strong{font-family:var(--display);font-size:51px;font-weight:500;letter-spacing:-.07em}#ok3d-project-politext .brand-type span{font-size:7px;letter-spacing:.07em;max-width:48px}#ok3d-project-politext .brand-swatches{display:flex;gap:0}#ok3d-project-politext .brand-swatches i{flex:1;background:#648cff}#ok3d-project-politext .brand-swatches i:nth-child(2){background:#b6c8ff}#ok3d-project-politext .brand-swatches i:nth-child(3){background:#e9efff}#ok3d-project-politext .brand-swatches i:nth-child(4){background:#273c6c}#ok3d-project-politext .brand-note{background:#1b2743;padding:11px 14px;font-size:15px;font-family:var(--display);line-height:1.2;letter-spacing:-.025em}#ok3d-project-politext .brand-note span{display:block;font-family:var(--font);font-size:7px;margin-top:10px;letter-spacing:.07em;color:#9baed5}#ok3d-project-politext .brand-stage[data-brand=\"universe\"] .brand-symbol{opacity:0;transform:scale(.78) rotate(-8deg);pointer-events:none}#ok3d-project-politext .brand-stage[data-brand=\"universe\"] .brand-universe{opacity:1;transform:none}#ok3d-project-politext .brand-stage[data-brand=\"universe\"] .brand-tile{animation:brand-arrive .6s both}#ok3d-project-politext .brand-stage[data-brand=\"universe\"] .brand-type{animation-delay:.08s}#ok3d-project-politext .brand-stage[data-brand=\"universe\"] .brand-swatches{animation-delay:.16s}#ok3d-project-politext .brand-stage[data-brand=\"universe\"] .brand-note{animation-delay:.24s}@keyframes brand-arrive{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}\r\n#ok3d-project-politext .web-stage{display:flex;justify-content:center;align-items:center;padding:45px 20px 20px;background:radial-gradient(ellipse at 50% 80%,#25305c70,transparent 75%)}#ok3d-project-politext .demo-browser{width:100%;max-width:355px;border:1px solid #8ca3d655;border-radius:7px;background:#080d17;box-shadow:0 16px 40px #0008;overflow:hidden;transition:width .7s cubic-bezier(.2,.8,.2,1),border-radius .7s}#ok3d-project-politext .demo-chrome{height:23px;display:flex;justify-content:space-between;align-items:center;padding-inline:10px;background:#1b253b;color:#99a8c7;font-size:8px}#ok3d-project-politext .demo-chrome>span:first-child{font-size:6px;letter-spacing:1px;color:#758aaf}#ok3d-project-politext .demo-page{height:202px;overflow:hidden}#ok3d-project-politext .demo-nav{height:33px;padding:0 14px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #ffffff18}#ok3d-project-politext .demo-nav>strong{font-family:var(--display);font-size:14px;letter-spacing:-1px}#ok3d-project-politext .demo-nav>strong span{color:#8aa8ff}#ok3d-project-politext .demo-nav-links{font-size:7px;color:#aab5ca}#ok3d-project-politext .demo-hamburger{display:none;font-size:11px}#ok3d-project-politext .demo-hero{height:143px;position:relative;isolation:isolate;padding:13px 15px}#ok3d-project-politext .demo-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}#ok3d-project-politext .demo-hero::before{content:\"\";position:absolute;inset:0;background:linear-gradient(90deg,#060b16ed,#060b1688);z-index:-1}#ok3d-project-politext .demo-hero>div{display:flex;flex-direction:column;align-items:start}#ok3d-project-politext .demo-hero small{font-size:6px;letter-spacing:.12em;color:#b9c9e9;margin-bottom:7px}#ok3d-project-politext .demo-hero strong{font-family:var(--display);font-size:25px;line-height:.98;letter-spacing:-.07em;font-weight:500}#ok3d-project-politext .demo-hero em{color:#a0b7ff;font-style:normal}#ok3d-project-politext .demo-cta{font-size:6px;background:#527df4;color:#fff;padding:4px 7px;margin-top:9px;border-radius:2px}#ok3d-project-politext .demo-bottom{display:flex;justify-content:space-between;gap:3px;font-size:5px;letter-spacing:.04em;padding:8px 13px;color:#b4c1dc}#ok3d-project-politext .web-stage[data-device=\"mobile\"] .demo-browser{width:142px;border-radius:16px}#ok3d-project-politext .web-stage[data-device=\"mobile\"] .demo-chrome{height:21px;font-size:6px}#ok3d-project-politext .web-stage[data-device=\"mobile\"] .demo-nav-links{display:none}#ok3d-project-politext .web-stage[data-device=\"mobile\"] .demo-hamburger{display:block}#ok3d-project-politext .web-stage[data-device=\"mobile\"] .demo-page{height:220px}#ok3d-project-politext .web-stage[data-device=\"mobile\"] .demo-nav{padding-inline:12px}#ok3d-project-politext .web-stage[data-device=\"mobile\"] .demo-hero{height:161px;padding:17px 12px}#ok3d-project-politext .web-stage[data-device=\"mobile\"] .demo-hero strong{font-size:26px}#ok3d-project-politext .web-stage[data-device=\"mobile\"] .demo-hero small{font-size:5px}#ok3d-project-politext .web-stage[data-device=\"mobile\"] .demo-cta{margin-top:13px}#ok3d-project-politext .web-stage[data-device=\"mobile\"] .demo-bottom{font-size:4px;padding-inline:10px}\r\n#ok3d-project-politext .project-preview{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .55s;background:#0c101a}#ok3d-project-politext .project-preview.visible{opacity:1}#ok3d-project-politext .project-preview iframe{position:absolute;inset:0;width:100%;height:100%;border:0;pointer-events:none}#ok3d-project-politext .project-play,#ok3d-project-politext .project-label{z-index:2}#ok3d-project-politext .project-media .project-label{transition:background .3s}#ok3d-project-politext .project-media.preview-playing .project-label{background:#172b57dc}#ok3d-project-politext .project-media.preview-playing .project-play{background:#537fffaa}#ok3d-project-politext .method-grid{position:relative;--method-progress:0}#ok3d-project-politext .method-grid::before{content:\"\";position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(90deg,#4264c2,#a6bfff);transform:scaleX(var(--method-progress));transform-origin:left;box-shadow:0 0 12px #729cff77;transition:transform .18s linear}#ok3d-project-politext .step{position:relative}#ok3d-project-politext .step::before{content:\"\";position:absolute;top:-4px;left:0;width:7px;height:7px;border-radius:50%;background:#283858;border:1px solid #8095c150;transition:background .35s,box-shadow .35s}#ok3d-project-politext .step.current::before,#ok3d-project-politext .step.passed::before{background:#9dbbff;box-shadow:0 0 14px #739fffaa}#ok3d-project-politext .step h3{transition:color .35s}#ok3d-project-politext .step.current h3{color:#9ab6ff}#ok3d-project-politext .step>span{transition:color .35s}#ok3d-project-politext .step.current>span{color:#c0d1ff}#ok3d-project-politext .hero h1{animation:hero-enter 1.1s cubic-bezier(.2,.8,.2,1) both}#ok3d-project-politext .hero .hero-copy{animation:hero-enter 1.1s .12s both}#ok3d-project-politext .hero .hero-actions{animation:hero-enter 1.1s .24s both}@keyframes hero-enter{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}\r\n@media(min-width:1100px){#ok3d-project-politext .experience-card:hover .brand-symbol{transform:translateY(-5px)}#ok3d-project-politext .experience-card:hover .brand-stage[data-brand=\"universe\"] .brand-symbol{transform:scale(.78) rotate(-8deg)}}\r\n@media(max-width:1100px) and (min-width:701px){#ok3d-project-politext .interactive-services{gap:12px}#ok3d-project-politext .experience-top{padding:17px 15px;font-size:10px;letter-spacing:.035em}#ok3d-project-politext .experience-copy{padding-inline:17px}#ok3d-project-politext .service-stage{height:285px}#ok3d-project-politext .gem-object{top:25px}#ok3d-project-politext .experience-control{padding-inline:12px;gap:8px;flex-wrap:wrap}#ok3d-project-politext .experience-control label{font-size:11px}#ok3d-project-politext .experience-control input{flex:1;min-width:50px}#ok3d-project-politext .segmented button{font-size:11px;padding-inline:10px}#ok3d-project-politext .experience-copy p{font-size:14px;min-height:124px}#ok3d-project-politext .experience-copy .tags{min-height:85px}#ok3d-project-politext .brand-universe{inset:50px 12px 22px;gap:6px;grid-template-columns:1fr 1fr}#ok3d-project-politext .brand-primary{padding:12px}#ok3d-project-politext .brand-primary img{width:50px}#ok3d-project-politext .brand-primary>span{font-size:16px}#ok3d-project-politext .brand-type{padding:9px}#ok3d-project-politext .brand-type strong{font-size:38px}#ok3d-project-politext .brand-type span{display:none}#ok3d-project-politext .brand-note{font-size:12px;padding:10px}#ok3d-project-politext .web-stage{padding-inline:12px}}\r\n@media(max-width:700px){#ok3d-project-politext .interactive-services{grid-template-columns:1fr;gap:24px}#ok3d-project-politext .experience-top{font-size:12px;padding:20px 22px}#ok3d-project-politext .service-stage{height:300px}#ok3d-project-politext .gem-object{top:26px}#ok3d-project-politext .experience-copy{padding:25px 24px 0}#ok3d-project-politext .experience-copy h3{font-size:36px}#ok3d-project-politext .experience-copy p{min-height:0;font-size:16px}#ok3d-project-politext .experience-copy .tags{min-height:0;margin-bottom:24px}#ok3d-project-politext .experience-link{margin-top:20px}#ok3d-project-politext .brand-universe{inset:47px 30px 23px}#ok3d-project-politext .brand-primary>span{font-size:23px}#ok3d-project-politext .brand-type strong{font-size:60px}#ok3d-project-politext .brand-note{font-size:17px}#ok3d-project-politext .web-stage{padding-inline:28px}#ok3d-project-politext .method-grid::before{display:none}#ok3d-project-politext .step.current{border-top-color:#88a8ff}#ok3d-project-politext .experience-control label{font-size:13px}#ok3d-project-politext .segmented button{font-size:14px;min-height:40px}}\r\n@media(prefers-reduced-motion:reduce){#ok3d-project-politext .hero h1,#ok3d-project-politext .hero .hero-copy,#ok3d-project-politext .hero .hero-actions{animation:none}#ok3d-project-politext .experience-card:hover .brand-symbol{transform:none}#ok3d-project-politext .gem-object{transform:none!important}#ok3d-project-politext .method-grid::before{transform:scaleX(1)}}\r\n\r\n\r\n\r\n\r\n\/* =========================================================\r\n   ELEMENTOR \/ HELLO HARDENING \u2014 V2\r\n   Force la typographie, les tailles et les couleurs du design\r\n   m\u00eame si Elementor ou le th\u00e8me applique ses propres styles.\r\n   ========================================================= *\/\r\n#ok3d-project-politext,\r\n#ok3d-project-politext input,\r\n#ok3d-project-politext textarea,\r\n#ok3d-project-politext select,\r\n#ok3d-project-politext button,\r\n#ok3d-project-politext a,\r\n#ok3d-project-politext p,\r\n#ok3d-project-politext span,\r\n#ok3d-project-politext small,\r\n#ok3d-project-politext label,\r\n#ok3d-project-politext strong,\r\n#ok3d-project-politext em {\r\n  font-family: var(--font) !important;\r\n}\r\n\r\n#ok3d-project-politext h1,\r\n#ok3d-project-politext h2,\r\n#ok3d-project-politext h3,\r\n#ok3d-project-politext .logo,\r\n#ok3d-project-politext .client-list span,\r\n#ok3d-project-politext .project-number,\r\n#ok3d-project-politext .service-num,\r\n#ok3d-project-politext .stat strong,\r\n#ok3d-project-politext .step > span,\r\n#ok3d-project-politext .brand-symbol > span,\r\n#ok3d-project-politext .brand-primary > span,\r\n#ok3d-project-politext .brand-type strong,\r\n#ok3d-project-politext .brand-note,\r\n#ok3d-project-politext .demo-nav > strong,\r\n#ok3d-project-politext .demo-hero strong {\r\n  font-family: var(--display) !important;\r\n}\r\n\r\n#ok3d-project-politext { color: var(--text) !important; font-size:16px !important; line-height:1.65 !important; }\r\n#ok3d-project-politext h1,#ok3d-project-politext h2,#ok3d-project-politext h3,#ok3d-project-politext p { margin:0 !important; padding:0; }\r\n#ok3d-project-politext h1,#ok3d-project-politext h2,#ok3d-project-politext h3 { color:var(--text) !important; font-weight:500 !important; text-transform:none !important; }\r\n#ok3d-project-politext p { color:inherit; }\r\n#ok3d-project-politext a { color:inherit !important; text-decoration:none !important; }\r\n#ok3d-project-politext button { color:inherit !important; }\r\n\r\n\/* Header *\/\r\n#ok3d-project-politext .logo { font-size:34px !important; line-height:1 !important; font-weight:700 !important; letter-spacing:-3px !important; color:var(--text) !important; }\r\n#ok3d-project-politext .logo span { color:var(--blue) !important; }\r\n#ok3d-project-politext .nav a { font-size:14px !important; line-height:1.4 !important; color:#c4cad8 !important; font-weight:400 !important; }\r\n#ok3d-project-politext .nav a:hover { color:#fff !important; }\r\n#ok3d-project-politext .header-contact { font-size:14px !important; color:var(--text) !important; }\r\n\r\n\/* Hero *\/\r\n#ok3d-project-politext .hero .kicker { font-size:13px !important; line-height:1.4 !important; letter-spacing:.14em !important; color:#c5cfe6 !important; font-weight:400 !important; }\r\n#ok3d-project-politext .hero h1 { font-size:clamp(60px,7.5vw,116px) !important; line-height:1.02 !important; letter-spacing:-.065em !important; color:var(--text) !important; font-weight:500 !important; }\r\n#ok3d-project-politext .hero h1 em { color:#92acff !important; font-style:normal !important; font-family:var(--display) !important; }\r\n#ok3d-project-politext .hero-copy { font-size:17px !important; line-height:1.8 !important; color:#bdc5d6 !important; font-weight:400 !important; }\r\n#ok3d-project-politext .btn { font-size:14px !important; line-height:1.4 !important; font-weight:700 !important; color:var(--text) !important; }\r\n#ok3d-project-politext .btn-primary { color:#fff !important; }\r\n#ok3d-project-politext .reel-trigger { font-size:14px !important; color:var(--text) !important; }\r\n#ok3d-project-politext .hero-signature { font-size:12px !important; line-height:1.65 !important; color:#b4bed0 !important; }\r\n#ok3d-project-politext .hero-controls,#ok3d-project-politext .scroll-link,#ok3d-project-politext .hero-index { color:#b4bed0 !important; }\r\n#ok3d-project-politext .hero-index { color:#d4ddf0 !important; font-size:12px !important; }\r\n\r\n\/* Clients \/ titres de sections *\/\r\n#ok3d-project-politext .clients-label { font-size:12px !important; line-height:1.7 !important; color:var(--muted) !important; }\r\n#ok3d-project-politext .client-list span { font-size:23px !important; line-height:1.2 !important; font-weight:600 !important; color:#bec3cf !important; }\r\n#ok3d-project-politext .client-list .obvious { font-size:19px !important; }\r\n#ok3d-project-politext .client-list .laposte { font-size:20px !important; }\r\n#ok3d-project-politext .section-head h2,#ok3d-project-politext .about h2,#ok3d-project-politext .contact h2 { font-size:clamp(40px,4.5vw,66px) !important; line-height:1.08 !important; letter-spacing:-.055em !important; color:var(--text) !important; }\r\n#ok3d-project-politext .section-head h2 span { color:var(--muted) !important; font-family:var(--display) !important; }\r\n#ok3d-project-politext .kicker { font-size:13px !important; color:var(--muted) !important; }\r\n\r\n\/* Projets *\/\r\n#ok3d-project-politext .project-label { font-size:12px !important; line-height:1.4 !important; color:var(--text) !important; }\r\n#ok3d-project-politext .project-info h3 { font-size:25px !important; line-height:1.2 !important; letter-spacing:-.045em !important; color:var(--text) !important; }\r\n#ok3d-project-politext .project-info p { font-size:14px !important; line-height:1.65 !important; color:var(--muted) !important; }\r\n#ok3d-project-politext .project-number { font-size:13px !important; color:var(--muted) !important; }\r\n\r\n\/* Expertises *\/\r\n#ok3d-project-politext .experience-top { color:#b1bed6 !important; }\r\n#ok3d-project-politext .experience-copy h3 { color:var(--text) !important; font-size:clamp(26px,2.55vw,39px) !important; line-height:1.13 !important; letter-spacing:-.055em !important; }\r\n#ok3d-project-politext .experience-copy p { font-size:15px !important; line-height:1.85 !important; color:#a8b5cd !important; }\r\n#ok3d-project-politext .tags span { font-size:12px !important; line-height:1.4 !important; color:#c0c7d7 !important; }\r\n#ok3d-project-politext .experience-copy .tags span { font-size:11px !important; }\r\n#ok3d-project-politext .experience-link { font-size:14px !important; color:var(--text) !important; }\r\n#ok3d-project-politext .experience-link:hover { color:#9eb8ff !important; }\r\n#ok3d-project-politext .experience-control label { color:#adbad3 !important; }\r\n#ok3d-project-politext .segmented button { color:#a7b5cf !important; }\r\n#ok3d-project-politext .segmented button[aria-pressed=\"true\"] { color:#dce7ff !important; }\r\n\r\n\/* Studio *\/\r\n#ok3d-project-politext .about-copy > p { font-size:18px !important; line-height:1.9 !important; color:#b6bed0 !important; }\r\n#ok3d-project-politext .about-copy > p + p { font-size:16px !important; color:var(--muted) !important; }\r\n#ok3d-project-politext .signature strong { font-size:16px !important; color:var(--text) !important; }\r\n#ok3d-project-politext .signature small { font-size:13px !important; color:var(--muted) !important; }\r\n#ok3d-project-politext .stat strong { font-size:48px !important; line-height:1.2 !important; font-weight:500 !important; color:var(--text) !important; }\r\n#ok3d-project-politext .stat strong span { color:var(--blue) !important; font-family:var(--display) !important; }\r\n#ok3d-project-politext .stat p { font-size:13px !important; color:var(--muted) !important; }\r\n#ok3d-project-politext .tool-list { font-size:13px !important; color:#c0c7d7 !important; }\r\n#ok3d-project-politext .tool-list > span:first-child { color:var(--muted) !important; }\r\n\r\n\/* M\u00e9thode *\/\r\n#ok3d-project-politext .step > span { font-size:13px !important; color:var(--blue) !important; }\r\n#ok3d-project-politext .step h3 { font-size:23px !important; line-height:1.2 !important; color:var(--text) !important; }\r\n#ok3d-project-politext .step p { font-size:14px !important; line-height:1.8 !important; color:var(--muted) !important; }\r\n\r\n\/* Contact \/ formulaire *\/\r\n#ok3d-project-politext .contact h2 { font-size:clamp(44px,5vw,76px) !important; }\r\n#ok3d-project-politext .contact-intro > p { color:var(--muted) !important; }\r\n#ok3d-project-politext .email-link { font-family:var(--display) !important; font-size:clamp(21px,2.2vw,30px) !important; color:var(--text) !important; }\r\n#ok3d-project-politext .contact-note { font-size:13px !important; color:#aeb9d0 !important; }\r\n#ok3d-project-politext .field label { font-size:13px !important; color:#c7cfdf !important; }\r\n#ok3d-project-politext .field input,#ok3d-project-politext .field select,#ok3d-project-politext .field textarea { font-size:16px !important; line-height:1.4 !important; color:var(--text) !important; background:transparent !important; }\r\n#ok3d-project-politext .field input::placeholder,#ok3d-project-politext .field textarea::placeholder { color:#838fa7 !important; opacity:1 !important; }\r\n#ok3d-project-politext .form-submit small,#ok3d-project-politext .form-privacy { color:#aeb9d0 !important; }\r\n\r\n\/* Footer *\/\r\n#ok3d-project-politext .footer-tagline { font-size:14px !important; color:var(--muted) !important; }\r\n#ok3d-project-politext .footer-bottom { font-size:12px !important; color:var(--muted) !important; }\r\n\r\n\/* Mobile : r\u00e9applique les valeurs originales avec !important *\/\r\n@media(max-width:700px){\r\n  #ok3d-project-politext .logo{font-size:31px !important}\r\n  #ok3d-project-politext .nav a{font-size:17px !important}\r\n  #ok3d-project-politext .hero h1{font-size:clamp(52px,11.4vw,79px) !important}\r\n  #ok3d-project-politext .hero-copy{font-size:16px !important}\r\n  #ok3d-project-politext .hero .kicker{font-size:11px !important}\r\n  #ok3d-project-politext .client-list span{font-size:20px !important}\r\n  #ok3d-project-politext .client-list .obvious{font-size:17px !important}\r\n  #ok3d-project-politext .section-head h2,#ok3d-project-politext .about h2{font-size:43px !important}\r\n  #ok3d-project-politext .project-info h3{font-size:24px !important}\r\n  #ok3d-project-politext .project-label{font-size:11px !important}\r\n  #ok3d-project-politext .experience-copy h3{font-size:36px !important}\r\n  #ok3d-project-politext .experience-copy p{font-size:16px !important}\r\n  #ok3d-project-politext .about-copy>p{font-size:17px !important}\r\n  #ok3d-project-politext .stat strong{font-size:37px !important}\r\n  #ok3d-project-politext .stat p{font-size:12px !important}\r\n  #ok3d-project-politext .step h3{font-size:22px !important}\r\n  #ok3d-project-politext .contact h2{font-size:53px !important}\r\n  \r\n}\r\n\r\n\r\n\r\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\r\n   HEADER + BOUTONS \u2014 finition premium \/ plus vivante\r\n   \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\r\n#ok3d-project-politext .header{\r\n  position:fixed!important;\r\n  top:0;left:0;width:100%;\r\n  z-index:80;\r\n  background:linear-gradient(180deg,rgba(8,10,16,.18),rgba(8,10,16,0));\r\n  border-bottom:1px solid rgba(255,255,255,.12);\r\n  transition:background .35s ease,border-color .35s ease,box-shadow .35s ease,backdrop-filter .35s ease;\r\n}\r\n#ok3d-project-politext .header.is-scrolled{\r\n  background:rgba(8,10,16,.72);\r\n  -webkit-backdrop-filter:blur(18px) saturate(145%);\r\n  backdrop-filter:blur(18px) saturate(145%);\r\n  border-bottom-color:rgba(100,140,255,.22);\r\n  box-shadow:0 10px 34px rgba(0,0,0,.18),0 1px 0 rgba(100,140,255,.06) inset;\r\n}\r\n#ok3d-project-politext .header-inner{transition:height .3s ease}\r\n#ok3d-project-politext .header.is-scrolled .header-inner{height:82px}\r\n\r\n\/* vrai logo : m\u00eame pr\u00e9sence que l'ancien mot-symbole *\/\r\n#ok3d-project-politext .logo{display:flex;align-items:center;flex-shrink:0;line-height:1}\r\n#ok3d-project-politext .logo img{display:block;width:auto;height:34px;max-width:none;object-fit:contain;transition:transform .3s ease,filter .3s ease}\r\n#ok3d-project-politext .logo:hover img{transform:translateY(-1px);filter:drop-shadow(0 0 12px rgba(100,140,255,.16))}\r\n\r\n\/* navigation : soulignement bleu anim\u00e9, tr\u00e8s discret *\/\r\n#ok3d-project-politext .nav a{position:relative;padding:10px 0;transition:color .25s ease}\r\n#ok3d-project-politext .nav a::after{\r\n  content:\"\";position:absolute;left:0;right:0;bottom:3px;height:1px;\r\n  background:linear-gradient(90deg,transparent,var(--blue),transparent);\r\n  transform:scaleX(0);transform-origin:center;opacity:.85;\r\n  transition:transform .28s cubic-bezier(.2,.8,.2,1);\r\n}\r\n#ok3d-project-politext .nav a:hover::after,#ok3d-project-politext .nav a:focus-visible::after{transform:scaleX(1)}\r\n\r\n\/* CTA du header : plus premium sans devenir flashy *\/\r\n#ok3d-project-politext .header-contact{\r\n  position:relative;overflow:hidden;\r\n  border-color:rgba(130,164,255,.38);\r\n  background:linear-gradient(135deg,rgba(100,140,255,.10),rgba(100,140,255,.025));\r\n  box-shadow:inset 0 0 0 1px rgba(255,255,255,.025);\r\n  transition:transform .28s ease,border-color .28s ease,background .28s ease,box-shadow .28s ease;\r\n}\r\n#ok3d-project-politext .header-contact::before{\r\n  content:\"\";position:absolute;inset:-60% auto -60% -35%;width:28%;\r\n  background:linear-gradient(90deg,transparent,rgba(255,255,255,.22),transparent);\r\n  transform:skewX(-18deg) translateX(-220%);transition:transform .65s ease;pointer-events:none;\r\n}\r\n#ok3d-project-politext .header-contact:hover{\r\n  transform:translateY(-1px);\r\n  border-color:rgba(132,166,255,.72);\r\n  background:linear-gradient(135deg,rgba(100,140,255,.17),rgba(100,140,255,.045));\r\n  box-shadow:0 8px 28px rgba(48,78,166,.12),inset 0 0 0 1px rgba(255,255,255,.035);\r\n}\r\n#ok3d-project-politext .header-contact:hover::before{transform:skewX(-18deg) translateX(620%)}\r\n\r\n\/* boutons : plus de mati\u00e8re et micro-mouvement *\/\r\n#ok3d-project-politext .btn{position:relative;overflow:hidden;isolation:isolate;transition:transform .28s ease,border-color .28s ease,background .28s ease,box-shadow .28s ease}\r\n#ok3d-project-politext .btn::before{\r\n  content:\"\";position:absolute;inset:0;z-index:-1;\r\n  background:linear-gradient(110deg,transparent 20%,rgba(255,255,255,.10) 48%,transparent 75%);\r\n  transform:translateX(-130%);transition:transform .55s ease;\r\n}\r\n#ok3d-project-politext .btn:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(0,0,0,.16)}\r\n#ok3d-project-politext .btn:hover::before{transform:translateX(130%)}\r\n#ok3d-project-politext .btn-primary{box-shadow:0 8px 24px rgba(83,127,255,.14)}\r\n#ok3d-project-politext .btn-primary:hover{box-shadow:0 12px 34px rgba(83,127,255,.25)}\r\n#ok3d-project-politext .btn .arrow{transition:transform .3s cubic-bezier(.2,.8,.2,1)}\r\n#ok3d-project-politext .btn:hover .arrow{transform:translate(4px,-4px)}\r\n\r\n\/* lien texte : accent anim\u00e9 au lieu d'un simple changement de couleur *\/\r\n#ok3d-project-politext .text-link{position:relative;border-bottom-color:rgba(255,255,255,.18)}\r\n#ok3d-project-politext .text-link::after{content:\"\";position:absolute;left:0;bottom:-1px;width:100%;height:1px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform .3s ease}\r\n#ok3d-project-politext .text-link:hover::after{transform:scaleX(1)}\r\n\r\n@media(max-width:1000px){\r\n  #ok3d-project-politext .logo img{height:33px}\r\n}\r\n@media(max-width:700px){\r\n  #ok3d-project-politext .logo img{height:31px}\r\n  #ok3d-project-politext .header.is-scrolled .header-inner{height:72px}\r\n  #ok3d-project-politext .header .nav{top:78px}\r\n  #ok3d-project-politext .header.is-scrolled .nav{top:72px}\r\n  #ok3d-project-politext .nav a::after{display:none}\r\n}\r\n@media(prefers-reduced-motion:reduce){\r\n  #ok3d-project-politext .header,#ok3d-project-politext .header-inner,#ok3d-project-politext .logo img,#ok3d-project-politext .nav a::after,#ok3d-project-politext .header-contact,#ok3d-project-politext .header-contact::before,#ok3d-project-politext .btn,#ok3d-project-politext .btn::before{transition:none!important}\r\n}\r\n\r\n#ok3d-project-politext [hidden]{display:none!important}\r\n#ok3d-project-politext [id]{scroll-margin-top:112px}\r\n#ok3d-project-politext{overflow:clip;isolation:isolate}\r\n#ok3d-project-politext .header{background:#080a10b8!important;backdrop-filter:blur(12px)}\r\n#ok3d-project-politext .header .logo img{width:auto!important;height:34px!important;max-width:145px!important}\r\n#ok3d-project-politext .nav{gap:25px}\r\n#ok3d-project-politext .nav a[aria-current=\"page\"]{color:#a8bfff!important}\r\n#ok3d-project-politext .nav a[aria-current=\"page\"]::after{transform:scaleX(1)}\r\n#ok3d-project-politext .header-inner{min-height:82px}\r\n#ok3d-project-politext .menu-toggle{min-height:42px;padding-inline:15px}\r\n#ok3d-project-politext .accent-line{color:#92acff!important;font-family:var(--display)!important}\r\n#ok3d-project-politext .subtext{color:#aebbd2!important;font-size:17px!important;line-height:1.85!important;margin-top:24px!important;max-width:600px}\r\n#ok3d-project-politext .expert-hero{padding:170px 0 70px;position:relative;overflow:hidden;border-bottom:1px solid var(--line);background:radial-gradient(ellipse at 83% 25%,#23376355,transparent 65%)}\r\n#ok3d-project-politext .expert-hero-inner{display:grid;grid-template-columns:1.05fr 1fr;gap:65px;align-items:center}\r\n#ok3d-project-politext .expert-title{font-size:clamp(52px,5.65vw,84px)!important;line-height:1.04!important;letter-spacing:-.065em!important;margin-top:24px!important;overflow-wrap:normal}\r\n#ok3d-project-politext .expert-actions{display:flex;flex-wrap:wrap;gap:15px;align-items:center;margin-top:32px}\r\n#ok3d-project-politext .expert-visual{min-width:0;position:relative;border:1px solid #ffffff25;border-radius:7px;background:#0d1423;overflow:hidden;box-shadow:0 25px 75px #0004}\r\n#ok3d-project-politext .visual-header{display:flex;justify-content:space-between;gap:15px;padding:14px 19px;border-bottom:1px solid #ffffff16;font-size:12px;color:#9eafd0}\r\n#ok3d-project-politext .visual-header span{font-size:12px!important;letter-spacing:.07em}\r\n#ok3d-project-politext .expert-picture{height:405px;position:relative;background:#111828;overflow:hidden;display:flex;align-items:center;justify-content:center}\r\n#ok3d-project-politext .expert-picture img{width:100%;height:100%;object-fit:cover;transition:opacity .3s,transform .7s}\r\n#ok3d-project-politext .expert-picture img.contain{object-fit:contain;padding:25px}\r\n#ok3d-project-politext .visual-tabs{display:flex;flex-wrap:wrap;gap:5px;justify-content:center;border-top:1px solid #ffffff17;padding:12px}\r\n#ok3d-project-politext .visual-tabs button{background:transparent;border:1px solid transparent;border-radius:3px;padding:8px 13px;font-size:13px;min-height:39px;color:#aebeda!important}\r\n#ok3d-project-politext .visual-tabs button[aria-pressed=\"true\"]{background:#6e93ff18;border-color:#91acff42;color:#e2ebff!important}\r\n#ok3d-project-politext .visual-caption{padding:16px 19px;display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:13px;color:#c5d3ed}\r\n#ok3d-project-politext .visual-caption button{background:none;border:0;padding:4px;color:#aac1ff!important;font-size:13px}\r\n#ok3d-project-politext .expert-strip{display:flex;gap:25px;flex-wrap:wrap;padding-top:38px;color:#9aacce;font-size:12px;letter-spacing:.08em}\r\n#ok3d-project-politext .expert-strip span+span{border-left:1px solid #ffffff25;padding-left:25px}\r\n#ok3d-project-politext .section-head h2{margin-top:18px!important}\r\n#ok3d-project-politext .section-head>p{max-width:370px;color:#aebbd2!important;font-size:16px;line-height:1.85}\r\n#ok3d-project-politext .offer-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;border-top:1px solid var(--line)}\r\n#ok3d-project-politext .offer{padding:32px 25px 10px 0;min-width:0}\r\n#ok3d-project-politext .offer .offer-number{font-family:var(--display)!important;color:#90aeff;font-size:13px}\r\n#ok3d-project-politext .offer h3{font-size:29px!important;line-height:1.18!important;letter-spacing:-.045em!important;margin-top:27px!important}\r\n#ok3d-project-politext .offer p{font-size:16px!important;line-height:1.8!important;color:#a7b5ce!important;margin-top:17px!important}\r\n#ok3d-project-politext .offer ul{list-style:none;margin:22px 0 0;padding:0}\r\n#ok3d-project-politext .offer li{border-top:1px solid #ffffff14;padding:9px 0;color:#becbe0;font-size:14px;line-height:1.6}\r\n#ok3d-project-politext .selected-section{background:#0d121d;border-block:1px solid #ffffff18}\r\n#ok3d-project-politext .selected-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px}\r\n#ok3d-project-politext .selected-card{min-width:0;border:1px solid #ffffff1a;border-radius:5px;background:#0a0f19;overflow:hidden;transition:border-color .3s,transform .3s}\r\n#ok3d-project-politext .selected-card:hover{border-color:#8faeff88;transform:translateY(-4px)}\r\n#ok3d-project-politext .selected-card a{display:block;height:100%}\r\n#ok3d-project-politext .selected-media{height:275px;position:relative;background:#151e2e;overflow:hidden}\r\n#ok3d-project-politext .selected-media img{width:100%;height:100%;object-fit:cover;transition:transform .7s}\r\n#ok3d-project-politext .selected-media.contain img{object-fit:contain;padding:24px}\r\n#ok3d-project-politext .selected-card:hover img{transform:scale(1.035)}\r\n#ok3d-project-politext .selected-media span{position:absolute;bottom:15px;right:15px;background:#080e1bc9;border:1px solid #ffffff65;border-radius:50%;width:40px;height:40px;display:grid;place-items:center;color:white}\r\n#ok3d-project-politext .selected-copy{padding:22px}\r\n#ok3d-project-politext .selected-copy small{color:#9bb1d9;font-size:12px;line-height:1.65;display:block}\r\n#ok3d-project-politext .selected-copy h3{font-size:25px!important;line-height:1.2!important;letter-spacing:-.04em!important;margin-top:10px!important}\r\n#ok3d-project-politext .selected-copy p{color:#9eadc6!important;font-size:14px!important;line-height:1.75!important;margin-top:12px!important}\r\n#ok3d-project-politext .approach-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:85px;align-items:start}\r\n#ok3d-project-politext .approach-heading{position:sticky;top:125px}\r\n#ok3d-project-politext .approach-heading h2{font-size:clamp(36px,4vw,56px)!important;line-height:1.09!important;letter-spacing:-.055em!important;margin-top:22px!important}\r\n#ok3d-project-politext .approach-step{display:grid;grid-template-columns:40px 1fr;gap:23px;border-top:1px solid #ffffff24;padding:26px 0}\r\n#ok3d-project-politext .approach-step>span{font-size:13px;color:#8faeff;font-family:var(--display)!important;padding-top:4px}\r\n#ok3d-project-politext .approach-step h3{font-size:25px!important;line-height:1.25!important;letter-spacing:-.035em!important}\r\n#ok3d-project-politext .approach-step p{font-size:15px!important;line-height:1.85!important;color:#a5b5ce!important;margin-top:10px!important}\r\n#ok3d-project-politext .contact h2{margin-top:22px!important;margin-bottom:25px!important}\r\n#ok3d-project-politext .contact-intro>p:not(.kicker){font-size:16px!important;line-height:1.85!important;color:#a9b9d3!important}\r\n#ok3d-project-politext .form-grid{gap:26px 22px}\r\n#ok3d-project-politext .field input,#ok3d-project-politext .field select,#ok3d-project-politext .field textarea{box-shadow:none!important;border:0!important;border-bottom:1px solid #ffffff40!important;border-radius:0!important;padding:12px 0 15px!important;min-height:49px}\r\n#ok3d-project-politext .field textarea{min-height:115px}\r\n#ok3d-project-politext .form-status{margin-top:16px!important;line-height:1.8!important}\r\n#ok3d-project-politext .form-status.error{color:#ffc4c4!important}\r\n#ok3d-project-politext .form-status.success{color:#b6d3ff!important}\r\n#ok3d-project-politext .form-privacy{margin-top:18px!important;font-size:12px!important}\r\n#ok3d-project-politext .form-status a{text-decoration:underline!important}\r\n#ok3d-project-politext .field input::placeholder,#ok3d-project-politext .field textarea::placeholder{color:#96a7c4!important}\r\n#ok3d-project-politext .page-dialog{width:min(1100px,94vw);max-width:none;max-height:91svh;margin:auto;padding:0;border:1px solid #819acc6b;border-radius:7px;overflow:auto;background:#0b111e;color:#edf2ff;box-shadow:0 30px 100px #0009}\r\n#ok3d-project-politext .page-dialog::backdrop{background:#020510ed;backdrop-filter:blur(12px)}\r\n#ok3d-project-politext .dialog-top{position:sticky;top:0;z-index:4;display:flex;justify-content:space-between;align-items:center;gap:20px;background:#0c1220ed;backdrop-filter:blur(18px);border-bottom:1px solid #ffffff20;padding:13px 20px}\r\n#ok3d-project-politext .dialog-top>span{font-size:12px;color:#abbeda;letter-spacing:.1em}\r\n#ok3d-project-politext .close-dialog{border:1px solid #ffffff40;border-radius:3px;background:transparent;width:42px;height:42px;flex-shrink:0;font-size:25px}\r\n#ok3d-project-politext .modal-media{height:min(53svh,540px);background:#080b12;display:flex;align-items:center;justify-content:center}\r\n#ok3d-project-politext .modal-media iframe,#ok3d-project-politext .modal-media img{width:100%;height:100%;object-fit:contain;border:0;display:block}\r\n#ok3d-project-politext .modal-copy{padding:30px 35px}\r\n#ok3d-project-politext .modal-tag{font-size:12px!important;letter-spacing:.08em!important;color:#97b0db!important;text-transform:uppercase}\r\n#ok3d-project-politext .modal-title{font-size:clamp(30px,3.1vw,44px)!important;line-height:1.15!important;letter-spacing:-.045em!important;margin-top:12px!important}\r\n#ok3d-project-politext .modal-desc{font-size:17px!important;line-height:1.85!important;color:#aebed6!important;margin-top:20px!important}\r\n#ok3d-project-politext .modal-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:25px}\r\n#ok3d-project-politext .modal-nav{padding:18px 30px;border-top:1px solid #ffffff20;display:flex;justify-content:space-between;align-items:center;gap:18px}\r\n#ok3d-project-politext .modal-nav button{background:none;border:0;padding:6px 0;color:#b6cbed!important;font-size:14px}\r\n#ok3d-project-politext .modal-nav span{font-size:12px;color:#a4b9da}\r\n#ok3d-project-politext .other-expertises{border-top:1px solid #ffffff1a;padding:28px 0}\r\n#ok3d-project-politext .other-expertises .wrap{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}\r\n#ok3d-project-politext .other-expertises a{font-size:14px;color:#b6c9ed!important;border-bottom:1px solid #7298ff55;padding-bottom:5px}\r\n#ok3d-project-politext .reveal{transition:opacity .75s ease,transform .75s cubic-bezier(.2,.7,.2,1);transition-delay:var(--delay,0ms)}\r\n#ok3d-project-politext .reveal.pending{opacity:0;transform:translateY(20px)}\r\n#ok3d-project-politext .site-demo{padding:20px;width:100%;display:flex;justify-content:center;align-items:center;height:405px;background:radial-gradient(ellipse at 60% 75%,#2b427c66,transparent 75%)}\r\n#ok3d-project-politext .site-window{width:100%;border:1px solid #adc3ee66;border-radius:8px;overflow:hidden;background:#080d18;transition:width .6s cubic-bezier(.2,.8,.2,1),border-radius .6s;box-shadow:0 20px 45px #0007}\r\n#ok3d-project-politext .site-window-bar{height:28px;padding:0 12px;background:#1d2941;display:flex;justify-content:space-between;align-items:center;color:#a7b8d4;font-size:10px}\r\n#ok3d-project-politext .site-window-nav{height:44px;display:flex;align-items:center;justify-content:space-between;padding:0 20px}\r\n#ok3d-project-politext .site-window-nav img{width:65px;height:auto}\r\n#ok3d-project-politext .site-window-nav>span{font-size:9px;color:#b4c2d8}\r\n#ok3d-project-politext .site-window-content{position:relative;isolation:isolate;height:235px;padding:22px;overflow:hidden}\r\n#ok3d-project-politext .site-window-content>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}\r\n#ok3d-project-politext .site-window-content::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#050b17e8,#050b1770);z-index:-1}\r\n#ok3d-project-politext .site-window-content small{font-size:8px;color:#c0cee9;letter-spacing:.08em}\r\n#ok3d-project-politext .site-window-content strong{display:block;font-family:var(--display)!important;font-size:43px;line-height:1.02;letter-spacing:-.065em;margin-top:15px}\r\n#ok3d-project-politext .site-window-content strong em{color:#99b4ff;font-family:var(--display)!important;font-style:normal}\r\n#ok3d-project-politext .site-window-content .mini-cta{display:inline-block;font-size:9px;padding:7px 10px;background:#537fff;border-radius:3px;margin-top:20px}\r\n#ok3d-project-politext .site-demo[data-format=\"mobile\"] .site-window{width:200px;border-radius:18px}\r\n#ok3d-project-politext .site-demo[data-format=\"mobile\"] .site-window-nav{padding-inline:15px}\r\n#ok3d-project-politext .site-demo[data-format=\"mobile\"] .site-window-nav>span{display:none}\r\n#ok3d-project-politext .site-demo[data-format=\"mobile\"] .site-window-content{padding:22px 15px}\r\n#ok3d-project-politext .site-demo[data-format=\"mobile\"] .site-window-content strong{font-size:36px}\r\n#ok3d-project-politext .site-demo[data-format=\"mobile\"] .site-window-nav::after{content:'\u2630';font-size:15px}\r\n#ok3d-project-politext .portfolio-intro{padding:165px 0 65px;border-bottom:1px solid #ffffff20;background:radial-gradient(ellipse at 85% 15%,#23396655,transparent 65%)}\r\n#ok3d-project-politext .portfolio-intro .wrap{display:grid;grid-template-columns:1.35fr 1fr;gap:60px;align-items:end}\r\n#ok3d-project-politext .portfolio-intro h1{font-size:clamp(56px,6.7vw,96px)!important;line-height:1.04!important;letter-spacing:-.065em!important;margin-top:22px!important}\r\n#ok3d-project-politext .portfolio-meta{display:flex;gap:25px;flex-wrap:wrap;border-top:1px solid #ffffff22;padding-top:22px;margin-top:25px;font-size:13px;color:#9fb1d1}\r\n#ok3d-project-politext .portfolio-meta strong{font-family:var(--display)!important;color:#e1ebff;font-size:27px;margin-right:8px}\r\n#ok3d-project-politext .filter-bar{position:sticky;top:82px;z-index:15;border-bottom:1px solid #ffffff1b;background:#080a10ed;backdrop-filter:blur(20px)}\r\n#ok3d-project-politext .filter-inner{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-top:16px;padding-bottom:16px}\r\n#ok3d-project-politext .filters{display:flex;flex-wrap:wrap;gap:5px}\r\n#ok3d-project-politext .filters button{padding:10px 14px;min-height:42px;background:none;border:1px solid transparent;border-radius:4px;color:#a9bad5!important;font-size:14px}\r\n#ok3d-project-politext .filters button span{font-size:11px;opacity:.65;margin-left:8px}\r\n#ok3d-project-politext .filters button[aria-pressed=\"true\"]{background:#7498ff1b;border-color:#759bff66;color:#e0eaff!important}\r\n#ok3d-project-politext .result-count{font-size:12px!important;color:#9eb1d2!important;white-space:nowrap}\r\n#ok3d-project-politext .portfolio-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:30px 24px;padding-top:38px;padding-bottom:75px;align-items:stretch}\r\n#ok3d-project-politext .portfolio-card{grid-column:span 4;min-width:0;border:1px solid #ffffff18;border-radius:6px;background:#0d1320;overflow:hidden;transition:border-color .35s,box-shadow .35s}\r\n#ok3d-project-politext .portfolio-card[data-shape=\"feature\"]{grid-column:span 7}\r\n#ok3d-project-politext .portfolio-card[data-shape=\"portrait\"]{grid-column:span 5}\r\n#ok3d-project-politext .portfolio-card[data-shape=\"full\"]{grid-column:span 12}\r\n#ok3d-project-politext .portfolio-card[data-shape=\"half\"]{grid-column:span 6}\r\n#ok3d-project-politext .portfolio-card:hover{border-color:#81a3ff88;box-shadow:0 15px 50px #0004}\r\n#ok3d-project-politext .portfolio-card>a{display:flex;flex-direction:column;height:100%}\r\n#ok3d-project-politext .p-media{height:280px;position:relative;overflow:hidden;background:#141d2e}\r\n#ok3d-project-politext .portfolio-card[data-shape=\"feature\"] .p-media,#ok3d-project-politext .portfolio-card[data-shape=\"portrait\"] .p-media{height:390px}\r\n#ok3d-project-politext .portfolio-card[data-shape=\"full\"] .p-media{height:430px}\r\n#ok3d-project-politext .p-media img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.8,.2,1)}\r\n#ok3d-project-politext .portfolio-card:hover .p-media img{transform:scale(1.035)}\r\n#ok3d-project-politext .p-kind{position:absolute;top:16px;left:16px;max-width:calc(100% - 32px);font-size:11px;padding:6px 10px;background:#080f20d9;border:1px solid #ffffff30;border-radius:3px;backdrop-filter:blur(12px);color:#d5e2fa;z-index:2}\r\n#ok3d-project-politext .p-open{position:absolute;bottom:16px;right:16px;width:42px;height:42px;border:1px solid #ffffff70;border-radius:50%;display:grid;place-items:center;background:#0b1325ab;backdrop-filter:blur(10px);font-size:24px;transition:transform .3s,background .3s;z-index:2}\r\n#ok3d-project-politext .portfolio-card:hover .p-open{transform:rotate(45deg);background:#547eff}\r\n#ok3d-project-politext .p-film{position:absolute;bottom:22px;left:17px;padding:5px 9px;border-radius:3px;background:#080e1ac9;font-size:11px;color:white}\r\n#ok3d-project-politext .p-copy{padding:23px;flex:1}\r\n#ok3d-project-politext .p-tag{font-size:11px!important;letter-spacing:.07em!important;line-height:1.6!important;text-transform:uppercase;color:#95abd2!important}\r\n#ok3d-project-politext .p-copy h2{font-size:24px!important;line-height:1.22!important;letter-spacing:-.045em!important;margin-top:10px!important}\r\n#ok3d-project-politext .p-copy .p-desc{font-size:14px!important;line-height:1.8!important;color:#a6b6ce!important;margin-top:13px!important}\r\n#ok3d-project-politext .text-card .p-media{display:flex;flex-direction:column;justify-content:center;padding:50px 30px 35px;background:linear-gradient(130deg,#203250,#0c1422);border-bottom:1px solid #ffffff15}\r\n#ok3d-project-politext .type-project{font-family:var(--display)!important;font-size:clamp(34px,3.5vw,54px);line-height:1;letter-spacing:-.065em;color:#baccf0;overflow-wrap:anywhere}\r\n#ok3d-project-politext .type-sub{font-size:12px;letter-spacing:.14em;color:#7f9cc9;margin-top:24px}\r\n#ok3d-project-politext .portfolio-cta{padding:75px 0;background:radial-gradient(ellipse at 90% 100%,#22396166,transparent 65%),#0d1420;border-block:1px solid #ffffff1c}\r\n#ok3d-project-politext .portfolio-cta .wrap{display:flex;justify-content:space-between;gap:40px;align-items:center}\r\n#ok3d-project-politext .portfolio-cta h2{font-size:clamp(36px,4.1vw,60px)!important;line-height:1.12!important;letter-spacing:-.055em!important;margin-top:20px!important}\r\n#ok3d-project-politext .portfolio-cta p:not(.kicker){margin-top:20px!important;color:#b1c1d8!important;line-height:1.8!important;font-size:16px!important}\r\n#ok3d-project-politext .header .nav a{white-space:nowrap}\r\n@media(min-width:1001px){#ok3d-project-politext .header .menu-toggle{display:none}}\r\n@media(max-width:1100px){#ok3d-project-politext .expert-hero-inner{gap:38px}#ok3d-project-politext .expert-title{font-size:clamp(46px,5.5vw,66px)!important}#ok3d-project-politext .expert-picture,#ok3d-project-politext .site-demo{height:350px}#ok3d-project-politext .selected-media{height:230px}#ok3d-project-politext .p-media{height:240px}#ok3d-project-politext .portfolio-card[data-shape=\"feature\"] .p-media,#ok3d-project-politext .portfolio-card[data-shape=\"portrait\"] .p-media{height:330px}#ok3d-project-politext .p-copy{padding:19px}#ok3d-project-politext .p-copy h2{font-size:22px!important}}\r\n@media(max-width:1000px){#ok3d-project-politext .header .nav{display:none;position:absolute;top:94px;left:0;right:0;padding:18px var(--gutter);background:#0c1322f5;border-bottom:1px solid #ffffff25;backdrop-filter:blur(18px);flex-direction:column;align-items:stretch;gap:0}#ok3d-project-politext .header .nav.open{display:flex}#ok3d-project-politext .header .nav a{font-size:17px!important;padding-block:12px}#ok3d-project-politext .header.is-scrolled .nav{top:82px}#ok3d-project-politext .header .menu-toggle{display:block}#ok3d-project-politext .header-contact{display:none}#ok3d-project-politext .expert-hero-inner{grid-template-columns:1fr;gap:42px}#ok3d-project-politext .expert-title{font-size:clamp(52px,8.5vw,80px)!important}#ok3d-project-politext .expert-visual{max-width:690px;width:100%}#ok3d-project-politext .expert-picture,#ok3d-project-politext .site-demo{height:430px}#ok3d-project-politext .offer-grid{gap:20px}#ok3d-project-politext .offer{padding-right:5px}#ok3d-project-politext .offer h3{font-size:25px!important}#ok3d-project-politext .approach-grid{gap:50px}#ok3d-project-politext .portfolio-intro .wrap{gap:35px}#ok3d-project-politext .portfolio-intro h1{font-size:clamp(50px,7vw,72px)!important}}\r\n@media(max-width:800px){#ok3d-project-politext .portfolio-intro .wrap{grid-template-columns:1fr;gap:28px}#ok3d-project-politext .portfolio-intro{padding-top:150px}#ok3d-project-politext .portfolio-intro .subtext{max-width:590px}#ok3d-project-politext .filter-inner{display:block}#ok3d-project-politext .result-count{margin-top:10px!important}#ok3d-project-politext .portfolio-card,#ok3d-project-politext .portfolio-card[data-shape=\"feature\"],#ok3d-project-politext .portfolio-card[data-shape=\"portrait\"],#ok3d-project-politext .portfolio-card[data-shape=\"half\"]{grid-column:span 6}#ok3d-project-politext .portfolio-card[data-shape=\"full\"]{grid-column:span 12}#ok3d-project-politext .portfolio-card .p-media,#ok3d-project-politext .portfolio-card[data-shape] .p-media{height:280px}#ok3d-project-politext .portfolio-card[data-shape=\"full\"] .p-media{height:350px}#ok3d-project-politext .selected-grid{grid-template-columns:1fr 1fr}#ok3d-project-politext .selected-card:last-child{grid-column:span 2}#ok3d-project-politext .selected-card:last-child .selected-media{height:320px}}\r\n@media(max-width:700px){#ok3d-project-politext .header-inner{min-height:72px;height:78px}#ok3d-project-politext .header .logo img{height:31px!important;max-width:132px!important}#ok3d-project-politext .header .nav{top:78px}#ok3d-project-politext .header.is-scrolled .nav{top:72px}#ok3d-project-politext .header .nav a::after{display:none}#ok3d-project-politext .expert-hero{padding-top:130px;padding-bottom:45px}#ok3d-project-politext .expert-title{font-size:clamp(42px,10.6vw,67px)!important}#ok3d-project-politext .subtext{font-size:16px!important;margin-top:22px!important}#ok3d-project-politext .expert-actions{gap:12px}#ok3d-project-politext .expert-actions .btn{padding-inline:19px;gap:20px}#ok3d-project-politext .expert-picture,#ok3d-project-politext .site-demo{height:340px}#ok3d-project-politext .expert-strip{font-size:11px;gap:15px;padding-top:25px}#ok3d-project-politext .expert-strip span+span{padding-left:15px}#ok3d-project-politext .section-head h2{font-size:clamp(34px,10vw,43px)!important}#ok3d-project-politext .section-head>p{margin-top:20px!important}#ok3d-project-politext .offer-grid{grid-template-columns:1fr;gap:0}#ok3d-project-politext .offer{padding:30px 0;border-bottom:1px solid #ffffff18}#ok3d-project-politext .offer h3{font-size:29px!important;margin-top:17px!important}#ok3d-project-politext .selected-grid{display:block}#ok3d-project-politext .selected-card{margin-bottom:22px}#ok3d-project-politext .selected-card .selected-media,#ok3d-project-politext .selected-card:last-child .selected-media{height:280px}#ok3d-project-politext .approach-grid{grid-template-columns:1fr;gap:30px}#ok3d-project-politext .approach-heading{position:static}#ok3d-project-politext .approach-heading h2{font-size:43px!important}#ok3d-project-politext .approach-step{gap:16px}#ok3d-project-politext .form-grid{grid-template-columns:1fr}#ok3d-project-politext .field.full{grid-column:auto}#ok3d-project-politext .contact h2{font-size:clamp(38px,11vw,53px)!important}#ok3d-project-politext .contact-grid{gap:40px}#ok3d-project-politext .page-dialog{width:96vw;max-height:94svh}#ok3d-project-politext .modal-media{height:34svh;min-height:175px}#ok3d-project-politext .modal-copy{padding:25px 22px}#ok3d-project-politext .modal-title{font-size:30px!important}#ok3d-project-politext .modal-desc{font-size:16px!important}#ok3d-project-politext .modal-actions{flex-direction:column}#ok3d-project-politext .modal-nav{padding:14px 18px;gap:12px}#ok3d-project-politext .modal-nav button{font-size:12px}#ok3d-project-politext .dialog-top{padding:10px 15px}#ok3d-project-politext .dialog-top>span{font-size:10px}#ok3d-project-politext .portfolio-intro{padding-top:128px;padding-bottom:40px}#ok3d-project-politext .portfolio-intro h1{font-size:clamp(45px,12vw,68px)!important}#ok3d-project-politext .filter-bar{top:72px}#ok3d-project-politext .filters button{font-size:12px;padding:8px 10px;min-height:38px}#ok3d-project-politext .filter-inner{padding-block:12px}#ok3d-project-politext .portfolio-cta .wrap{align-items:start;flex-direction:column}#ok3d-project-politext .portfolio-cta{padding-block:55px}#ok3d-project-politext .site-window-content strong{font-size:39px}}\r\n@media(max-width:540px){#ok3d-project-politext .portfolio-grid{display:block;padding-top:25px;padding-bottom:40px}#ok3d-project-politext .portfolio-card{margin-bottom:24px}#ok3d-project-politext .portfolio-card .p-media,#ok3d-project-politext .portfolio-card[data-shape] .p-media{height:auto;aspect-ratio:1.22}#ok3d-project-politext .p-copy{padding:23px}#ok3d-project-politext .p-copy h2{font-size:24px!important}#ok3d-project-politext .p-copy .p-desc{font-size:15px!important}#ok3d-project-politext .type-project{font-size:45px}#ok3d-project-politext .portfolio-meta{gap:20px}#ok3d-project-politext .visual-tabs button{font-size:12px;padding-inline:11px}#ok3d-project-politext .visual-caption{padding-inline:15px;gap:10px}#ok3d-project-politext .visual-caption>span{font-size:12px}#ok3d-project-politext .visual-caption button{font-size:12px}#ok3d-project-politext .expert-picture{height:300px}}\r\n@media(max-width:359px){#ok3d-project-politext .expert-title{font-size:40px!important}#ok3d-project-politext .expert-picture,#ok3d-project-politext .site-demo{height:290px}#ok3d-project-politext .visual-header{padding-inline:14px}#ok3d-project-politext .visual-header span{font-size:10px!important}#ok3d-project-politext .site-window-content{padding:18px 14px}#ok3d-project-politext .site-window-content strong{font-size:32px}#ok3d-project-politext .expert-strip{gap:9px}#ok3d-project-politext .expert-strip span+span{padding-left:9px}#ok3d-project-politext .other-expertises .wrap{flex-direction:column}}\r\n@media(prefers-reduced-motion:reduce){#ok3d-project-politext *,#ok3d-project-politext *::before,#ok3d-project-politext *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}#ok3d-project-politext .reveal.pending{opacity:1;transform:none}}\r\n#ok3d-project-politext .case-hero{\r\n  padding:152px 0 0;\r\n  position:relative;\r\n  overflow:hidden;\r\n  isolation:isolate;\r\n  background:#080a10;\r\n}\r\n#ok3d-project-politext .case-hero::before,\r\n#ok3d-project-politext .case-hero::after{\r\n  content:\"\";\r\n  position:absolute;\r\n  z-index:0;\r\n  pointer-events:none;\r\n  border-radius:50%;\r\n}\r\n#ok3d-project-politext .case-hero::before{\r\n  width:94%;\r\n  height:112%;\r\n  right:-25%;\r\n  top:-37%;\r\n  background:radial-gradient(\r\n    ellipse at center,\r\n    rgba(94,127,211,.22) 0%,\r\n    rgba(64,94,169,.13) 30%,\r\n    rgba(33,54,103,.055) 51%,\r\n    transparent 71%\r\n  );\r\n  opacity:.9;\r\n  animation:ok3d-project-halo-primary 28s cubic-bezier(.45,0,.55,1) infinite alternate;\r\n}\r\n#ok3d-project-politext .case-hero::after{\r\n  width:72%;\r\n  height:78%;\r\n  left:-18%;\r\n  bottom:-30%;\r\n  background:radial-gradient(\r\n    ellipse at center,\r\n    rgba(66,100,173,.11) 0%,\r\n    rgba(47,67,131,.055) 34%,\r\n    transparent 70%\r\n  );\r\n  opacity:.66;\r\n  animation:ok3d-project-halo-secondary 36s cubic-bezier(.45,0,.55,1) infinite alternate;\r\n}\r\n#ok3d-project-politext .case-hero>.wrap{\r\n  position:relative;\r\n  z-index:1;\r\n}\r\n@keyframes ok3d-project-halo-primary{\r\n  0%{transform:translate3d(0,0,0) scale(1)}\r\n  50%{transform:translate3d(-6%,7%,0) scale(1.07)}\r\n  100%{transform:translate3d(-12%,2%,0) scale(1.02)}\r\n}\r\n@keyframes ok3d-project-halo-secondary{\r\n  0%{transform:translate3d(0,0,0) scale(.97)}\r\n  50%{transform:translate3d(9%,-8%,0) scale(1.08)}\r\n  100%{transform:translate3d(15%,-3%,0) scale(1.015)}\r\n}\r\n#ok3d-project-politext .case-back{font-size:14px!important;color:#a7b6d1!important;display:inline-flex;gap:14px;margin-bottom:44px}\r\n#ok3d-project-politext .case-heading{display:grid;grid-template-columns:1.3fr 1fr;gap:65px;align-items:end}\r\n#ok3d-project-politext .case-title{font-size:clamp(66px,8.5vw,128px)!important;line-height:.98!important;letter-spacing:-.065em!important;margin-top:22px!important}\r\n#ok3d-project-politext .case-title span{font-family:var(--display)!important;color:#92acff!important}\r\n#ok3d-project-politext .case-lead{font-size:clamp(20px,2.1vw,29px)!important;line-height:1.5!important;letter-spacing:-.02em!important;color:#d5def0!important;max-width:510px;margin-bottom:22px!important}\r\n#ok3d-project-politext .case-summary .text-link{margin-top:12px}\r\n#ok3d-project-politext .case-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;border-top:1px solid #ffffff25;margin-top:50px;padding:26px 0 30px}\r\n#ok3d-project-politext .case-meta dt{font-size:12px;letter-spacing:.11em;text-transform:uppercase;color:#95a5c0;margin-bottom:8px}\r\n#ok3d-project-politext .case-meta dd{margin:0;font-size:14px;line-height:1.7;color:#e0e7f5}\r\n#ok3d-project-politext .case-film{position:relative;margin:0;border:1px solid #ffffff25;border-radius:5px;overflow:hidden;background:#070910}\r\n#ok3d-project-politext .case-film video{display:block;width:100%;height:auto;aspect-ratio:16\/9;object-fit:contain;background:#070910}\r\n#ok3d-project-politext .film-cover{position:absolute;inset:0 0 43px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:18px;width:100%;border:0;background:linear-gradient(0deg,#0407124d,transparent 60%);color:white!important;font-family:var(--font);font-size:15px!important}\r\n#ok3d-project-politext .film-cover .play-ring{width:92px;height:92px;border-radius:50%;display:grid;place-items:center;background:#0b14205c;border:1px solid #ffffffa0;backdrop-filter:blur(13px);font-size:25px;padding-left:4px;transition:transform .35s,background .35s}\r\n#ok3d-project-politext .film-cover:hover .play-ring{transform:scale(1.08);background:#537fffc9}\r\n#ok3d-project-politext .case-film figcaption{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:12px 20px;font-size:12px;line-height:1.5;color:#acb9d0;background:#0e1421}\r\n#ok3d-project-politext .case-film figcaption a{color:#c3d2f2!important;text-decoration:underline}\r\n#ok3d-project-politext .case-video-error{padding:15px 20px;color:#ffc7c7!important;font-size:14px}\r\n#ok3d-project-politext .case-overview{display:grid;grid-template-columns:.9fr 1.25fr;gap:100px;align-items:start}\r\n#ok3d-project-politext .case-h2{font-size:clamp(36px,4.3vw,64px)!important;line-height:1.08!important;letter-spacing:-.055em!important;margin-top:20px!important}\r\n#ok3d-project-politext .case-h2 span{color:#92acff!important;font-family:var(--display)!important}\r\n#ok3d-project-politext .case-copy p{font-size:17px!important;line-height:1.95!important;color:#b0bdd3!important;margin-bottom:22px!important}\r\n#ok3d-project-politext .case-copy p:first-child{font-size:21px!important;line-height:1.7!important;color:#e0e7f6!important}\r\n#ok3d-project-politext .case-challenge{border-left:2px solid #648cff;padding:5px 0 5px 24px;margin-top:35px}\r\n#ok3d-project-politext .case-challenge strong{font-size:12px!important;text-transform:uppercase;letter-spacing:.13em;color:#95b0f1;display:block;margin-bottom:12px}\r\n#ok3d-project-politext .case-challenge p{font-size:17px!important;color:#d4e0f6!important;margin:0!important}\r\n#ok3d-project-politext .case-gallery-section{background:#0d121d;border-block:1px solid #ffffff18}\r\n#ok3d-project-politext .case-gallery{display:grid;grid-template-columns:1.15fr 1fr;gap:24px;align-items:start}\r\n#ok3d-project-politext .case-gallery figure{margin:0;min-width:0}\r\n#ok3d-project-politext .case-gallery figure:nth-child(2){padding-top:100px}\r\n#ok3d-project-politext .case-zoom{position:relative;width:100%;display:block;padding:0;border:1px solid #ffffff25;border-radius:5px;overflow:hidden;background:#11192a;text-align:left}\r\n#ok3d-project-politext .case-zoom img{display:block;width:100%;height:470px;object-fit:cover;transition:transform .7s}\r\n#ok3d-project-politext .case-zoom:hover img{transform:scale(1.035)}\r\n#ok3d-project-politext .case-zoom span{position:absolute;right:18px;bottom:18px;width:44px;height:44px;border-radius:50%;border:1px solid #ffffff88;background:#0a101bb0;backdrop-filter:blur(8px);display:grid;place-items:center;font-size:25px}\r\n#ok3d-project-politext .case-gallery figcaption{display:flex;gap:20px;align-items:baseline;padding:20px 0;font-size:14px;line-height:1.7;color:#b8c7df}\r\n#ok3d-project-politext .case-gallery figcaption small{color:#88a3d5;font-size:12px;font-family:var(--display)!important}\r\n#ok3d-project-politext .case-craft{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:start}\r\n#ok3d-project-politext .case-process{list-style:none;padding:0;margin:0}\r\n#ok3d-project-politext .case-process li{padding:24px 0;border-top:1px solid #ffffff25;display:grid;grid-template-columns:35px 1fr;gap:20px}\r\n#ok3d-project-politext .case-process li>span{font-size:13px;color:#9db8fb;padding-top:5px}\r\n#ok3d-project-politext .case-process h3{font-size:26px!important;letter-spacing:-.035em!important;line-height:1.3!important}\r\n#ok3d-project-politext .case-process p{font-size:16px!important;color:#a9b9d3!important;line-height:1.8!important;margin-top:10px!important}\r\n#ok3d-project-politext .case-delivery{display:grid;grid-template-columns:1fr 1fr;gap:50px;padding:35px 0;border-top:1px solid #ffffff25;margin-top:58px}\r\n#ok3d-project-politext .case-delivery h3{font-size:24px!important;letter-spacing:-.035em!important}\r\n#ok3d-project-politext .case-delivery ul{list-style:none;padding:0;margin:16px 0 0;display:flex;gap:10px;flex-wrap:wrap}\r\n#ok3d-project-politext .case-delivery li{font-size:14px;border:1px solid #ffffff22;background:#648cff08;padding:8px 13px;border-radius:3px;color:#becde5}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n#ok3d-project-politext .case-lightbox{margin:auto;padding:0;border:1px solid #869bc55c;background:#080c16;width:min(1280px,94vw);max-width:none;max-height:94svh;color:#edf2ff;border-radius:5px}\r\n#ok3d-project-politext .case-lightbox::backdrop{background:#020510ed;backdrop-filter:blur(12px)}\r\n#ok3d-project-politext .case-lightbox .lightbox-top{display:flex;justify-content:space-between;align-items:center;padding:12px 18px;gap:20px;border-bottom:1px solid #ffffff22}\r\n#ok3d-project-politext .case-lightbox p{font-size:14px!important;color:#c6d5ee!important}\r\n#ok3d-project-politext .case-lightbox button{min-width:44px;min-height:44px;background:none;border:1px solid #ffffff40;border-radius:3px;color:white;font-size:24px}\r\n#ok3d-project-politext .case-lightbox img{width:100%;height:auto;max-height:78svh;object-fit:contain}\r\n#ok3d-project-politext .case-hero .kicker{color:#a8b8d6!important}\r\n@media(max-width:1000px){#ok3d-project-politext .case-heading{gap:40px;grid-template-columns:1.2fr 1fr}#ok3d-project-politext .case-title{font-size:clamp(65px,9vw,98px)!important}#ok3d-project-politext .case-overview,#ok3d-project-politext .case-craft{gap:45px}#ok3d-project-politext .case-gallery{gap:20px}#ok3d-project-politext .case-zoom img{height:360px}}\r\n@media(max-width:700px){#ok3d-project-politext .case-hero{padding-top:115px}#ok3d-project-politext .case-back{margin-bottom:32px}#ok3d-project-politext .case-heading{grid-template-columns:1fr;gap:25px}#ok3d-project-politext .case-title{font-size:clamp(61px,15vw,95px)!important}#ok3d-project-politext .case-lead{font-size:21px!important;margin-bottom:8px!important}#ok3d-project-politext .case-meta{grid-template-columns:1fr 1fr;margin-top:32px;gap:22px 15px;padding-block:24px}#ok3d-project-politext .case-meta dd{font-size:13px}#ok3d-project-politext .film-cover{inset:0 0 0;bottom:56px;font-size:13px!important;gap:8px}#ok3d-project-politext .film-cover .play-ring{width:55px;height:55px;font-size:19px}#ok3d-project-politext .case-film figcaption{padding:10px 12px;gap:15px;font-size:11px;min-height:56px}#ok3d-project-politext .case-overview,#ok3d-project-politext .case-craft{grid-template-columns:1fr;gap:30px}#ok3d-project-politext .case-h2{font-size:42px!important}#ok3d-project-politext .case-copy p{font-size:16px!important}#ok3d-project-politext .case-copy p:first-child{font-size:19px!important}#ok3d-project-politext .case-gallery{grid-template-columns:1fr;gap:25px}#ok3d-project-politext .case-gallery figure:nth-child(2){padding-top:0}#ok3d-project-politext .case-zoom img{height:auto;aspect-ratio:1.12;object-fit:cover}#ok3d-project-politext .case-delivery{grid-template-columns:1fr;gap:30px;margin-top:30px}#ok3d-project-politext .case-lightbox p{font-size:12px!important}#ok3d-project-politext .case-process li{gap:13px;grid-template-columns:27px 1fr}}\r\n@media(prefers-reduced-motion:reduce){#ok3d-project-politext *,#ok3d-project-politext *::before,#ok3d-project-politext *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}\r\n\r\n\/* MASTER PROJET \u2014 coh\u00e9rence visuelle globale *\/\r\n@media(max-width:700px){\r\n  #ok3d-project-politext .case-hero::before{\r\n    width:145%;\r\n    height:72%;\r\n    right:-62%;\r\n    top:-8%;\r\n    animation-duration:34s;\r\n  }\r\n  #ok3d-project-politext .case-hero::after{\r\n    width:138%;\r\n    height:58%;\r\n    left:-66%;\r\n    bottom:-12%;\r\n    animation-duration:42s;\r\n  }\r\n}\r\n@media(prefers-reduced-motion:reduce){\r\n  #ok3d-project-politext .case-hero::before,\r\n  #ok3d-project-politext .case-hero::after{\r\n    animation:none!important;\r\n    transform:none!important;\r\n  }\r\n}\r\n\r\n\r\n\r\n#ok3d-project-politext .case-film>iframe{display:block;width:100%;aspect-ratio:16\/9;border:0;background:#070910}\r\n#ok3d-project-politext .case-film .case-zoom{position:relative;width:100%;display:block;padding:0;border:0;border-radius:0;overflow:hidden;background:#070910}\r\n#ok3d-project-politext .case-film .project-overview-image{display:block;width:100%;height:clamp(320px,52vw,760px);object-fit:contain;padding:clamp(12px,2vw,30px);background:radial-gradient(ellipse at center,#1b2946,#070910 72%);transition:transform .7s}\r\n#ok3d-project-politext .case-film .case-zoom:hover .project-overview-image{transform:scale(1.018)}\r\n#ok3d-project-politext .case-film .case-zoom>span{position:absolute;right:20px;bottom:20px;width:46px;height:46px;border-radius:50%;border:1px solid #ffffff80;background:#09101dcc;display:grid;place-items:center;font-size:25px}\r\n#ok3d-project-politext .project-empty-visual{min-height:clamp(320px,52vw,760px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:13px;text-align:center;padding:30px;background:linear-gradient(#648cff09 1px,transparent 1px),linear-gradient(90deg,#648cff09 1px,transparent 1px),radial-gradient(ellipse at 65% 32%,#2f467d66,transparent 60%),#090d16;background-size:38px 38px,38px 38px,100% 100%,100% 100%}\r\n#ok3d-project-politext .project-empty-visual small{font-size:10px;letter-spacing:.16em;color:#8ea5cf}\r\n#ok3d-project-politext .project-empty-visual strong{font-family:var(--display)!important;font-size:clamp(46px,7vw,104px);line-height:.95;letter-spacing:-.06em;color:#edf3ff}\r\n#ok3d-project-politext .project-empty-visual span{font-size:13px;color:#98a8c2}\r\n\r\n\r\n#ok3d-project-politext .politext-film-bar{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;margin-bottom:20px}\r\n#ok3d-project-politext .politext-film-bar>a{font-size:12px;color:#b8cbee}\r\n#ok3d-project-politext [data-politext-film-link][hidden]{display:none!important}\r\n#ok3d-project-politext .politext-format-tabs{display:flex;gap:8px}\r\n#ok3d-project-politext .politext-format-tabs button{min-height:44px;padding:10px 18px;border:1px solid #8faadd44;border-radius:4px;background:#111b2e;color:#b4c6e4;font-size:13px;transition:background .25s,border-color .25s}\r\n#ok3d-project-politext .politext-format-tabs button[aria-pressed=true]{background:#253d6a;border-color:#92acff;color:white}\r\n#ok3d-project-politext .politext-film-stage{padding:clamp(15px,3vw,38px);border:1px solid #92acff33;border-radius:6px;background:radial-gradient(ellipse at 50% 35%,#293f644d,#0a101b 70%)}\r\n#ok3d-project-politext .politext-player{position:relative;width:100%;max-width:720px;aspect-ratio:1;margin:auto;background:#090f1b;border:1px solid #ffffff20;overflow:hidden;border-radius:4px;box-shadow:0 20px 55px #0004}\r\n#ok3d-project-politext .politext-player iframe{display:block;position:absolute;inset:0;width:100%;height:100%;border:0}\r\n#ok3d-project-politext .politext-film-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:28px;gap:24px;text-align:center;background:radial-gradient(ellipse,#243b5f,#0c1422 75%)}\r\n#ok3d-project-politext .politext-film-empty>span{color:#9fb9e6;font-size:10px;letter-spacing:.13em}\r\n#ok3d-project-politext .politext-film-empty strong{font-family:var(--display)!important;font-size:clamp(27px,4vw,53px);font-weight:500;letter-spacing:-.05em;line-height:1.1;color:#e6efff}\r\n#ok3d-project-politext .politext-film-empty small{font-size:12px;color:#9bafd0}\r\n#ok3d-project-politext .politext-lineup{margin:0}\r\n#ok3d-project-politext .politext-zoom{position:relative;width:100%;display:block;aspect-ratio:1.55;padding:0;border:1px solid #9ab5e13d;border-radius:5px;overflow:hidden;background:radial-gradient(ellipse,#263959,#0c1422 70%);color:#c9d9f2;text-align:center}\r\n#ok3d-project-politext .politext-zoom:disabled{opacity:1;cursor:default}\r\n#ok3d-project-politext .politext-zoom img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .7s}\r\n#ok3d-project-politext .politext-zoom img[hidden],#ok3d-project-politext .politext-image-empty[hidden]{display:none!important}\r\n#ok3d-project-politext .politext-lineup .politext-zoom{aspect-ratio:2}\r\n#ok3d-project-politext .politext-image-empty{position:absolute;inset:20px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:18px;border:1px dashed #9bb7e43d;padding:20px}\r\n#ok3d-project-politext .politext-image-empty small{font-size:10px;color:#91aad2;letter-spacing:.1em}\r\n#ok3d-project-politext .politext-image-empty strong{font-family:var(--display)!important;font-size:23px;font-weight:500;line-height:1.3;letter-spacing:-.03em}\r\n#ok3d-project-politext .politext-expand{position:absolute;right:18px;bottom:18px;border:1px solid #afc4e988;border-radius:50%;width:42px;height:42px;display:grid;place-items:center;background:#0c172ac9;font-size:25px}\r\n#ok3d-project-politext .politext-zoom:disabled .politext-expand{display:none}\r\n#ok3d-project-politext .politext-lineup figcaption{display:flex;align-items:baseline;gap:28px;padding-top:20px}\r\n#ok3d-project-politext .politext-lineup figcaption small{font-size:10px;letter-spacing:.1em;color:#9bb5df;white-space:nowrap}\r\n#ok3d-project-politext .politext-lineup figcaption p,#ok3d-project-politext .politext-small-caption{color:#a9bedc!important;font-size:14px!important;line-height:1.85!important}\r\n#ok3d-project-politext .politext-focus-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px}\r\n#ok3d-project-politext .politext-focus-grid article{min-width:0;display:flex;flex-direction:column}\r\n#ok3d-project-politext .politext-focus-grid .case-h2{font-size:clamp(32px,3.6vw,52px)!important}\r\n#ok3d-project-politext .politext-focus-copy{color:#b2c3dd!important;font-size:16px!important;line-height:1.85!important;margin:25px 0 30px!important;flex:1}\r\n#ok3d-project-politext .politext-small-caption{margin-top:17px!important}\r\n#ok3d-project-politext .politext-textile-video{position:relative;width:100%;aspect-ratio:1.55;border:1px solid #9ab5e13d;border-radius:5px;overflow:hidden;background:#090f1b}\r\n#ok3d-project-politext .politext-textile-video video{display:block;width:100%;height:100%;object-fit:cover;background:#090f1b}\r\n\r\n@media(hover:hover) and (pointer:fine){#ok3d-project-politext .politext-zoom:not(:disabled):hover img{transform:scale(1.025)}}\r\n@media(max-width:700px){#ok3d-project-politext .politext-focus-grid{grid-template-columns:1fr;gap:50px}#ok3d-project-politext .politext-lineup .politext-zoom{aspect-ratio:1.5}#ok3d-project-politext .politext-lineup figcaption{flex-direction:column;gap:10px}#ok3d-project-politext .politext-image-empty{inset:12px;padding:15px}#ok3d-project-politext .politext-image-empty strong{font-size:20px}#ok3d-project-politext .politext-film-empty{gap:18px;padding:20px}}\r\n@media(prefers-reduced-motion:reduce){#ok3d-project-politext .politext-zoom img,#ok3d-project-politext .politext-format-tabs button{transition:none!important}#ok3d-project-politext .politext-zoom:hover img{transform:none!important}}\r\n\r\n\/* Deux films c\u00f4te \u00e0 c\u00f4te : carr\u00e9 principal et portrait dans un t\u00e9l\u00e9phone. *\/\r\n#ok3d-project-politext .politext-duo{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.56fr);align-items:center;gap:clamp(25px,4vw,60px);max-width:1080px;margin:0 auto;padding:25px 0;background:radial-gradient(ellipse at 65% 45%,#29467433,transparent 70%)}\r\n#ok3d-project-politext .politext-duo figure{margin:0;min-width:0}\r\n#ok3d-project-politext .politext-square-frame{padding:8px;border:1px solid #92acff3d;background:#101a2b;border-radius:10px;box-shadow:0 20px 55px #0004}\r\n#ok3d-project-politext .politext-square-frame .politext-player{aspect-ratio:1;max-width:none;border:0;border-radius:5px;box-shadow:none}\r\n#ok3d-project-politext .politext-phone{padding:8px;border:1px solid #92acff77;background:linear-gradient(150deg,#1c2b44,#090f1a);border-radius:28px;box-shadow:0 25px 65px #0006,0 0 45px #537fff0e}\r\n#ok3d-project-politext .politext-phone .politext-player{aspect-ratio:9\/16;max-width:none;border:0;border-radius:5px 5px 16px 16px;box-shadow:none}\r\n#ok3d-project-politext .politext-phone-top{height:28px;padding:0 10px 6px;display:flex;align-items:center;justify-content:space-between;gap:15px}\r\n#ok3d-project-politext .politext-phone-top>span{height:5px;width:42px;border-radius:5px;background:#435676}\r\n#ok3d-project-politext .politext-phone-top small{font-size:8px;letter-spacing:.15em;color:#8fa9d2}\r\n#ok3d-project-politext .politext-phone-bottom{height:17px;display:grid;place-items:center}\r\n#ok3d-project-politext .politext-phone-bottom span{width:65px;height:3px;border-radius:3px;background:#8196b7}\r\n#ok3d-project-politext .politext-phone .politext-film-empty{padding:20px;gap:25px}\r\n#ok3d-project-politext .politext-phone .politext-film-empty strong{font-size:clamp(24px,2.6vw,36px)}\r\n#ok3d-project-politext .politext-phone .politext-film-empty>span{font-size:9px}\r\n#ok3d-project-politext .politext-duo figcaption{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:22px 2px 0}\r\n#ok3d-project-politext .politext-duo figcaption span{font-size:10px;letter-spacing:.1em;color:#a6c0ee}\r\n#ok3d-project-politext .politext-duo figcaption p{margin-top:7px!important;font-size:13px!important;line-height:1.7!important;color:#afc1df!important}\r\n#ok3d-project-politext .politext-duo figcaption a{font-size:11px;white-space:nowrap;color:#c2d5f6}\r\n#ok3d-project-politext .politext-formats-caption{max-width:1080px;margin:18px auto 0!important;padding-top:20px;border-top:1px solid #ffffff20;color:#a6bad8!important;font-size:14px!important;line-height:1.8!important}\r\n@media(max-width:800px){#ok3d-project-politext .politext-duo{gap:24px}#ok3d-project-politext .politext-duo figcaption{flex-direction:column;gap:8px}#ok3d-project-politext .politext-phone .politext-film-empty{padding:12px;gap:15px}#ok3d-project-politext .politext-phone .politext-film-empty small{font-size:10px}}\r\n@media(max-width:600px){#ok3d-project-politext .politext-duo{grid-template-columns:minmax(0,1fr);gap:38px;padding-top:8px}#ok3d-project-politext .politext-portrait-film{width:min(100%,330px);justify-self:center}#ok3d-project-politext .politext-phone .politext-film-empty strong{font-size:32px}#ok3d-project-politext .politext-duo figcaption{flex-direction:row;gap:12px}#ok3d-project-politext .politext-phone .politext-film-empty small{font-size:12px}}\r\n<\/style>\r\n<script>(()=>{'use strict';const root=document.getElementById('ok3d-project-politext');if(!root||root.dataset.ready)return;root.dataset.ready='true';const $=s=>root.querySelector(s),$$=s=>[...root.querySelectorAll(s)];\r\n$$('[data-year]').forEach(el=>el.textContent=new Date().getFullYear());\r\nconst reduced=matchMedia('(prefers-reduced-motion:reduce)');if('IntersectionObserver'in window&&!reduced.matches){const observer=new IntersectionObserver(entries=>entries.forEach(e=>{if(e.isIntersecting){e.target.classList.remove('pending');observer.unobserve(e.target);}}),{threshold:.06});$$('.reveal').forEach(el=>{el.classList.add('pending');observer.observe(el);});}\r\nconst video=$('video'),cover=$('.film-cover'),error=$('.case-video-error');if(video&&cover){video.controls=true;cover.hidden=false;cover.addEventListener('click',async()=>{cover.hidden=true;try{await video.play();}catch{error.hidden=false;}});video.addEventListener('error',()=>{error.hidden=false;cover.hidden=true;});}\r\nconst dialog=$('dialog'),full=$('[data-full-image]');let opener,previousOverflow='';$$('[data-zoom]').forEach(button=>button.addEventListener('click',()=>{const img=button.querySelector('img');full.src=img.src;full.alt=img.alt;$('[data-image-title]').textContent=img.alt;opener=button;previousOverflow=document.body.style.overflow;document.body.style.overflow='hidden';dialog.showModal();}));$('[data-close]').addEventListener('click',()=>dialog.close());dialog.addEventListener('close',()=>{document.body.style.overflow=previousOverflow;full.removeAttribute('src');opener?.focus({preventScroll:true});});dialog.addEventListener('click',e=>{if(e.target===dialog){const b=dialog.getBoundingClientRect();if(e.clientX<b.left||e.clientX>b.right||e.clientY<b.top||e.clientY>b.bottom)dialog.close();}});\r\n})();\r\n<\/script>\r\n<script>\r\n(()=>{'use strict';const root=document.getElementById('ok3d-project-politext');if(!root||root.dataset.politextReady)return;root.dataset.politextReady='true';\r\n\/* CONFIGURATION \u2014 remplacer les URL entre guillemets.\r\nFormats YouTube accept\u00e9s : youtu.be\/ID, youtube.com\/watch?v=ID, \/shorts\/ID, \/embed\/ID.\r\nDeux lecteurs distincts : carr\u00e9 1:1 et portrait vertical 9:16 dans un cadre de t\u00e9l\u00e9phone.\r\n*\/\r\nconst POLITEXT_MEDIA={\r\n squareYoutube:'https:\/\/youtube.com\/shorts\/5G6xdDWHdZo',\r\n portraitYoutube:'https:\/\/youtube.com\/shorts\/D1wNlpvHiSo?feature=share',\r\n jerseys:'https:\/\/www.ok3d.fr\/wp-content\/uploads\/2026\/09\/politext_t-shirts_3d.webp',\r\n textile:'https:\/\/www.ok3d.fr\/wp-content\/uploads\/2026\/09\/politext_animation_textile_site.mp4',\r\n configurator:'https:\/\/www.ok3d.fr\/wp-content\/uploads\/2026\/09\/Capture-decran-2026-06-06-214050.png'\r\n};\r\nfunction youtubeId(value){try{const u=new URL(value);let id;if(u.hostname==='youtu.be')id=u.pathname.split('\/')[1];else if(\/(^|\\.)youtube(?:-nocookie)?\\.com$\/.test(u.hostname))id=u.searchParams.get('v')||u.pathname.match(\/\\\/(?:embed|shorts|live)\\\/([^\/]+)\/)?.[1];return \/^[a-zA-Z0-9_-]{11}$\/.test(id||'')?id:null;}catch{return null;}}\r\n['square','portrait'].forEach(key=>{\r\n const player=root.querySelector('[data-politext-player=\"'+key+'\"]'),external=root.querySelector('[data-politext-film-link=\"'+key+'\"]');\r\n const value=key==='square'?POLITEXT_MEDIA.squareYoutube:POLITEXT_MEDIA.portraitYoutube;\r\n const id=youtubeId(value);if(!id)return;\r\n const frame=document.createElement('iframe');frame.src='https:\/\/www.youtube-nocookie.com\/embed\/'+id+'?rel=0&playsinline=1';frame.title='Politext \u2014 animation 3D, format '+(key==='square'?'carr\u00e9':'portrait');frame.allow='encrypted-media; fullscreen; picture-in-picture';frame.allowFullscreen=true;frame.referrerPolicy='strict-origin-when-cross-origin';frame.loading='lazy';player.replaceChildren(frame);external.href='https:\/\/www.youtube.com\/watch?v='+id;external.hidden=false;\r\n});\r\n['jerseys'].forEach(key=>{const value=POLITEXT_MEDIA[key].trim();if(!value)return;const button=root.querySelector('[data-politext-image=\"'+key+'\"]'),img=button.querySelector('img'),empty=button.querySelector('.politext-image-empty');img.addEventListener('load',()=>{img.hidden=false;empty.hidden=true;button.disabled=false;});img.addEventListener('error',()=>{img.hidden=true;empty.hidden=false;button.disabled=true;empty.querySelector('small').textContent='VISUEL INDISPONIBLE';});img.src=value;});\r\n})();\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Aller au contenu \u2190 Retour aux projets Projet \/ 3D &amp; motion Politext. Mettre en sc\u00e8ne un configurateur textile et toutes ses possibilit\u00e9s dans une animation 3D pens\u00e9e pour les r\u00e9seaux sociaux. D\u00e9couvrir les films \u2193 Projet Configurateur maillot running Intervention Animation 3D \u00b7 UI \u00b7 Motion Personnalisation 7 couleurs \u00b7 Logos \u00b7 Nom Formats [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":14833,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"class_list":["post-15405","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.ok3d.fr\/en\/wp-json\/wp\/v2\/pages\/15405","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ok3d.fr\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.ok3d.fr\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.ok3d.fr\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ok3d.fr\/en\/wp-json\/wp\/v2\/comments?post=15405"}],"version-history":[{"count":7,"href":"https:\/\/www.ok3d.fr\/en\/wp-json\/wp\/v2\/pages\/15405\/revisions"}],"predecessor-version":[{"id":15417,"href":"https:\/\/www.ok3d.fr\/en\/wp-json\/wp\/v2\/pages\/15405\/revisions\/15417"}],"up":[{"embeddable":true,"href":"https:\/\/www.ok3d.fr\/en\/wp-json\/wp\/v2\/pages\/14833"}],"wp:attachment":[{"href":"https:\/\/www.ok3d.fr\/en\/wp-json\/wp\/v2\/media?parent=15405"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}