/* Décor arcade léger : toutes les animations respectent les options de lecture. */
body{position:relative;isolation:isolate}
body::before{content:"";position:fixed;z-index:-2;inset:0;pointer-events:none;opacity:.55;background-image:radial-gradient(circle at 12% 18%,#70b8ff 0 2px,transparent 3px),radial-gradient(circle at 74% 28%,#e7ff58 0 2px,transparent 3px),radial-gradient(circle at 38% 82%,#70b8ff 0 1px,transparent 2px),radial-gradient(circle at 88% 68%,#e7ff58 0 1px,transparent 2px);background-size:190px 190px,250px 250px,130px 130px,170px 170px;animation:pixel-drift 26s linear infinite}
body::after{content:"";position:fixed;z-index:-1;inset:0;pointer-events:none;opacity:.13;background:linear-gradient(180deg,transparent 0 48%,#70b8ff 50%,transparent 52%);background-size:100% 160px;animation:screen-scan 8s linear infinite}
.hero{position:relative}
.hero::after{content:"";position:absolute;z-index:-1;inset:9% -4% 3%;pointer-events:none;opacity:.18;background:linear-gradient(90deg,transparent 49%,#70b8ff 50%,transparent 51%),linear-gradient(0deg,transparent 49%,#70b8ff 50%,transparent 51%);background-size:42px 42px;transform:perspective(500px) rotateX(64deg);transform-origin:center bottom;mask-image:linear-gradient(transparent,#000 55%);animation:grid-drive 5s linear infinite}
.arcade-lane{position:relative;height:76px;overflow:hidden;border-block:2px solid var(--blue);background:linear-gradient(90deg,#05070b,#0d1830 50%,#05070b);box-shadow:inset 0 0 28px #1678ff42}
.arcade-track{position:absolute;left:0;right:0;top:34px;height:4px;background:repeating-linear-gradient(90deg,var(--acid) 0 6px,transparent 6px 32px);filter:drop-shadow(0 0 6px #e7ff58);opacity:.92}
.arcade-player{position:absolute;z-index:3;left:0;top:11px;width:52px;height:52px;filter:drop-shadow(0 0 8px #fff20099);animation:player-run 11s linear infinite}
.chomp-frame{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;image-rendering:pixelated;opacity:0;animation:chomp-frames .42s steps(1,end) infinite}
.chomp-half{animation-delay:.14s}.chomp-closed{animation-delay:.28s}
.arcade-ghost{position:absolute;z-index:2;right:7%;top:12px;width:48px;height:48px;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 0 7px #00cfff99);animation:ghost-hop .75s steps(2,end) infinite}
.arcade-score{position:absolute;right:12px;bottom:3px;color:var(--muted);font:700 .68rem Consolas,monospace;letter-spacing:.08em}
@keyframes player-run{0%{left:-60px}100%{left:calc(100% + 60px)}}
@keyframes chomp-frames{0%,32%{opacity:1}33%,100%{opacity:0}}
@keyframes ghost-hop{0%{transform:translateY(-3px)}100%{transform:translateY(3px)}}
@keyframes pixel-drift{to{background-position:190px 95px,-125px 250px,65px -130px,-170px 85px}}
@keyframes screen-scan{to{background-position:0 160px}}
@keyframes grid-drive{to{background-position:0 42px}}
.still body::before,.still body::after,.still .hero::after,.still .arcade-player,.still .arcade-ghost{animation:none!important}
.still .arcade-player{left:18px}.still .chomp-frame{animation:none!important}.still .chomp-open{opacity:1}
@media(prefers-reduced-motion:reduce){body::before,body::after,.hero::after,.arcade-player,.arcade-ghost,.chomp-frame{animation:none!important}.arcade-player{left:18px}.chomp-open{opacity:1}}
@media(max-width:580px){body::after,.hero::after{display:none}.arcade-lane{height:64px}.arcade-player{width:42px;height:42px;top:9px;animation-duration:16s}.chomp-frame{animation-duration:.58s}.arcade-track{top:29px}.arcade-ghost{display:none}.arcade-score{font-size:.62rem}}
@media(max-width:380px),(update:slow){body::before{animation:none;opacity:.3}.arcade-player{animation-duration:20s}.chomp-frame{animation-duration:.7s}}

/* Vaisseaux isolés, visibles uniquement dans les marges libres du héros. */
.craft-layer{position:absolute;z-index:4;inset:0;pointer-events:none;overflow:hidden}
.craft{position:absolute;display:block;width:auto;height:42px;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 0 7px #70b8ffaa)}
.craft-human{left:48%;bottom:10px;height:46px;animation:ship-patrol 8s ease-in-out infinite alternate}
.craft-alien-a{left:7%;top:8px;animation:alien-float-a 6s steps(6,end) infinite}
.craft-alien-b{right:7%;top:12px;height:38px;animation:alien-float-b 7.5s steps(7,end) infinite}
.craft-alien-c{right:20%;bottom:9px;height:34px;animation:alien-float-c 9s ease-in-out infinite alternate}
@keyframes ship-patrol{from{transform:translateX(-85px) translateY(2px)}to{transform:translateX(85px) translateY(-5px)}}
@keyframes alien-float-a{0%,100%{transform:translate(0,0)}25%{transform:translate(26px,5px)}50%{transform:translate(52px,0)}75%{transform:translate(26px,-4px)}}
@keyframes alien-float-b{0%,100%{transform:translate(0,0)}33%{transform:translate(-34px,-4px)}66%{transform:translate(-12px,6px)}}
@keyframes alien-float-c{from{transform:translateX(-28px) rotate(-3deg)}to{transform:translateX(28px) rotate(3deg)}}
.still .craft{animation:none!important}
.still .craft{animation:none!important}
@media(prefers-reduced-motion:reduce){.craft{animation:none!important}}
@media(max-width:880px){.craft-layer{height:58px}.craft-human,.craft-alien-c{display:none}.craft{height:31px;opacity:.8}}
@media(max-width:580px),(update:slow){.craft-layer{display:none}}
