/* VISUNERA V16 — orbites de la marque, effets locaux, lecteur de taille maîtrisée. */
:root{--ice:#bbf4ff;--silver:#e0e7f4;--violet:#a990ff;--accent:#d2f99a}
body .header,body .hero,body .section,body footer{--pad:max(26px,calc((100vw - 1320px)/2));padding-left:var(--pad);padding-right:var(--pad)}
body{background:#070b12}.reading-progress{position:fixed;left:0;top:0;width:100%;height:3px;z-index:90;transform:scaleX(0);transform-origin:left;background:linear-gradient(90deg,#ab8bff,#b7f5ff,#d2f99a);pointer-events:none;box-shadow:0 0 12px #b7f5ff66}
.header{height:105px;background:#080c13e8;border-bottom:1px solid #b7cef024;gap:28px}
.brand{flex:none}.official-logo{display:block;position:relative;width:122px;height:84px;overflow:hidden;isolation:isolate}
.official-logo img{position:absolute;top:-15px;left:0;width:122px;height:122px;max-width:none;mix-blend-mode:screen}
.header nav{font-size:13px;gap:24px}.header nav a{position:relative;padding-block:13px;color:#c5cfdf}.header nav a:after{content:'';height:1px;background:#b7f5ff;box-shadow:0 0 9px #b7f5ff;position:absolute;bottom:4px;left:0;right:0;transform:scaleX(0);transform-origin:left;transition:transform .25s}.header nav a:hover:after,.header nav a[aria-current=location]:after{transform:scaleX(1)}
.header-cta{border-radius:3px;border-color:#749098;min-height:44px;display:inline-flex;align-items:center;background:linear-gradient(120deg,#b7f5ff09,#c3abff08)}
body .hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,600px);column-gap:clamp(35px,5vw,80px);align-items:center;min-height:690px;padding-top:55px;padding-bottom:94px;isolation:isolate;background:radial-gradient(ellipse at 77% 50%,#40366e3a,transparent 60%),#070b12!important}
.hero:before{display:none}.hero-copy{z-index:3}.hero h1{font-size:clamp(48px,5.25vw,78px);line-height:1.01;letter-spacing:-.065em;filter:none;margin:25px 0}
.hero h1 em{color:#d2f99a;background:linear-gradient(105deg,#d7ffc0 6%,#b8efff 42%,#bea5ff 62%,#d7ffc0 92%);background-size:250% 100%;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;text-shadow:none}
.hero .eyebrow{font:10px/1.7 monospace;letter-spacing:1.4px;max-width:440px}.hero-description{max-width:470px;font-size:17px;line-height:1.7;color:#c7d6e7}.hero-description strong{font-size:14px;font-weight:400;display:block;margin-top:10px;color:#b0c3d6}
.hero-actions{margin-top:28px;gap:22px}.hero-actions .button{font-size:13px;background:#d8f9c0;box-shadow:0 0 24px #cafa7810}.button-light{position:relative;overflow:hidden}.button-light:before{content:'';position:absolute;inset:-100% -30%;transform:translateX(-110%) rotate(25deg);background:linear-gradient(90deg,transparent,#ffffff77,transparent);pointer-events:none}
.hero-actions .text-link{font-size:13px;border-color:#6b8794}
.hero-disciplines{display:flex;gap:19px;flex-wrap:wrap;margin-top:34px;padding-top:19px;border-top:1px solid #8298b42c;max-width:490px}.hero-disciplines a{display:flex;gap:6px;align-items:center;min-height:35px;font:9px monospace;color:#9b88cf}.hero-disciplines span{font:11px Arial,sans-serif;color:#c0cee0}.hero-disciplines a:hover span{color:#cefab0}
.hero-bottom{bottom:22px;z-index:4}.motion-toggle{background:#0b1220b3;border-color:#60728a;min-height:44px;color:#d4ddeb}.hero-bottom>a{font-size:9px;color:#b8cce0}
.hero-cinema{width:100%;max-width:600px;justify-self:end;position:relative;padding:0;margin:0;z-index:3;transform:none}
.cinema-top{font-size:9px;letter-spacing:1px;padding:12px 0;color:#b8ccdf}.cinema-frame{width:100%;max-width:600px;aspect-ratio:16/9;min-height:210px;border-radius:5px;border:1px solid #b9c5e076;box-shadow:0 22px 60px #0009,0 0 0 5px #a5bbdb05,0 0 45px #9d82f928;background:#020408}
.cinema-caption{padding:18px 0 12px;gap:20px}.cinema-caption h2{font-size:29px;letter-spacing:-.8px}.cinema-caption .eyebrow{font-size:8px;margin-bottom:9px}.cinema-project{font-size:11px}.film-status{font-size:11px;color:#b8c8db;min-height:0;max-width:580px}.film-controls{gap:7px}.film-controls button{background:#15212cc7;font-size:11px;border-radius:3px}
.film-poster{background:#000}.film-poster img{object-fit:contain;filter:none}.film-play{top:auto;left:19px;bottom:15px;transform:none;width:40px;height:40px;font-size:12px;box-shadow:0 0 18px #c5edff2e;background:#121926d9;border-color:#d3ebdd}.film-poster-caption{inset:auto 15px 26px 74px;text-align:left;font-size:9px;letter-spacing:1.2px}.film-poster:hover .film-play{box-shadow:0 0 25px #b7f5ff6b;background:#22342c}
.cinema-corner{position:absolute;width:23px;height:23px;pointer-events:none;border-color:#b7f5ff;filter:drop-shadow(0 0 5px #b7f5ff77)}.corner-a{top:22px;left:-11px;border-top:1px solid;border-left:1px solid}.corner-b{right:-11px;top:calc(337.5px + 42px);border-bottom:1px solid;border-right:1px solid}
/* Orbital identity. All moving layers are opt-in through the existing motion control. */
.future-horizon{position:absolute;inset:0;opacity:1;z-index:0;pointer-events:none;overflow:hidden;contain:paint}.future-horizon:before,.future-horizon:after{display:none}
#constellation{position:absolute;inset:0;width:100%;height:100%;opacity:.85}
.nebula{position:absolute;width:650px;height:650px;border-radius:50%;pointer-events:none;background:radial-gradient(ellipse,#8062e146 0%,#5345921c 38%,transparent 70%);transform:translate3d(0,0,0);will-change:transform}
.nebula-one{top:-160px;right:0}.nebula-two{width:620px;height:620px;bottom:-370px;right:20%;background:radial-gradient(ellipse,#8cdbdf38,transparent 65%)}
.orbital-scene{position:absolute;right:max(0px,calc((100vw - 1400px)/2));top:50%;width:min(790px,65vw);height:620px;transform:translate3d(var(--orbit-x,0px),calc(-50% + var(--orbit-y,0px)),0);transition:transform 1.2s cubic-bezier(.16,1,.3,1);perspective:1100px}
.orbit{position:absolute;left:3%;top:9%;width:94%;height:82%;border:1px solid #c5e6fb47;border-radius:50%;transform-style:preserve-3d;box-shadow:0 0 26px #b7d8ff11,inset 0 0 22px #b7d8ff08}
.orbit:before{content:'';position:absolute;inset:-2px;border-radius:inherit;border:2px solid transparent;border-top-color:#c2eaffba;border-right-color:#c2eaff10;filter:drop-shadow(0 0 7px #b7f5ff80)}
.orbit:after{content:'';position:absolute;left:50%;top:-4px;width:6px;height:6px;border-radius:50%;background:#dcf8ff;box-shadow:0 0 14px #b7f5ff,0 0 26px #b7f5ff99}
.orbit-one{transform:rotateZ(-24deg) rotateX(65deg) scale(1.2)}.orbit-two{transform:rotateZ(38deg) rotateY(62deg) scale(1.04);border-color:#ba9fff50}.orbit-two:before{border-top-color:#b79affaa;filter:drop-shadow(0 0 8px #b99bff99)}.orbit-three{transform:rotateZ(-44deg) rotateY(63deg) scale(1.22);border-style:dashed;border-color:#a7bada36}.orbit-three:after{background:#d4ffc0;box-shadow:0 0 18px #cefab0}
.orbit-core{position:absolute;inset:12%;border-radius:50%;background:radial-gradient(circle,#a994ff12,transparent 65%)}
.horizon-grid{position:absolute;left:22%;right:-12%;bottom:-140px;height:390px;background-image:linear-gradient(#b5c5ff1c 1px,transparent 1px),linear-gradient(90deg,#b5c5ff1c 1px,transparent 1px);background-size:62px 62px;transform:perspective(450px) rotateX(57deg);mask-image:linear-gradient(transparent,#000 45%,transparent)}
.light-trace{position:absolute;top:0;bottom:0;width:1px;left:50%;background:linear-gradient(transparent,#b7f5ff88 40%,transparent 65%);opacity:.35;transform:rotate(28deg);box-shadow:0 0 14px #b7f5ff44}
.motion-on .orbit:before,.motion-on .orbit:after{animation:orbital-turn 19s linear infinite}.motion-on .orbit-two:before,.motion-on .orbit-two:after{animation-duration:27s;animation-direction:reverse}.motion-on .orbit-three:after{animation-duration:34s}.motion-on .orbit:after{offset-path:border-box;offset-distance:0%;animation-name:orbital-satellite}
.motion-on .nebula-one{animation:nebula-drift 14s ease-in-out infinite alternate}.motion-on .nebula-two{animation:nebula-drift 19s ease-in-out infinite alternate-reverse}.motion-on .horizon-grid{animation:grid-flight 18s linear infinite}.motion-on .light-trace{animation:trace-travel 14s ease-in-out infinite}.motion-on .hero h1 em{animation:title-spectrum 12s ease-in-out infinite}.motion-on .hero-actions .button-light:before{animation:button-shine 9s ease-in-out infinite}
.project-visual{border-color:#89a6c85c;transition:transform .35s,border-color .35s,box-shadow .35s;transform-style:preserve-3d}
.project-visual:before{content:'';position:absolute;inset:0;z-index:6;pointer-events:none;opacity:0;background:radial-gradient(circle at var(--shine-x,50%) var(--shine-y,30%),#e0f4ff3d,transparent 54%);transition:opacity .3s;mix-blend-mode:soft-light}.project-visual:hover:before{opacity:1}.project-visual:hover{border-color:#bcf3ff91;box-shadow:0 25px 70px #0008,0 0 25px #b4a0ff26}
.section{position:relative}.section:after{content:'';position:absolute;top:0;left:var(--pad);right:var(--pad);height:1px;background:linear-gradient(90deg,transparent,#a5b0d550,transparent);pointer-events:none}
.section-top .eyebrow{color:#b7d1e3}.service-list details[open]{background:linear-gradient(90deg,#a990ff0b,transparent);padding-inline:12px}.service-list summary:hover h3{color:#c4edff}.trust.trust-compact{background:radial-gradient(ellipse at 10% 100%,#5d49802c,transparent 70%),#101820}
.footer-signature{display:grid;grid-template-columns:1.1fr 1fr;gap:60px;align-items:center;padding:5px 0 55px}.footer-signature>img{width:100%;max-width:620px;mix-blend-mode:screen}.footer-invitation{font-size:clamp(30px,3.1vw,47px);line-height:1.15;letter-spacing:-1.7px;margin:15px 0 20px}.footer-invitation em{font-style:normal;color:#bfaafa}.footer-signature .text-link{font-size:13px}.footer-line{font-size:11px;color:#aebfd1}
.privacy-page .privacy-header{padding-block:12px}.privacy-page .official-logo{width:122px;height:84px}
@keyframes orbital-turn{to{transform:rotate(360deg)}}
@keyframes orbital-satellite{to{offset-distance:100%}}
@keyframes nebula-drift{to{transform:translate3d(-65px,45px,0) scale(1.18)}}
@keyframes grid-flight{to{background-position:0 124px}}
@keyframes trace-travel{0%,100%{left:52%;opacity:0}20%,70%{opacity:.35}85%{left:98%;opacity:0}}
@keyframes title-spectrum{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
@keyframes button-shine{0%,65%{transform:translateX(-110%) rotate(25deg)}90%,100%{transform:translateX(110%) rotate(25deg)}}
@keyframes reveal-v16{from{opacity:.2;transform:translate3d(0,28px,0)}to{opacity:1;transform:translate3d(0,0,0)}}
.motion-on .reveal-arrival{animation:reveal-v16 .8s cubic-bezier(.16,1,.3,1) both}
.motion-off *, .motion-off *:before,.motion-off *:after,.page-inactive *, .page-inactive *:before,.page-inactive *:after{animation-play-state:paused!important}
.motion-off .project-visual,.motion-off .project-visual .portfolio-browser{transform:none!important}.motion-off .orbital-scene{transform:translateY(-50%);transition:none}
@media(min-width:1800px){body .hero{min-height:720px}.hero h1{font-size:78px}}
@media(max-width:1100px){body .hero{grid-template-columns:minmax(0,1fr) minmax(0,500px);gap:30px;min-height:660px}.hero h1{font-size:52px}.hero-description{font-size:15px}.hero-disciplines{gap:12px}.hero-actions{gap:14px}.header nav{font-size:15px}.header nav a:after{right:auto;width:32px}.hero-cinema{max-width:500px}.cinema-top>span:last-child{display:none}.corner-b{top:auto;bottom:130px}.orbital-scene{right:-90px;width:650px}}
@media(max-width:900px) and (min-width:761px){body .hero{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px}.hero h1{font-size:45px}.hero-actions{align-items:flex-start;flex-direction:column}.hero-disciplines{gap:7px;margin-top:20px}.cinema-caption h2{font-size:24px}.cinema-project{display:none}}
@media(max-width:760px){body .header,body .hero,body .section,body footer{--pad:22px}.header{height:86px;gap:12px}.official-logo{width:98px;height:69px}.official-logo img{width:98px;height:98px;top:-12px}.header-cta{font-size:10px;padding:10px;line-height:1.3}.header-cta span{margin-left:10px}body .hero{display:flex;flex-direction:column;align-items:stretch;gap:32px;min-height:0;padding-top:34px;padding-bottom:24px}.hero .eyebrow{font-size:9px;letter-spacing:1px}.hero h1{font-size:clamp(40px,9.2vw,62px);margin:20px 0;line-height:1.02}.hero h1 .title-line{display:block}.hero h1 .title-line>span,.hero h1 .title-line>em{display:inline}.hero h1 .title-line:last-child:before,.hero h1 .title-line:not(:last-child):after{content:none}.hero h1 .title-line:last-child{margin-top:0}.hero-description{font-size:15px;line-height:1.7}.hero-description strong{font-size:12px}.hero-actions{gap:20px;margin-top:22px}.hero-actions .button{font-size:12px}.hero-actions .text-link{font-size:12px}.hero-disciplines{display:none}.hero-cinema{max-width:520px;align-self:center}.cinema-top{font-size:8px;padding-top:0}.cinema-top>span:last-child{display:none}.cinema-caption h2{font-size:26px}.cinema-frame{min-height:200px}.cinema-corner{display:none}.hero-bottom{position:static;margin-top:0;flex-wrap:wrap;gap:15px}.hero-bottom>a{font-size:8px}.orbital-scene{top:65%;right:-150px;width:680px;opacity:.8}.nebula-one{right:-240px;top:130px}.horizon-grid{left:-80%;right:-50%;opacity:.6}.light-trace{display:none}.film-controls button{padding-inline:8px;font-size:10px}.footer-signature{grid-template-columns:1fr;gap:15px;padding-bottom:35px}.footer-signature>img{width:100%;max-width:480px;justify-self:center}.footer-invitation{font-size:36px;letter-spacing:-1px}.footer-signature>div{padding-bottom:15px}.footer-line{gap:13px}.privacy-page .privacy-header{padding:10px 20px}.privacy-page .official-logo{width:98px;height:69px}}
@media(max-width:380px){body .header,body .hero,body .section,body footer{--pad:18px}.hero h1{font-size:40px}.cinema-caption h2{font-size:23px}.cinema-project{display:none}.film-poster-caption{font-size:8px;left:65px;letter-spacing:.5px}.film-play{left:14px}.hero-actions{gap:9px}.hero-actions .text-link{font-size:11px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.orbital-scene{transform:translateY(-50%)}.project-visual:hover,.project-visual:hover .portfolio-browser{transform:none!important}.reading-progress{display:none}}

.effects-offscreen *, .effects-offscreen *:before,.effects-offscreen *:after{animation-play-state:paused!important}
@media(max-width:760px){.hero h1 .title-line{overflow:visible}}
