/* Progressive mobile-only enhancement: desktop poster grid stays unchanged. */
.touch-stage{display:contents}.touch-fx,.touch-hotspot,.touch-hint,.scroll-flight,.travel-note{display:none}
@media(max-width:750px){
 .mobile-enhanced .portals{gap:150px}
 .mobile-enhanced .touch-stage{display:block;position:relative;min-width:0;isolation:isolate;--orbit-x:0px;--orbit-y:0px;--eye-x:0px;--eye-y:0px}
 .mobile-enhanced .touch-stage>.portal{animation:none;transform:none!important}
 .mobile-enhanced .opening-bottom{margin-top:150px}
 .touch-fx{display:block;position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:3}
 .touch-hotspot{display:block;position:absolute;z-index:5;background:transparent;border:1px solid #f3d78399;border-radius:50%;padding:0;min-width:48px;min-height:48px;aspect-ratio:1;box-shadow:0 0 0 5px #f0cb6c13,0 0 18px #e1ab4655;cursor:pointer;transform:translate(-50%,-50%)}
 .pulse-hotspot{left:50.5%;top:45.875%;width:17.25%;touch-action:manipulation}
 .orbit-hotspot{left:49.875%;top:40.875%;width:13%;touch-action:pan-y pinch-zoom;translate:var(--orbit-x) var(--orbit-y);border-color:#b8ffebaa;box-shadow:0 0 0 5px #7af7dc18,0 0 18px #54eec74d}
 .touch-hotspot:focus-visible{outline:3px solid #fff0ad;outline-offset:7px}
 .touch-hint{display:flex;align-items:center;justify-content:center;position:absolute;left:0;top:calc(100% + 68px);width:100%;min-height:48px;padding:10px 8px;border:1px solid #ddbb624f;border-radius:5px;background:linear-gradient(110deg,#35110ff2,#18140ff2);color:#f4db9d;font:700 12px/1.5 'Space Mono',monospace;letter-spacing:.015em;touch-action:manipulation}
 .orbit .touch-hint{background:linear-gradient(110deg,#152c24f2,#202413f2);color:#c6f3d6;border-color:#82caa655}
 .pulse-charged .pulse-hotspot{border-color:#fff0c4;box-shadow:0 0 0 8px #f5d68833,0 0 30px #f7684088}
 .pulse-ring{position:absolute;left:50.5%;top:45.875%;width:18%;aspect-ratio:1;border:2px solid #ffd396;border-radius:50%;opacity:0;box-shadow:0 0 18px #ff6c4599,inset 0 0 12px #e9503733;transform:translate(-50%,-50%)}
 .pulse-impact .pulse-ring{animation:touchPulseWave 1s var(--delay) cubic-bezier(.15,.5,.2,1) both}
 .pulse-glow{position:absolute;inset:0;opacity:0;background:radial-gradient(circle at 50.5% 45.875%,#fb8f452e,#d3362022 38%,transparent 72%);mix-blend-mode:screen}
 .pulse-impact .pulse-glow{animation:touchPulseLight 1.1s ease-out both}
 .pulse-particle{position:absolute;left:50.5%;top:45.875%;width:4px;height:4px;border-radius:50%;background:#ffe4a5;opacity:0;box-shadow:0 0 9px #ffba67}
 .pulse-impact .pulse-particle{animation:touchPulseParticle .95s ease-out both}
 .pulse-impact .fragment.heart{filter:brightness(1.25) drop-shadow(0 0 12px #eead67)}
 .orbit .fragment.planet{translate:var(--orbit-x) var(--orbit-y)}
 .orbit .fragment.iris{translate:var(--eye-x) var(--eye-y)}
 .orbit-returning .fragment.planet,.orbit-returning .fragment.iris,.orbit-returning .orbit-hotspot{transition:translate .9s cubic-bezier(.16,1,.3,1)}
 .orbit-dragging .fragment.planet{filter:drop-shadow(0 0 11px #97ffce);z-index:4}
 .orbit-trace{position:absolute;width:8px;height:8px;opacity:0;border-radius:50%;background:#bdffe8;box-shadow:0 0 10px #73fbd1,0 0 20px #e0c06b44}
 .orbit-track{position:absolute;left:49.875%;top:40.875%;width:52%;height:18%;border:1px solid #b5e7c64d;border-radius:50%;transform:translate(-50%,-50%) rotate(-12deg);opacity:0;transition:opacity .3s}
 .orbit-dragging .orbit-track,.orbit-returning .orbit-track{opacity:1}
 .mobile-enhanced .bridge{--travel:0;--arrival:0;background:radial-gradient(ellipse at 50% 50%,#73332866,transparent 70%),#25100e;min-height:380px}
 .mobile-enhanced .bridge:before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 50%,#306c5aaa,#8a85403b 60%,transparent),#121b10;opacity:var(--arrival);z-index:-2;pointer-events:none}
 .mobile-enhanced .bridge .vortex{opacity:.62;inset:-80px -60px;z-index:-1}
 .mobile-enhanced .bridge .vortex i{animation:none;will-change:transform;transform:translate(-50%,-50%) rotateX(57deg) rotateZ(calc(var(--n)*8deg + var(--travel)*125deg)) scale(calc(.12 + var(--n)*.15 + var(--travel)*1.7));opacity:.5;border-color:#d4cb9277}
 .mobile-enhanced .bridge>.scroll-flight{display:block;position:absolute!important;inset:0;pointer-events:none;overflow:hidden;z-index:0!important;opacity:.65}
 .flight-star{position:absolute;left:50%;top:50%;width:2px;height:14px;background:linear-gradient(transparent,#d8ffeb);box-shadow:0 0 7px #bfeeb877;transform:translate(calc(var(--sx)*(40px + var(--travel)*260px)),calc(var(--sy)*(25px + var(--travel)*180px))) rotate(calc(var(--turn) - 1.5708rad)) scaleY(calc(.4 + var(--travel)*1.5))}
 .mobile-enhanced .bridge h2{font-size:clamp(30px,8.5vw,45px);text-shadow:0 2px 20px #000;animation:none}
 .mobile-enhanced .bridge .travel-note{display:block;font:10px/1.6 'Space Mono',monospace;letter-spacing:.08em;color:#e0cf9a;margin:28px 0 0}
 .mobile-enhanced.paused .touch-fx,.mobile-enhanced.paused .scroll-flight{visibility:hidden}
 .mobile-enhanced.paused .fragment.planet,.mobile-enhanced.paused .fragment.iris,.mobile-enhanced.paused .orbit-hotspot{translate:0 0;transition:none}
 @keyframes touchPulseWave{0%{opacity:0;transform:translate(-50%,-50%) scale(.7)}12%{opacity:.7}100%{opacity:0;transform:translate(-50%,-50%) scale(6)}}
 @keyframes touchPulseLight{0%,100%{opacity:0}18%,40%{opacity:.75}}
 @keyframes touchPulseParticle{0%{opacity:0;transform:rotate(var(--angle)) translateX(20px) scale(.5)}15%{opacity:.9}100%{opacity:0;transform:rotate(var(--angle)) translateX(145px) scale(.2)}}
}
@media(prefers-reduced-motion:reduce){
 .touch-fx,.scroll-flight,.travel-note{display:none!important}.touch-hotspot{box-shadow:none}
 .mobile-enhanced .bridge .vortex{display:none}.mobile-enhanced .bridge:before{opacity:.5}
 .orbit .fragment.planet,.orbit .fragment.iris,.orbit-hotspot{translate:0 0!important;transition:none!important}
}
