/* NILORIANE — movement follows content and real interaction. */
@view-transition{navigation:auto}::view-transition-old(root){animation:page-out .18s ease-out both}::view-transition-new(root){animation:page-in .36s ease-out both}
@keyframes page-in{from{opacity:.5;transform:translateY(9px)}to{opacity:1;transform:none}}@keyframes page-out{to{opacity:.7}}
.reading-progress{position:fixed;inset:0 0 auto;height:3px;z-index:100;pointer-events:none;background:linear-gradient(90deg,#28d7f4,#497dff,#bd8aff);transform:scaleX(0);transform-origin:left;box-shadow:0 0 13px #4cc8ff80}
.motion-toggle{position:fixed;right:16px;bottom:16px;z-index:20;border:1px solid #6e9ab976;border-radius:30px;background:#10253eea;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#dceaff;font-size:11px;padding:10px 14px;box-shadow:0 4px 20px #04182a25}.motion-toggle:hover{background:#1b3c60}.motion-toggle:focus-visible{outline:3px solid #45cfff;outline-offset:4px}
.hero{isolation:isolate}.hero-content{z-index:3}.hero header{z-index:5}.hero:after{z-index:1}.hero-photo{z-index:0}.hero-atmosphere{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden}.hero-atmosphere .halo{position:absolute;width:410px;height:410px;left:17%;top:7%;border-radius:50%;background:radial-gradient(circle,#21b9f319,transparent 66%);animation:halo-drift 12s ease-in-out infinite alternate}.hero-atmosphere .orbit{position:absolute;width:440px;height:440px;left:-235px;top:110px;border:1px solid #4dd5ff24;border-radius:50%;transform:rotate(-28deg) scaleY(.65)}.hero-atmosphere .orbit:after{content:'';position:absolute;inset:-1px;border-radius:50%;border-top:2px solid #43d4ff;border-left:1px solid #a38aff;animation:orbit-spin 18s linear infinite}.hero-atmosphere .orbit.second{left:auto;right:-215px;top:280px;width:390px;height:390px;opacity:.5}.hero-atmosphere .orbit.second:after{animation-duration:25s;animation-direction:reverse}.hero-atmosphere .signal{position:absolute;width:4px;height:4px;background:#7ddfff;border-radius:50%;left:var(--left);top:var(--top);box-shadow:0 0 13px #7ddfff;animation:signal-rise var(--duration) ease-in-out infinite alternate;animation-delay:var(--delay)}
@keyframes halo-drift{to{transform:translate(60px,20px) scale(1.12)}}@keyframes orbit-spin{to{transform:rotate(360deg)}}@keyframes signal-rise{from{opacity:.15;transform:translateY(8px)}to{opacity:.85;transform:translateY(-16px)}}
.hero-content h1{animation:hero-arrive .85s cubic-bezier(.16,1,.3,1) both}.hero-content .lead{animation:hero-arrive .9s .13s cubic-bezier(.16,1,.3,1) both}.hero-content .actions{animation:hero-arrive .9s .26s cubic-bezier(.16,1,.3,1) both}.hero-content h1 span{background-size:160% 100%;animation:gradient-travel 9s ease-in-out infinite alternate}@keyframes hero-arrive{from{opacity:.15;transform:translateY(24px)}to{opacity:1;transform:none}}@keyframes gradient-travel{to{background-position:100% 50%}}
.logo{overflow:visible;transition:filter .35s,transform .5s}.brand:hover .logo{filter:drop-shadow(0 0 9px #3acbff7a);transform:rotate(-4deg)}.logo>ellipse{transform-origin:40px 36px;animation:logo-orbit 8s ease-in-out infinite alternate}@keyframes logo-orbit{from{opacity:.55}to{opacity:1}}
header nav a:not(.btn){position:relative;transition:color .22s}header nav a:not(.btn):after{content:'';position:absolute;bottom:4px;left:0;right:0;height:1px;background:linear-gradient(90deg,#32d3fa,#a080ff);transform:scaleX(0);transform-origin:left;transition:transform .25s}header nav a:hover:after,header nav a:focus-visible:after{transform:scaleX(1)}.subnav a{transition:color .2s,transform .2s}.subnav a:hover{color:#7de6ff;transform:translateY(-2px)}
.btn{position:relative;overflow:hidden;isolation:isolate;transition:box-shadow .25s,transform .25s,filter .25s}.btn:after{content:'';position:absolute;inset:-60% -90%;background:linear-gradient(110deg,transparent 40%,#ffffff23 50%,transparent 60%);transform:translateX(-65%);pointer-events:none;transition:transform .65s}.btn:hover:after,.btn:focus-visible:after{transform:translateX(65%)}.btn:hover{box-shadow:0 9px 25px #1d71e12e}.btn:active{transform:translateY(1px) scale(.985)}.btn:disabled{cursor:default;filter:saturate(.5);opacity:.7;box-shadow:none}
.card,.rate-card,.editorial,.client-card,.panel{transition:transform .32s cubic-bezier(.2,.8,.2,1),box-shadow .32s,border-color .32s;position:relative}.card:hover,.rate-card:hover,.editorial:hover,.client-card:hover{border-color:#adc9f7;box-shadow:0 16px 35px #143c7212;transform:translateY(-4px)}.card .line-icon{transition:transform .3s,filter .3s}.card:hover .line-icon{transform:translateY(-3px) rotate(-4deg);filter:drop-shadow(0 3px 5px #558aff35)}.service{transition:background .25s,transform .25s}.service:hover{transform:translateY(-3px)}.service .line-icon{transition:filter .3s}.service:hover .line-icon{filter:drop-shadow(0 0 8px #58caff75)}
.page-intro figure{animation:hero-arrive .8s .1s both}.page-intro h1{animation:hero-arrive .7s both}.page-intro p:not(.breadcrumb){animation:hero-arrive .8s .08s both}.page-intro figure img,.home-photo img{transition:transform .7s cubic-bezier(.2,.8,.2,1),box-shadow .7s}.page-intro figure:hover img,.home-photo figure:hover img{transform:translateY(-4px);box-shadow:0 20px 45px #1a447626}.quote{transition:background .3s,color .3s}.rate-card:hover .quote{background:#daeaff;color:#064faf}
.portal-journey{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:20px 0;padding:0;list-style:none}.portal-journey li{padding:12px;border-radius:11px;border:1px solid #dfe8f4;font-size:12px;color:#6b7f99;background:#f5f8fd;transition:background .35s,color .35s,border-color .35s}.portal-journey li.is-current,.portal-journey li.is-done{background:#e6f3ff;border-color:#98c9fa;color:#145b9d}.portal-journey li.is-done:before{content:'✓ ';color:#147656}.cost-composition{margin:20px 0}.cost-track{height:9px;border-radius:12px;overflow:hidden;display:flex;background:#e6edf7}.cost-segment{transform-origin:left;transition:width .45s cubic-bezier(.2,.8,.2,1);min-width:0}.cost-base{background:#3779ed}.cost-edr{background:#27b8df}.cost-soc{background:#9478ed}.cost-caption{font-size:11px;color:#61748e;line-height:1.7;margin:8px 0}.cost-caption i{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:4px}.option{padding:10px 9px;border-radius:9px;transition:background .3s,box-shadow .3s}.option.is-selected{background:#edf5ff;box-shadow:inset 2px 0 #58a9f5}.option input{flex-shrink:0;align-self:center}.status{transition:background .3s;padding:4px 0;border-radius:8px}.status.has-result{padding:12px;background:#e7f7f0}.portal-page .panel.session-open{border-color:#a4c9ef}.portal-page .panel.payment-complete{border-color:#6ac8a4;box-shadow:0 8px 35px #2aa36a12}dialog[open]{animation:dialog-arrive .25s ease-out}@keyframes dialog-arrive{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}
@media(hover:hover) and (pointer:fine){.depth-card{transform:perspective(1000px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)) translateY(var(--lift,0px))}.depth-card:hover{--lift:-4px}.depth-card:after{content:'';position:absolute;inset:0;border-radius:inherit;background:radial-gradient(circle at var(--spot-x,50%) var(--spot-y,50%),#68cfff12,transparent 60%);pointer-events:none}}
@media(max-width:600px){.hero-atmosphere .halo{width:270px;height:270px}.hero-atmosphere .orbit.second{display:none}.motion-toggle{right:10px;bottom:10px;font-size:10px;padding:8px 10px}.portal-journey li{padding:10px 7px;font-size:11px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.hero-atmosphere{display:none}.depth-card,.card:hover,.rate-card:hover,.editorial:hover,.client-card:hover,.service:hover,.subnav a:hover,.page-intro figure:hover img,.home-photo figure:hover img{transform:none!important}::view-transition-group(*){animation:none!important}}
html.motion-paused *,html.motion-paused *:before,html.motion-paused *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}html.motion-paused .hero-atmosphere{display:none}html.motion-paused .depth-card{transform:none!important}
