:root{--vt-c-white:#fff;--vt-c-white-soft:#f8f8f8;--vt-c-white-mute:#f2f2f2;--vt-c-black:#181818;--vt-c-black-soft:#222;--vt-c-black-mute:#282828;--vt-c-indigo:#2c3e50;--vt-c-divider-light-1:#3c3c3c4a;--vt-c-divider-light-2:#3c3c3c1f;--vt-c-divider-dark-1:#545454a6;--vt-c-divider-dark-2:#5454547a;--vt-c-text-light-1:var(--vt-c-indigo);--vt-c-text-light-2:#3c3c3ca8;--vt-c-text-dark-1:var(--vt-c-white);--vt-c-text-dark-2:#ebebeba3;--color-background:var(--vt-c-white);--color-background-soft:var(--vt-c-white-soft);--color-background-mute:var(--vt-c-white-mute);--color-border:var(--vt-c-divider-light-2);--color-border-hover:var(--vt-c-divider-light-1);--color-heading:var(--vt-c-text-light-1);--color-text:var(--vt-c-text-light-1);--section-gap:160px}@media (prefers-color-scheme:dark){:root{--color-background:var(--vt-c-black);--color-background-soft:var(--vt-c-black-soft);--color-background-mute:var(--vt-c-black-mute);--color-border:var(--vt-c-divider-dark-2);--color-border-hover:var(--vt-c-divider-dark-1);--color-heading:var(--vt-c-text-dark-1);--color-text:var(--vt-c-text-dark-2)}}*,:before,:after{box-sizing:border-box;margin:0;font-weight:400}body{min-height:100vh;color:var(--color-text);background:var(--color-background);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:15px;line-height:1.6;transition:color .5s,background-color .5s}:root{--c-dark:#0c134f;--c-deep:#1d267d;--c-primary:#5c469c;--c-accent:#d4adfc;--bg-primary:#0c134f;--bg-secondary:#1d267d;--bg-glass:#1d267d59;--bg-glass-hover:#1d267da6;--bg-glass-card:#5c469c26;--bg-input:#0c134f99;--text-main:#f8fafc;--text-muted:#e2e8f0;--text-soft:#cbd5e1;--accent-action:#5c469c;--accent-action-hover:#7258b8;--accent-highlight:#d4adfc;--accent-highlight-hover:#e5cdfc;--border-glass:#d4adfc2e;--border-glass-hover:#d4adfc8c;--border-radius:18px;--border-radius-sm:10px;--shadow-glass:0 8px 32px 0 #0c134f73, inset 0 1px 0 0 #d4adfc33;--shadow-hover:0 20px 40px #0c134fb3, 0 0 30px #d4adfc40, inset 0 1px 0 0 #d4adfc66;--shadow-glow:0 0 24px #d4adfc59;--shadow-modal:0 30px 70px #070a28e6, 0 0 40px #5c469c4d;--transition-smooth:.35s cubic-bezier(.2, .8, .2, 1);--transition-fast:.2s cubic-bezier(.2, .8, .2, 1)}:root.light-mode,html.light-mode{--bg-primary:#f6f4fe;--bg-secondary:#fff;--bg-glass:#ffffffb8;--bg-glass-hover:#ffffffeb;--bg-glass-card:#d4adfc26;--bg-input:#ffffffd9;--text-main:#0c134f;--text-muted:#1d267d;--text-soft:#5c469c;--accent-action:#5c469c;--accent-action-hover:#48347f;--accent-highlight:#1d267d;--accent-highlight-hover:#0c134f;--border-glass:#5c469c2e;--border-glass-hover:#5c469c73;--shadow-glass:0 8px 30px 0 #1d267d14, inset 0 1px 0 0 #ffffffe6;--shadow-hover:0 18px 40px #1d267d24, 0 0 25px #d4adfc59, inset 0 1px 0 0 #fff;--shadow-glow:0 0 20px #5c469c40;--shadow-modal:0 25px 60px #0c134f40, 0 0 35px #d4adfc66}html,body{background-color:var(--bg-primary);width:100%;color:var(--text-main);box-sizing:border-box;scroll-behavior:smooth;margin:0;padding:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}#app{flex-direction:column;align-items:center;width:100%;display:flex}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:linear-gradient(180deg, var(--c-deep), var(--c-primary));border:2px solid var(--bg-primary);border-radius:6px}::-webkit-scrollbar-thumb:hover{background:var(--c-accent)}header{-webkit-backdrop-filter:blur(16px);z-index:100;border-bottom:1px solid var(--border-glass);width:100%;transition:all var(--transition-smooth);background:#0c134fa6;padding:14px 0;position:fixed;top:0;left:0;box-shadow:0 4px 20px #0c134f66}.header-content{box-sizing:border-box;justify-content:center;align-items:center;width:100%;max-width:1140px;margin:0 auto;padding:0 24px;display:flex;position:relative}nav ul{justify-content:center;align-items:center;gap:32px;margin:0;padding:0;list-style:none;display:flex}.theme-toggle{background:var(--bg-glass);-webkit-backdrop-filter:blur(10px);border:1px solid var(--border-glass);width:40px;height:40px;color:var(--c-accent);cursor:pointer;transition:all var(--transition-smooth);border-radius:50%;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;right:24px;box-shadow:0 4px 12px #0c134f4d}.theme-toggle:hover{border-color:var(--c-accent);color:#fff;box-shadow:0 0 20px var(--c-accent);background:var(--bg-glass-hover);transform:scale(1.1)rotate(15deg)}.theme-icon{width:20px;height:20px;display:block}@media (width<=768px){nav ul{gap:16px;font-size:.85rem}.theme-toggle{width:36px;height:36px;right:12px}}nav a{color:var(--text-muted);letter-spacing:.02em;border-radius:var(--border-radius-sm);transition:all var(--transition-smooth);padding:8px 14px;font-size:.96rem;font-weight:500;text-decoration:none;position:relative}nav a:after{content:"";background:var(--c-accent);width:0;height:2px;transition:all var(--transition-smooth);box-shadow:0 0 10px var(--c-accent);border-radius:2px;position:absolute;bottom:0;left:50%;transform:translate(-50%)}nav a:hover{color:var(--c-accent);text-shadow:0 0 12px #d4adfc80;background:#d4adfc14}nav a:hover:after{width:65%}.portfolio-container{text-align:center;box-sizing:border-box;flex-direction:column;align-items:center;width:100%;max-width:1140px;margin:0 auto;padding:0 24px;display:flex}section{flex-direction:column;justify-content:center;align-items:center;width:100%;padding:70px 0;display:flex}.banniere{padding-top:140px;padding-bottom:50px}.titre{flex-direction:column;align-items:center;gap:12px;display:flex}.pres{letter-spacing:-.02em;background:linear-gradient(135deg, #fff 40%, var(--c-accent) 100%);-webkit-text-fill-color:transparent;text-shadow:0 0 30px #d4adfc40;transition:transform var(--transition-smooth);-webkit-background-clip:text;margin:0;font-size:3.4rem;font-weight:800}.pres:hover{transform:scale(1.02)}.pres2{color:var(--c-accent);letter-spacing:.05em;text-transform:uppercase;text-shadow:0 0 15px #d4adfc66;margin:0;font-size:1.45rem;font-weight:600}h1,h2,h3{color:var(--text-main);font-weight:700}h2{letter-spacing:-.01em;margin-bottom:30px;font-size:2.2rem;display:inline-block;position:relative}h2:after{content:"";background:linear-gradient(90deg, var(--c-primary), var(--c-accent));width:50px;height:3px;transition:width var(--transition-smooth), box-shadow var(--transition-smooth);border-radius:3px;margin:12px auto 0;display:block;box-shadow:0 0 10px #d4adfc99}h2:hover:after{width:90px;box-shadow:0 0 18px #d4adfce6}.wrapper,.div_cv,.comp,.contact-form,.realisation{background:var(--bg-glass);-webkit-backdrop-filter:blur(16px);border-radius:var(--border-radius);border:1px solid var(--border-glass);box-shadow:var(--shadow-glass);transition:all var(--transition-smooth);position:relative;overflow:hidden}.wrapper{box-sizing:border-box;margin-bottom:40px;padding:44px}.wrapper:hover{border-color:var(--border-glass-hover);box-shadow:var(--shadow-hover)}.wrapper p{max-width:820px;color:var(--text-muted);text-align:center;margin:0 auto 20px;font-size:1.03rem;line-height:1.8}.div_cv{background:#0c134f73;flex-direction:column;align-items:center;margin-top:28px;padding:30px;display:flex}.div_cv:hover{border-color:var(--border-glass-hover);box-shadow:var(--shadow-hover);transform:translateY(-6px)}.div_cv h3{color:var(--text-main);margin-top:0;margin-bottom:16px;font-size:1.35rem}#cv{object-fit:cover;border-radius:var(--border-radius-sm);border:1px solid var(--border-glass);width:250px;height:350px;transition:transform var(--transition-smooth), box-shadow var(--transition-smooth);box-shadow:0 6px 18px #0c134f66}.comp_grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));justify-content:center;gap:22px;width:100%;display:grid}.comp{text-align:center;cursor:default;flex-direction:column;align-items:center;padding:24px 16px;display:flex}.comp:hover{background:var(--bg-glass-hover);border-color:var(--border-glass-hover);box-shadow:var(--shadow-hover);transform:scale(1.02)}.comp h3{color:var(--text-main);margin:0 0 12px;font-size:1.05rem;font-weight:600}.logo-wrapper{border:1px solid var(--border-glass);border-radius:var(--border-radius-sm);box-sizing:border-box;width:74px;height:74px;transition:all var(--transition-smooth);background:#5c469c40;justify-content:center;align-items:center;margin:0 auto 12px;padding:10px;display:flex}.comp:hover .logo-wrapper{border-color:var(--c-accent);background:#5c469c80;transform:scale(1.12);box-shadow:0 0 20px #d4adfc59}.logo{object-fit:contain;filter:drop-shadow(0 4px 8px #00000059);max-width:100%;max-height:100%}.comp p{color:var(--c-accent);letter-spacing:.02em;margin:0;font-size:.85rem;font-weight:600}.reals{grid-template-columns:repeat(auto-fill,minmax(290px,1fr));justify-content:center;gap:28px;width:100%;display:grid}.realisation{cursor:pointer;text-align:center;flex-direction:column;align-items:center;padding:18px;display:flex}.realisation:hover{border-color:var(--c-accent);background:var(--bg-glass-hover);transform:translateY(-10px)scale(1.02);box-shadow:0 22px 48px #0c134fbf,0 0 35px #d4adfc4d}.realisation h3{color:var(--text-main);transition:color var(--transition-smooth);margin:10px 0 14px;font-size:1.15rem;font-weight:600}.realisation:hover h3{color:var(--c-accent);text-shadow:0 0 12px #d4adfc66}.img-wrapper{border-radius:var(--border-radius-sm);border:1px solid var(--border-glass);background:#0c134f80;justify-content:center;align-items:center;width:100%;height:185px;display:flex;overflow:hidden}.img_real{object-fit:cover;width:100%;height:100%;transition:transform .5s cubic-bezier(.2,.8,.2,1);display:block}.realisation:hover .img_real{transform:scale(1.08)}.lien,button[type=submit]{background:linear-gradient(135deg, var(--c-primary) 0%, var(--c-deep) 100%);color:#fff;border-radius:var(--border-radius-sm);border:1px solid var(--border-glass);cursor:pointer;transition:all var(--transition-smooth);padding:13px 28px;font-size:.98rem;font-weight:600;text-decoration:none;display:inline-block;position:relative;overflow:hidden;box-shadow:0 6px 18px #5c469c59}.lien:hover,button[type=submit]:hover{border-color:var(--c-accent);transform:translateY(-3px)scale(1.02);box-shadow:0 12px 28px #5c469c80,0 0 25px #d4adfc66}.lien:active,button[type=submit]:active{transform:translateY(0)scale(.98)}.div_cv .lien,.lien-site{background:var(--c-accent);color:var(--c-dark);border-radius:var(--border-radius-sm);transition:all var(--transition-smooth);border:1px solid #fff6;margin-top:18px;padding:12px 26px;font-weight:700;text-decoration:none;display:inline-block;box-shadow:0 6px 20px #d4adfc59}.div_cv .lien:hover,.lien-site:hover{background:#fff;transform:translateY(-4px)scale(1.03);box-shadow:0 12px 30px #d4adfc99,0 0 20px #ffffff80}.contact-form{box-sizing:border-box;flex-direction:column;align-items:center;gap:16px;width:100%;max-width:520px;margin:0 auto;padding:38px;display:flex}.contact-form:hover{border-color:var(--border-glass-hover);box-shadow:var(--shadow-hover)}.contact-form label{color:var(--text-muted);align-self:flex-start;font-size:.92rem;font-weight:500}.contact-form input,.contact-form textarea{background-color:var(--bg-input);-webkit-backdrop-filter:blur(8px);border:1px solid var(--border-glass);border-radius:var(--border-radius-sm);width:100%;color:var(--text-main);box-sizing:border-box;transition:all var(--transition-smooth);padding:14px 18px;font-family:inherit;font-size:.96rem}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--c-accent);background-color:#0c134fd9;outline:none;transform:translateY(-1px);box-shadow:0 0 20px #d4adfc59}.modal-overlay{z-index:1000;background:#000000b3;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-content{overscroll-behavior:contain;background:var(--c-dark,#1a1a1a);border-radius:12px;width:min(1000px,100%);max-height:90vh;padding:2rem;position:relative;overflow-y:auto}.close-btn{float:right;z-index:10;cursor:pointer;color:inherit;background:0 0;border:none;font-size:2rem;line-height:1;position:sticky;top:0}.modal-content h1,.modal-content h2,.modal-content h3{color:#fff;margin-top:0;margin-bottom:18px}.modal-content .wrapper{box-shadow:none;background:0 0;border:none;flex-direction:column;align-items:center;width:100%;margin:0;padding:0;display:flex}.modal-content p{color:var(--text-muted);text-align:left;max-width:780px;margin:18px auto;font-size:1.02rem;line-height:1.8}.close-btn:hover{color:#fff;text-shadow:0 0 15px #d4adfccc;transform:rotate(90deg)scale(1.15)}.modal-content img,.img{border-radius:var(--border-radius-sm);max-width:100%;height:auto;box-shadow:var(--shadow-glass);border:1px solid var(--border-glass);transition:transform var(--transition-smooth), box-shadow var(--transition-smooth);margin:16px auto;display:block}.modal-content img:hover,.img:hover{border-color:var(--c-accent);transform:translateY(-4px)scale(1.015);box-shadow:0 16px 36px #0c134f99,0 0 25px #d4adfc4d}.img-hero{object-fit:cover;border-radius:var(--border-radius-sm);width:100%;max-height:480px}.img-poster{object-fit:contain;width:auto;max-width:100%;max-height:480px}.img_moodboard{border-radius:var(--border-radius-sm);max-width:100%;height:auto;box-shadow:var(--shadow-glass);border:1px solid var(--border-glass);margin:20px auto;display:block}.img-logo{object-fit:contain;border:1px solid var(--border-glass);border-radius:var(--border-radius-sm);width:auto;max-width:160px;height:auto;max-height:160px;box-shadow:none;transition:transform var(--transition-smooth);background:#0c134f80;margin:0 auto 16px;padding:12px}.img-logo:hover{transform:scale(1.08)rotate(-2deg)}.image-figure{flex-direction:column;align-items:center;width:100%;margin:0;display:flex}.image-caption{color:var(--c-accent);text-align:center;margin-top:8px;margin-bottom:12px;font-size:.85rem;font-weight:500}.images-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;width:100%;margin:18px 0;display:grid}.images-grid .img,.images-grid .image-figure .img{object-fit:cover;width:100%;height:180px;margin:0}.images-grid-3{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:18px;width:100%;margin:18px 0;display:grid}.images-grid-3 .img,.images-grid-3 .image-figure .img{object-fit:cover;width:100%;height:200px;margin:0}.images-compare{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;width:100%;margin:18px 0;display:grid}.images-compare .img{object-fit:cover;width:100%;height:220px;margin:0}.modal-content video,#trailer,.media-video{border-radius:var(--border-radius-sm);width:100%;max-width:100%;height:auto;box-shadow:var(--shadow-glass);border:1px solid var(--border-glass);margin:18px auto;display:block}.footer{width:100%;color:var(--text-soft);text-align:center;border-top:1px solid var(--border-glass);margin-top:40px;padding:48px 0;font-size:.9rem}html.light-mode header{background:#ffffffc7;border-bottom:1px solid #5c469c26;box-shadow:0 4px 20px #1d267d14}html.light-mode .pres{background:linear-gradient(135deg,#0c134f 40%,#5c469c 100%);-webkit-text-fill-color:transparent;text-shadow:none;-webkit-background-clip:text}html.light-mode .pres2{color:#5c469c;text-shadow:none}html.light-mode nav a{color:#1d267d}html.light-mode nav a:hover{color:#5c469c;text-shadow:none;background:#5c469c14}html.light-mode nav a:after{background:#5c469c;box-shadow:0 0 8px #5c469c66}html.light-mode .theme-toggle{color:#5c469c;background:#ffffffd9;border-color:#5c469c33;box-shadow:0 4px 12px #5c469c1f}html.light-mode .theme-toggle:hover{color:#0c134f;background:#fff;border-color:#5c469c;box-shadow:0 0 16px #5c469c59}html.light-mode .div_cv{background:#fff9}html.light-mode .div_cv .lien,html.light-mode .lien-site{color:#fff;background:linear-gradient(135deg,#5c469c 0%,#1d267d 100%);border-color:#5c469c4d}html.light-mode .div_cv .lien:hover,html.light-mode .lien-site:hover{color:#fff;background:#0c134f;box-shadow:0 10px 25px #1d267d59}html.light-mode .realisation h3{color:#0c134f}html.light-mode .realisation:hover h3{color:#5c469c}html.light-mode .modal-content{color:#0c134f;background:#fffffff2;border-color:#5c469c4d}html.light-mode .modal-content h1,html.light-mode .modal-content h2,html.light-mode .modal-content h3{color:#0c134f}html.light-mode .modal-content p{color:#1d267d}html.light-mode .close-btn{color:#5c469c}html.light-mode .close-btn:hover{color:#0c134f;text-shadow:none}html.light-mode .logo-wrapper{background:#5c469c14;border-color:#5c469c26}html.light-mode .comp:hover .logo-wrapper{background:#5c469c26;border-color:#5c469c}html.light-mode .contact-form input,html.light-mode .contact-form textarea{color:#0c134f;background-color:#ffffffd9;border-color:#5c469c33}html.light-mode .contact-form input:focus,html.light-mode .contact-form textarea:focus{background-color:#fff;border-color:#5c469c;box-shadow:0 0 16px #5c469c40}html.light-mode .img-wrapper{background:#d4adfc26;border-color:#5c469c26}html.light-mode .footer{color:#5c469c;border-color:#5c469c26}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{background-color:var(--bg-primary,#0c134f);width:100%;min-width:100vw;min-height:100vh;color:var(--text-main,#f8fafc);background-image:radial-gradient(circle at 15% 15%,#5c469c66 0%,#0000 45%),radial-gradient(circle at 85% 20%,#1d267d80 0%,#0000 50%),radial-gradient(circle at 75% 70%,#d4adfc2e 0%,#0000 45%),radial-gradient(circle at 20% 80%,#5c469c59 0%,#0000 45%);background-attachment:fixed;font-family:Inter,system-ui,-apple-system,sans-serif;transition:background-color .35s,color .35s;overflow-x:hidden}html.light-mode body{color:#0c134f;background-color:#f6f4fe;background-image:radial-gradient(circle at 15% 15%,#d4adfc8c 0%,#0000 45%),radial-gradient(circle at 85% 20%,#5c469c26 0%,#0000 50%),radial-gradient(circle at 75% 70%,#1d267d1a 0%,#0000 45%),radial-gradient(circle at 20% 80%,#d4adfc66 0%,#0000 45%)}#app{flex-direction:column;align-items:center;width:100%;display:flex;max-width:100%!important;margin:0!important;padding:0!important}.stage-stack[data-v-0e9b0348]{flex-wrap:wrap;justify-content:center;gap:20px;margin:16px 0 20px;display:flex}.stack-badge[data-v-0e9b0348]{border-radius:var(--border-radius-sm);color:var(--text-main);background:#ffffff0a;border:1px solid #ffffff1a;align-items:center;gap:10px;padding:8px 16px;font-size:.95rem;font-weight:600;display:flex}.img-logo-sm[data-v-0e9b0348]{object-fit:contain;width:26px;height:26px;box-shadow:none;border:none;margin:0}
