/* Motion layer: progressive enhancement, no blocked content. */
.cosmic-intro{position:fixed;inset:0;z-index:50;display:grid;place-items:center;background:#110827;pointer-events:none;animation:intro-out .45s .65s both}.cosmic-intro img{width:62px;height:95px;object-fit:contain;animation:logo-in .6s both;filter:drop-shadow(0 0 24px #c764ff)}
@keyframes logo-in{from{opacity:0;transform:translateY(10px) scale(.9)}to{opacity:1;transform:none}}@keyframes intro-out{to{opacity:0;visibility:hidden}}
.hero-stars{position:absolute;inset:0;overflow:hidden;pointer-events:none;transform:translate(var(--star-x,0px),var(--star-y,0px));transition:transform .8s ease-out}.hero-stars i{position:absolute;left:var(--x);top:var(--y);width:3px;height:3px;border-radius:50%;background:#fff;box-shadow:0 0 12px 3px #c4a0ff;animation:twinkle var(--duration) ease-in-out infinite alternate;animation-delay:var(--delay)}@keyframes twinkle{from{opacity:.2;transform:scale(.65)}to{opacity:.9;transform:scale(1.25)}}
.motion-ready{opacity:0;transform:translateY(18px);transition:opacity .6s ease var(--reveal-delay,0ms),transform .6s ease var(--reveal-delay,0ms)}.motion-ready.motion-visible{opacity:1;transform:none}.step-enter{animation:step-enter .3s ease both}@keyframes step-enter{from{opacity:.35;transform:translateY(9px)}to{opacity:1;transform:none}}
.reading-progress{position:fixed;left:0;top:0;z-index:20;height:3px;width:100%;transform:scaleX(var(--read-progress,0));transform-origin:left;background:linear-gradient(90deg,#f552ca,#9b5fff,#62d9ff);pointer-events:none}
.effects-toggle{display:block;margin-top:18px;border:1px solid #b586ce;background:#ffffff08;border-radius:20px;color:#e1ccec;padding:7px 14px;font:inherit;font-size:11px;cursor:pointer}.motion-off .hero-stars,.motion-off .cosmic-intro{display:none}.motion-off .motion-ready{opacity:1;transform:none;transition:none}.motion-off .step-enter{animation:none}
@media(prefers-reduced-motion:reduce){.cosmic-intro,.hero-stars{display:none}.motion-ready{opacity:1;transform:none;transition:none}.step-enter{animation:none}}
/* Étoiles plus expressives, sans clignotement rapide. */
.hero-stars{inset:-22px;transition:transform .65s ease-out}.hero-stars i{width:4px;height:4px;box-shadow:0 0 10px 3px #fff9,0 0 24px 8px #c47aff70}.hero-stars i:nth-child(3n){width:6px;height:6px;background:#ffc8f5}.hero-stars i:nth-child(4n):before,.hero-stars i:nth-child(4n):after{content:'';position:absolute;left:50%;top:50%;width:24px;height:2px;border-radius:100%;background:linear-gradient(90deg,transparent,#fff,transparent);transform:translate(-50%,-50%)}.hero-stars i:nth-child(4n):after{transform:translate(-50%,-50%) rotate(90deg)}
@keyframes twinkle{0%{opacity:.15;transform:translateY(5px) scale(.5)}100%{opacity:1;transform:translateY(-7px) scale(1.7)}}
@media(max-width:600px){.hero-stars i:nth-child(n+21){display:none}.hero-stars i{box-shadow:0 0 12px 4px #c47aff80}}
/* Constellation affirmée et trajectoires lumineuses. */
.hero-stars{z-index:1}.hero .hero-copy{position:relative;z-index:2}.hero-stars i{width:7px;height:7px;background:#fff;box-shadow:0 0 12px 5px #ffeaff,0 0 38px 15px #aa63ff80;animation-duration:4.5s}.hero-stars i:nth-child(3n){width:9px;height:9px}.hero-stars i:nth-child(4n):before,.hero-stars i:nth-child(4n):after{width:42px;height:3px}.hero-stars i:nth-child(2n){animation-duration:6s}
@keyframes twinkle{0%{opacity:.25;transform:translate(0,10px) scale(.6)}100%{opacity:1;transform:translate(9px,-12px) scale(1.8)}}
.shooting-star{position:absolute;top:var(--trail-top);left:-25%;width:150px;height:3px;border-radius:100%;background:linear-gradient(90deg,transparent,#b890ff,#fff);filter:drop-shadow(0 0 7px #dba4ff);opacity:0;animation:meteor-flight 7s var(--trail-delay) infinite ease-in}.shooting-star:after{content:'';position:absolute;right:0;top:-2px;width:7px;height:7px;background:white;border-radius:50%;box-shadow:0 0 20px 6px #cc9aff}
@keyframes meteor-flight{0%,8%{opacity:0;transform:translate(0,0) rotate(24deg)}12%{opacity:1}38%{opacity:1}45%,100%{opacity:0;transform:translate(125vw,220px) rotate(24deg)}}
@media(max-width:600px){.hero-stars i{width:5px;height:5px;box-shadow:0 0 12px 4px #eac7ff,0 0 22px 8px #aa63ff60}.hero-stars i:nth-child(4n):before,.hero-stars i:nth-child(4n):after{width:28px}.shooting-star{width:90px}}
@media(prefers-reduced-motion:reduce){.shooting-star{display:none}}

/* Ajustement : scintillement plus doux, sans étoiles filantes. */
.hero-stars i{width:5px;height:5px;box-shadow:0 0 9px 3px #ffeaffb3,0 0 25px 9px #aa63ff60}.hero-stars i:nth-child(3n){width:6px;height:6px}.hero-stars i:nth-child(4n):before,.hero-stars i:nth-child(4n):after{width:28px;height:2px}
@keyframes twinkle{from{opacity:.25;transform:translate(0,6px) scale(.65)}to{opacity:.85;transform:translate(6px,-8px) scale(1.4)}}
@media(max-width:600px){.hero-stars i{width:4px;height:4px}.hero-stars i:nth-child(3n){width:5px;height:5px}.hero-stars i:nth-child(4n):before,.hero-stars i:nth-child(4n):after{width:22px}}

/* Petites étoiles aux rythmes et dimensions indépendants. */
.hero-stars i,.hero-stars i:nth-child(3n),.hero-stars i:nth-child(2n){width:var(--size);height:var(--size);animation-duration:var(--duration);box-shadow:0 0 6px 1px #ffeaffb0,0 0 15px 4px #aa63ff45}
.hero-stars i:nth-child(4n):before,.hero-stars i:nth-child(4n):after{width:var(--ray);height:1px}
@keyframes twinkle{0%{opacity:.15;transform:translate(0,0) scale(.7)}100%{opacity:.9;transform:translate(var(--drift-x),var(--drift-y)) scale(1.25)}}
/* Additional interaction feedback. */
@keyframes menu-reveal{from{opacity:0;transform:translateY(-9px)}to{opacity:1;transform:none}}.header nav.open{animation:menu-reveal .24s ease-out}.header .menu span{display:inline-block;transition:transform .25s}.header .menu[aria-expanded=true] span{transform:rotate(90deg)}
.interactive-glow{position:relative;isolation:isolate}.interactive-glow:before{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:-1;background:radial-gradient(240px circle at var(--pointer-x,50%) var(--pointer-y,50%),#d9b5ff50,transparent 75%);opacity:0;transition:opacity .25s}.interactive-glow:hover:before,.interactive-glow:focus-within:before{opacity:1}
@keyframes option-confirm{0%{box-shadow:0 0 0 0 #ac4de740}100%{box-shadow:0 0 0 9px #ac4de700}}.option-confirm{animation:option-confirm .45s ease-out}.option-choice{transition:background-color .2s,border-color .2s}.button:active{transform:scale(.97)}.back-top{transition:background .2s,transform .2s}.back-top:hover{background:#7335ab;transform:translateY(-3px)}
.motion-off .header nav.open,.motion-off .option-confirm{animation:none}.motion-off .interactive-glow:before{display:none}.motion-off .header .menu span{transition:none}
@media(prefers-reduced-motion:reduce){.header nav.open,.option-confirm{animation:none}.interactive-glow:before{display:none}.header .menu span{transition:none}}
