/* Playful interaction layer — reduced-motion aware. Puzzle & game logic driven by funky.js + gamer.js */

/* Puzzle & orb styles now live in gamer.css — this file keeps only delight keyframes & journey JS compat */

.journey-track{--journey-progress:1;position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:42px}
.journey-track.is-enhanced{--journey-progress:0}
.journey-line{position:absolute;left:8%;right:8%;top:31px;height:3px;border-radius:999px;background:rgba(255,255,255,.08)}
.journey-line:after{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(90deg,var(--primary),var(--cyan),var(--hot));transform:scaleX(var(--journey-progress));transform-origin:left;box-shadow:0 0 20px rgba(0,229,255,.35)}
.journey-step{position:relative;z-index:1;border:1px solid rgba(0,229,255,.25);border-radius:20px;background:rgba(10,5,25,.8);padding:20px;opacity:1;transform:none;transition:opacity .35s,transform .35s,border-color .35s;backdrop-filter:blur(8px)}
.journey-track.is-enhanced .journey-step{border-color:var(--border);opacity:.5;transform:translateY(10px)}
.journey-step.is-lit,.journey-track.is-enhanced .journey-step.is-lit{opacity:1;transform:none;border-color:rgba(0,229,255,.4)}
.journey-node{display:grid;width:62px;height:62px;place-items:center;margin-bottom:22px;border:4px solid var(--bg2);border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--hot));color:#fff;box-shadow:0 0 20px rgba(224,64,251,.3);font-weight:900;font-family:'Orbitron',sans-serif;font-size:.9rem;transition:background .3s,color .3s,box-shadow .3s}
.journey-track.is-enhanced .journey-node{background:rgba(168,85,247,.15);color:var(--muted);box-shadow:none}
.journey-step.is-lit .journey-node,.journey-track.is-enhanced .journey-step.is-lit .journey-node{background:linear-gradient(135deg,var(--primary),var(--hot));color:#fff;box-shadow:0 0 20px rgba(224,64,251,.3)}
.journey-step h3{margin:0 0 6px;font-family:'Orbitron',sans-serif;font-weight:700;font-size:1rem}
.journey-step p{margin:0;color:var(--muted);font-size:.9rem}

.game-card[data-game="orbloom"]:hover .game-visual:after{animation:orb-drift 1.6s ease-in-out infinite alternate}
.game-card[data-game="prism"]:hover .game-visual:after{animation:arrow-drift 1.2s ease-in-out infinite alternate}
.game-card[data-game="upcoming"]:hover .game-visual:after{transform:rotate(90deg) scale(1.08)}

@keyframes orb-drift{to{transform:rotate(7deg) translateY(-7px)}}
@keyframes arrow-drift{to{transform:rotate(-14deg) translate(8px,-5px)}}

@keyframes orb-preview{0%,18%,100%{transform:none}42%{transform:translateY(-52px)}68%{transform:translate(58px,-52px)}88%{transform:translate(58px,0)}}
@keyframes prism-preview{0%,15%{transform:translate(0,0) rotate(0)}45%{transform:translate(98px,0) rotate(0)}70%{transform:translate(98px,48px) rotate(90deg)}100%{transform:translate(145px,92px) rotate(0)}}

@media(max-width:980px){.journey-track{grid-template-columns:repeat(2,1fr)}.journey-line{display:none}}
@media(max-width:600px){.journey-track{display:grid;grid-template-columns:1fr;padding-left:28px}.journey-line{display:block;left:9px;right:auto;top:12px;bottom:12px;width:3px;height:auto}.journey-line:after{transform:scaleY(var(--journey-progress));transform-origin:top}.journey-node{position:absolute;left:-50px;top:16px;width:42px;height:42px;border-width:4px;margin:0}.journey-step{padding:20px 18px}.game-card[data-game]{transform:none!important}}
@media(prefers-reduced-motion:reduce){.journey-step,.journey-node,.game-card[data-game]{transition:none}.game-card[data-game]:hover .game-visual:after{animation:none!important}.journey-track.is-enhanced{--journey-progress:1}.journey-step{opacity:1;transform:none}}
