/* Nexplora miniature worlds: static SVG first, visible-only compositor motion. */
.event-world{--world-accent:#c1a6f8;--world-ink:#f0e7fc;--world-mid:#766083;--world-dark:#251c31;--world-x:0px;--world-y:0px;--compass-angle:0deg;position:relative;display:block;isolation:isolate;overflow:hidden;width:100%;height:148px;min-height:148px;border-bottom:1px solid #ac8ecc20;background:radial-gradient(ellipse at 50% 68%,#8d61c416,transparent 68%),linear-gradient(135deg,#18111f,#0c0a10 72%);contain:layout paint;touch-action:pan-y pinch-zoom}
.event-world::before{content:"";position:absolute;left:50%;bottom:20px;width:204px;height:1px;transform:translateX(-50%);background:linear-gradient(90deg,transparent,#9d7abd38,transparent);pointer-events:none}
.event-world::after{content:"";position:absolute;width:2px;height:2px;left:16%;top:26%;border-radius:50%;background:#c5b1da5c;box-shadow:193px 39px 0 #bca2e441,17px 71px 0 #bca2e43a,151px -12px 0 #bca2e431;pointer-events:none}
.event-world .world-art{position:relative;z-index:1;display:block;width:100%;height:100%;overflow:visible;color:var(--world-accent);stroke-linecap:round;stroke-linejoin:round}
.event-world .w-fill{fill:var(--world-dark);stroke:var(--world-mid);stroke-width:1}
.event-world .w-stroke{fill:none;stroke:var(--world-accent);stroke-width:1.1}
.event-world .w-accent{fill:var(--world-accent);stroke:none}
.event-world .w-muted{fill:var(--world-mid);stroke:none}
.event-world .w-hairline{fill:none;stroke:var(--world-mid);stroke-width:.8;opacity:.6}
.event-world .w-light{fill:var(--world-ink);stroke:none}
.event-world .w-label{fill:#ab96bb;font:6px var(--mono,"Space Mono",monospace);letter-spacing:1.8px}
.event-world .w-symbol{fill:var(--world-accent);font:15px var(--mono,"Space Mono",monospace);text-anchor:middle;dominant-baseline:middle}
.event-world .w-caption{fill:#ad96bd;font:6px var(--mono,"Space Mono",monospace);letter-spacing:.7px}
.event-world .world-caption{position:absolute;z-index:2;left:16px;bottom:13px;color:#8e789f;font:8px/1 var(--mono,"Space Mono",monospace);letter-spacing:1.2px;text-transform:uppercase}
.event-world .world-coordinate{position:absolute;z-index:2;right:15px;bottom:12px;color:#725f80;font:7px/1 var(--mono,"Space Mono",monospace);letter-spacing:1px}
.event-world [class*="terminal-"],.event-world [class*="scramble-"],.event-world [class*="poster-"],.event-world [class*="data-"],.event-world [class*="ai-"],.event-world [class*="reel-"],.event-world [class*="anime-"],.event-world [class*="meme-"],.event-world [class*="radar-"],.event-world [class*="auction-"],.event-world [class*="mystery-"],.event-world [class*="compass-"]{transform-box:fill-box;transform-origin:center}
/* A terminal waiting for the next thought. */
.event-world[data-world="prompt"]{--world-accent:#c7acf9;--world-dark:#21172e}
.terminal-shell{animation:world-drift 7s ease-in-out infinite alternate}
.terminal-line{animation:world-signal 4.8s ease-in-out infinite;animation-delay:calc(var(--i,0)*.38s)}
.terminal-cursor{animation:world-cursor 1.25s steps(1,end) infinite}
/* A precise little arrangement with an imperfect rhythm. */
.event-world[data-world="scramble"]{--world-accent:#b6aadf;--world-dark:#241c30}
.scramble-tile{animation:world-tile 7s cubic-bezier(.4,0,.2,1) infinite;animation-delay:calc(var(--i,0)*-.47s)}
/* Three translucent, editorial planes. */
.event-world[data-world="poster"]{--world-accent:#d4b4e8;--world-dark:#302033}
.poster-sheet{animation:world-sheet 6.8s ease-in-out infinite alternate;animation-delay:calc(var(--i,0)*-.85s)}
.poster-star{animation:world-glimmer 4s ease-in-out infinite alternate}
/* Data forms a landscape rather than a generic graph icon. */
.event-world[data-world="data"]{--world-accent:#b2b9f0;--world-dark:#1c2034;--world-mid:#667293}
.data-stream{animation:world-stream 4.6s ease-in-out infinite alternate;animation-delay:calc(var(--i,0)*-.9s)}
.data-node{animation:world-node 3.6s ease-in-out infinite;animation-delay:calc(var(--i,0)*-.7s)}
/* An understated orbital instrument. */
.event-world[data-world="aiball"]{--world-accent:#d1baf0;--world-dark:#2c2336}
.event-world .ai-orbit{transform-box:view-box;transform-origin:160px 80px;animation:world-orbit 24s linear infinite}
.event-world .ai-orbit:nth-of-type(2){animation-direction:reverse;animation-duration:31s}
.ai-orb{animation:world-drift 6.5s ease-in-out infinite alternate}
.ai-core{animation:world-glimmer 4s ease-in-out infinite alternate}
/* Film catches the light, with one frame held still. */
.event-world[data-world="reel"]{--world-accent:#d2b5e0;--world-dark:#2b1f30}
.reel-film{animation:world-film 8s ease-in-out infinite alternate}
.reel-play{animation:world-node 5s ease-in-out infinite}
.reel-frame{animation:world-signal 5s ease-in-out infinite;animation-delay:calc(var(--i,0)*-.9s)}
/* Manga energy with restrained geometry and no imported imagery. */
.event-world[data-world="anime"]{--world-accent:#d9b7ec;--world-dark:#301d35}
.anime-burst{animation:world-glimmer 6s ease-in-out infinite alternate}
.event-world .anime-star{transform-box:view-box;transform-origin:160px 80px;animation:world-star 8s ease-in-out infinite alternate}
.anime-spark{animation:world-spark 3.7s ease-in-out infinite;animation-delay:calc(var(--i,0)*-.8s)}
/* Three expressions, one shared sense of mischief. */
.event-world[data-world="meme"]{--world-accent:#d7badb;--world-dark:#322234;--world-mid:#88678d}
.meme-face{animation:world-face 6.5s ease-in-out infinite alternate;animation-delay:calc(var(--i,0)*-1.1s)}
.meme-mark{animation:world-glimmer 3.1s ease-in-out infinite alternate}
/* Radar motion is one composited group; no continuously painted filter. */
.event-world[data-world="freefire"]{--world-accent:#c5c2bc;--world-dark:#242328;--world-mid:#777280}
.event-world .radar-sweep{transform-box:view-box;transform-origin:160px 80px;animation:world-orbit 9s linear infinite}
.radar-target{animation:world-target 4.4s ease-in-out infinite;animation-delay:calc(var(--i,0)*-1.3s)}
.radar-ring{animation:world-radar-ring 5s ease-out infinite}
/* The gavel makes a small, deliberate accent. */
.event-world[data-world="auction"]{--world-accent:#d4bddb;--world-dark:#2c2232}
.event-world .auction-gavel{transform-box:view-box;transform-origin:180px 96px;animation:world-gavel 5.5s cubic-bezier(.4,0,.2,1) infinite}
.auction-base{animation:world-glimmer 5.5s ease-in-out infinite}
.auction-wave{animation:world-impact 5.5s ease-out infinite;animation-delay:calc(var(--i,0)*.13s)}
/* Optional pointer tracking uses bounded offsets authored by events.js. */
.event-world[data-world="mystery"]{--world-accent:#d2afdc;--world-dark:#271c2c;--world-mid:#795d88}
.mystery-beam{transform:translate(var(--world-x),var(--world-y));transition:transform .18s ease-out}
.mystery-card{animation:world-drift 8s ease-in-out infinite alternate}
.mystery-mark{animation:world-signal 6.5s ease-in-out infinite}
/* The compass responds to a finger; its outer orbit keeps a slow pace. */
.event-world[data-world="hunt"]{--world-accent:#c8b6e6;--world-dark:#251d30}
.event-world .compass-rose,.event-world .compass-needle,.event-world .compass-orbit{transform-box:view-box;transform-origin:160px 80px}
.compass-needle{transform:rotate(var(--compass-angle));transition:transform .65s cubic-bezier(.18,.76,.27,1)}
.compass-orbit{animation:world-orbit 32s linear infinite}
.compass-rose{animation:world-glimmer 5.7s ease-in-out infinite alternate}
/* No motion work until the world is in the viewport. */
.event-world *{animation-play-state:paused}
.event-world.is-world-visible *{animation-play-state:running}
.motion-paused .event-world *,.page-hidden .event-world *,[hidden] .event-world *, .event-world[hidden] *{animation-play-state:paused!important;transition:none!important}
.motion-paused .event-world .world-art,.motion-paused .event-world .mystery-beam,.motion-paused .event-world .compass-needle{transform:none!important}
@keyframes world-drift{from{transform:translateY(2px)}to{transform:translateY(-4px)}}
@keyframes world-signal{0%,100%{opacity:.5}35%,70%{opacity:1}}
@keyframes world-cursor{0%,48%{opacity:1}49%,100%{opacity:0}}
@keyframes world-tile{0%,18%,82%,100%{transform:translateY(0)}46%,60%{transform:translateY(-5px)}}
@keyframes world-sheet{from{transform:translateY(2px)}to{transform:translateY(-5px)}}
@keyframes world-glimmer{from{opacity:.48}to{opacity:1}}
@keyframes world-stream{from{transform:translateX(-5px);opacity:.42}to{transform:translateX(7px);opacity:.95}}
@keyframes world-node{0%,100%{opacity:.6;transform:scale(.94)}50%{opacity:1;transform:scale(1.04)}}
@keyframes world-orbit{to{transform:rotate(360deg)}}
@keyframes world-film{from{transform:translate(-3px,1px)}to{transform:translate(4px,-3px)}}
@keyframes world-star{from{transform:rotate(-5deg) scale(.96)}to{transform:rotate(5deg) scale(1.025)}}
@keyframes world-spark{0%,100%{opacity:.4;transform:scale(.8)}50%{opacity:1;transform:scale(1.05)}}
@keyframes world-face{from{transform:translateY(2px) rotate(-3deg)}to{transform:translateY(-4px) rotate(3deg)}}
@keyframes world-target{0%,100%{opacity:.38}28%,45%{opacity:1}}
@keyframes world-radar-ring{0%{transform:scale(.6);opacity:0}25%{opacity:.35}100%{transform:scale(1.15);opacity:0}}
@keyframes world-gavel{0%,55%,100%{transform:rotate(-5deg)}64%{transform:rotate(-15deg)}72%,76%{transform:rotate(9deg)}84%{transform:rotate(-3deg)}}
@keyframes world-impact{0%,70%,100%{opacity:0;transform:scale(.8)}76%{opacity:.6}93%{opacity:0;transform:scale(1.15)}}
@media(hover:hover) and (pointer:fine){.event-card:hover .event-world{--world-x:5px;--world-y:-3px;--compass-angle:18deg}.event-card:hover .world-art{transform:scale(1.035)}.event-world .world-art{transition:transform .5s cubic-bezier(.2,.7,.2,1)}}
@media(max-width:620px){.event-world{height:148px;min-height:148px}.event-world .world-art{max-width:370px;margin-inline:auto}.event-world::after{box-shadow:155px 39px 0 #bca2e441,17px 71px 0 #bca2e43a,125px -12px 0 #bca2e431}}
@media(prefers-reduced-motion:reduce){.event-world *{animation:none!important;transition:none!important}.event-world .world-art,.event-world .mystery-beam,.event-world .compass-needle{transform:none!important}.auction-wave{opacity:.2}.radar-ring{opacity:.18}}
