/* Art-directed depth layers; game routes and game bundles are unchanged. */
main{margin-block:0}.intro{padding-bottom:10px}.game-selector{width:86%;max-width:1500px;margin:0 auto;--card-w:min(48vw,820px);--card-h:clamp(330px,31vw,480px);--clear:90px;overflow:clip;mask-image:linear-gradient(90deg,transparent,#000 3%,#000 97%,transparent)}
.ribbon-window{height:calc(var(--card-h) + var(--clear) + 55px)}
.ribbon-energy{inset:0 0 38px}.ribbon-ink,.red-burst,.energy-haze{display:none}.nebula{position:absolute;inset:-9% -8%;width:116%;height:118%;object-fit:fill;filter:drop-shadow(0 0 12px #ef123650);animation:nebula-surge 13s ease-in-out infinite alternate;opacity:.93}.nebula-far{inset:0 -4%;width:108%;height:100%;transform:rotate(177deg);opacity:.4;animation:nebula-counter 21s ease-in-out infinite alternate;mix-blend-mode:multiply}.electric{stroke-dasharray:40 280;animation:current-travel 3.8s linear infinite!important;filter:drop-shadow(0 0 5px #ff234d);opacity:.85}.current-b{animation-duration:5.3s!important;animation-direction:reverse!important}
.game-card.selected::before{background-size:300% 100%;animation:border-current 5s linear infinite;filter:drop-shadow(0 0 10px #fa173e)}
.grip{width:clamp(100px,13vw,190px);height:auto;object-fit:contain;filter:drop-shadow(4px 12px 7px #15081188);transform-origin:60% 55%}.grip-left{left:-12%;top:34%;--hold:scaleX(-1) rotate(-12deg);transform:var(--hold)}.grip-top{width:clamp(95px,12vw,175px);right:-9%;top:-13%;--hold:rotate(74deg);transform:var(--hold)}.grip.catching{animation:catch-card 850ms cubic-bezier(.2,.75,.2,1) both}
.world-art>img{position:absolute;inset:0;z-index:0;animation:world-drift 12s ease-in-out infinite alternate;filter:saturate(1.15)}.world-island{position:absolute;inset:0;z-index:1;background:url('/cosmic-home/world.webp') 42% 25%/cover;clip-path:polygon(6% 6%,44% 6%,45% 35%,35% 56%,8% 65%,0 40%);animation:island-float 7s ease-in-out infinite alternate;filter:saturate(1.15) drop-shadow(0 15px 7px #00385866);transform:scale(1.03)}.world-water{position:absolute;inset:0;z-index:2;pointer-events:none;opacity:.24;mix-blend-mode:screen;background:repeating-radial-gradient(ellipse at 20% 70%,transparent 0 22px,#a5efff66 24px,transparent 27px 48px);mask-image:linear-gradient(transparent 45%,#000 70%,transparent);animation:water-flow 9s linear infinite}.world-mist{position:absolute;inset:0;z-index:3;background:radial-gradient(ellipse at 22% 40%,#e9ffff70,transparent 24%),radial-gradient(ellipse at 70% 20%,#ffffff55,transparent 28%);animation:world-mist 10s ease-in-out infinite alternate;pointer-events:none}.world-beacon{position:absolute;left:52%;top:16%;width:13%;height:5%;border:2px solid #b2faff;border-radius:50%;box-shadow:0 0 16px #59cfff,inset 0 0 12px #45c9ff;z-index:3;animation:beacon-rise 5s ease-in-out infinite}.world-art .art-shade{z-index:4}.world-card:not(.selected) .world-art *{animation-play-state:paused}
.world-card .card-copy h2{font-size:clamp(48px,5.2vw,82px)}.arena-art img{object-position:65% 40%}.arena-card .art-shade{background:linear-gradient(0deg,#100513ee,transparent 76%)}
.space-oddities{position:absolute;inset:0;pointer-events:none;z-index:4}.oddity{position:absolute;width:48px;filter:drop-shadow(3px 5px 4px #1113);opacity:.8;animation:oddity-orbit 13s ease-in-out infinite alternate}.odd-eye{left:5%;top:9%;transform:rotate(-22deg)}.odd-tooth{right:5%;bottom:12%;width:37px;animation-delay:-8s;animation-duration:17s}
.city-horizon{position:relative;width:100%;height:180px;overflow:hidden;margin-top:15px;pointer-events:none;background:linear-gradient(0deg,#f0ecec,transparent 80%)}.city-horizon img{position:absolute;width:100%;height:100%;object-fit:cover;object-position:50% 100%;opacity:.28;mask-image:linear-gradient(transparent,#000 50%);animation:city-drift 30s ease-in-out infinite alternate}.city-caption{position:absolute;bottom:15px;left:50%;transform:translateX(-50%);font-size:8px;letter-spacing:3px;white-space:nowrap;background:#ffffffda;padding:9px 15px;color:#444}footer{margin-top:0;background:#f0ecec;padding-top:20px}.ribbon-controls{padding-inline:5%;mask-image:none}
@keyframes nebula-surge{from{transform:rotate(-3deg) scale(.97)}to{transform:rotate(3deg) scale(1.08)}}
@keyframes nebula-counter{from{transform:rotate(177deg) scale(1.05)}to{transform:rotate(184deg) scale(.96)}}
@keyframes current-travel{to{stroke-dashoffset:-640}}
@keyframes border-current{to{background-position:300% 0}}
@keyframes catch-card{0%{transform:var(--hold) translateY(-65px) scale(.8);opacity:.2}45%{transform:var(--hold) translateY(12px) scale(1.08);opacity:1}70%{transform:var(--hold) translateY(-5px)}100%{transform:var(--hold)}}
@keyframes world-drift{from{transform:scale(1.06) translate(-.6%,0)}to{transform:scale(1.12) translate(.6%,1%)}}
@keyframes island-float{to{transform:scale(1.065) translate(1%,-1.5%)}}
@keyframes water-flow{to{transform:translate(24px,12px) scale(1.06)}}
@keyframes world-mist{to{transform:translate(5%,-3%);opacity:.4}}
@keyframes beacon-rise{0%,100%{transform:translateY(0) scale(.9);opacity:.55}50%{transform:translateY(-10px) scale(1.15);opacity:.9}}
@keyframes oddity-orbit{to{transform:translate(12px,-18px) rotate(16deg)}}
@keyframes city-drift{to{transform:translateX(-12px) scale(1.03)}}
@media(max-width:700px){.game-selector{width:94%;--card-w:74vw;--card-h:370px;--clear:72px}.grip-left{width:105px;left:-18%;top:34%}.grip-top{width:95px;right:-14%;top:-9%}.world-card .card-copy h2{font-size:48px}.oddity{width:29px}.odd-tooth{width:25px;right:3%;bottom:17%}.city-horizon{height:135px}.ribbon-controls{padding:0 16px}.nebula{inset:0 -40%;width:180%;height:100%}.nebula-far{opacity:.25}.city-horizon img{width:160%;max-width:none;left:-30%}}
@media(max-height:540px) and (min-width:701px){.game-selector{--card-w:48vw;--card-h:210px;--clear:52px}.grip-left{width:105px}.grip-top{width:95px}.world-card .card-copy h2{font-size:37px}.city-horizon{height:100px}.oddity{width:30px}}
.card-art{z-index:0}.card-top,.card-copy{z-index:5}.card-top{flex-direction:column;align-items:flex-start;gap:9px}.grip-left{top:23%;left:-17%}.nebula-far{mix-blend-mode:normal;opacity:.58}.world-card .art-shade{background:linear-gradient(180deg,#061b2766,transparent 35%,#07131b33 48%,#020d1bf5)}
.paused *,.paused *::before,.paused *::after,.offscreen *{animation-play-state:paused!important}.paused .grip.catching{animation:none}.paused .game-card{transition:none}
@media(max-width:700px){.grip-left{left:-24%;top:25%}.grip-top{top:-5%;right:-17%}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after,.electric{animation:none!important;transition:none!important}}
