/* Menu polish: decorative motion never changes the playing field. */
body:not(.in-level){background:radial-gradient(ellipse at 20% 0,#fff6cc80,transparent 48%),radial-gradient(ellipse at 90% 20%,#a0e5e8,transparent 55%),linear-gradient(#d8fcf2,#b9e4de 65%,#e5edc5)}
.topbar{position:relative;gap:8px}
.topbar .brandmark{border-radius:14px;background:linear-gradient(145deg,#41b7ad,#196174 72%);box-shadow:inset 0 2px 1px #ffffff80,0 3px 0 #125568,0 5px 12px #24667425}
.topbar .brandmark>span{animation:brand-twinkle 5s ease-in-out infinite}
.top-actions{padding:7px 9px;border:1px solid #fff9d5b3;border-radius:22px;background:#effff670;box-shadow:inset 0 1px #fff,0 4px 16px #226a6510}
.top-actions .icon-btn,.top-actions .account-btn,.top-actions .heart-button{transition:transform .18s,box-shadow .18s;touch-action:manipulation}
.top-actions button:active:not(:disabled){transform:translateY(2px) scale(.94)}
body[data-world] #title-screen{border-color:#f9e7a6;outline:2px solid #2d8790;outline-offset:1px;box-shadow:inset 0 0 0 2px #fff8cc80,0 9px 0 #1c697237,0 24px 55px #12637333}
#title-screen .hero-copy>.eyebrow{display:inline-flex;align-items:center;justify-content:center;padding:8px 14px;background:#f4fff7c9;border:1px solid #fffbdb;border-radius:30px;box-shadow:0 3px 10px #2b77751a;letter-spacing:1.7px}
#title-screen .hero-copy>.eyebrow>span{display:none}
#title-screen .hero h1{animation:menu-logo-float 5s ease-in-out infinite}
#title-screen .title-tagline{font-weight:800;letter-spacing:.2px}
#title-screen .hero .primary.large{position:relative;isolation:isolate;animation:menu-play-breathe 3.8s ease-in-out infinite;filter:drop-shadow(0 6px 3px #29685844);transition:filter .18s;touch-action:manipulation}
#title-screen #play:after{content:'';position:absolute;inset:21% 14%;border-radius:50px;pointer-events:none;background:linear-gradient(110deg,transparent 20%,#fffbdc00 35%,#fffbdcaa 50%,#fffbdc00 65%,transparent 80%);background-size:300% 100%;animation:menu-button-shine 5.5s ease-in-out infinite;z-index:-1}
#title-screen .hero #play:active{animation:none;transform:translateY(4px) scale(.96);filter:drop-shadow(0 2px 1px #29685844)}
#title-screen .play-triangle{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:#fff7cc85;box-shadow:inset 0 1px #fffae6,0 2px 0 #9b672c30;font-size:18px}
#title-screen .hero-meta{animation:menu-reveal .7s .15s both}
#title-screen .hero-meta>span{background:linear-gradient(#fffcece8,#e9fff0dd);border-color:#fff9d1;border-radius:25px;box-shadow:inset 0 1px #fff,0 3px 8px #316e6530}
#title-screen .hero-meta>span:first-child:before{content:'✦';color:#c58927;margin-right:5px}
#title-screen .hero-meta>span:last-child:before{content:'♫';color:#268d8b;margin-right:5px}
#title-screen .float-tag{background:linear-gradient(#ffffe8,#ffde8d);border-color:#fff8d5;outline:1px solid #bd9139;color:#6e5424;box-shadow:0 4px 0 #b47a3933,0 8px 15px #27676024;transform-origin:bottom left;animation:menu-cheer 4.8s ease-in-out infinite}
.menu-magic{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1}
.menu-magic i{position:absolute;left:var(--x);top:var(--y);height:var(--size);width:var(--size);background:url('/assets/ui-star.png') center/contain no-repeat;opacity:.65;animation:menu-sparkle var(--time) ease-in-out infinite;animation-delay:var(--delay);filter:drop-shadow(0 3px 3px #c68b3430)}
.menu-magic:after{content:'';position:absolute;left:-10%;top:45%;width:130%;height:45%;border-radius:50%;background:radial-gradient(ellipse,#fff8c51c,transparent 67%);animation:menu-light 9s ease-in-out infinite}
#menu .adventure{border:2px solid #f8e8b3;outline:1px solid #438b84;background:linear-gradient(135deg,#fffbe8,#eefff7);border-radius:30px}
#menu .section-heading{padding-top:24px}
#menu .section-heading h2{font-size:29px;line-height:1.05;letter-spacing:-.8px;text-shadow:0 2px #fff}
#menu .section-heading .eyebrow{letter-spacing:2.2px;color:#4d8b83}
.progress-chip{display:flex;align-items:center;gap:5px;border-radius:18px;border-color:#e2bc72;box-shadow:inset 0 2px #fffce9,0 4px 0 #ac7e2e25;padding:10px 13px}
#world-progress{margin:10px 0 8px;font-weight:bold;color:#4b7d73}
.journey-progress{height:9px;margin:0 24px 14px;border:1px solid #afd7c4;background:#d8e8dc;border-radius:30px;overflow:hidden;box-shadow:inset 0 2px 3px #3f6c5d15}
.journey-progress>span{display:block;width:var(--progress,0%);height:100%;border-radius:inherit;background:linear-gradient(90deg,#37a99a,#a2d978,#ffda74);box-shadow:0 0 6px #fff59e;transition:width .7s ease}
#map-message{position:relative;margin-bottom:17px;background:linear-gradient(135deg,#e2fff2,#f4ffdf);border-color:#a7d8bc;box-shadow:inset 0 1px #fff,0 3px 0 #69965420;color:#2c6f68;padding:12px;font-weight:bold}
#map-message:before{content:'✦';display:inline-block;margin-right:7px;color:#bd8a2a;animation:brand-twinkle 5s ease-in-out infinite}
.land-label{backdrop-filter:blur(6px);box-shadow:inset 0 2px #ffffffb0,0 5px 0 #86603730,0 12px 20px #2b67552a}
.land-label>span{letter-spacing:1.5px}
.journey-land.frost .ambient-particles i{top:-25px;background:#fffffff0;border-radius:50%;box-shadow:0 0 7px #c8fbff;animation:menu-snow calc(13s + var(--i)*.7s) linear infinite}
.journey-land.jungle .ambient-particles i{width:12px;height:7px;background:#a9ee79;border-radius:90% 5%;box-shadow:0 0 5px #e8ffac;animation:menu-jungle-drift calc(11s + var(--i)*.6s) ease-in-out infinite}
#menu .journey-node.current .node-orb{position:relative;overflow:visible;animation:menu-node-bounce 3.8s ease-in-out infinite!important;filter:drop-shadow(0 6px 4px #215d5340)}
.journey-node.current .node-orb:before{content:'';position:absolute;inset:-7px;border:2px solid #fff5b0;border-radius:50%;box-shadow:0 0 14px #ffffb54d;animation:menu-orbit-ring 3.8s ease-out infinite;pointer-events:none}
.journey-node.current .node-orb:after{content:'✦';position:absolute;right:-9px;top:2px;font-size:25px;color:#fff8b1;text-shadow:0 2px #b9883c;animation:brand-twinkle 3.8s infinite;pointer-events:none}
#menu .journey-node .node-number{min-width:41px;box-shadow:inset 0 1px #8ac7c680,0 3px 0 #17475299}
.journey-node .node-name{border:1px solid #fffbe0;max-width:113px}
#menu .you-marker{background:linear-gradient(#fffad8,#ffe398);border:1px solid #d4a756;border-radius:20px;color:#796029;padding:5px 8px;font-size:8px;letter-spacing:1px;box-shadow:0 3px 0 #8b6f3b25}
#menu .journey-node:not(:disabled):active .node-orb{animation:none!important;transform:scale(.9)}
.journey-dock{gap:9px;padding:9px;border-radius:25px!important;background:linear-gradient(#fffef0f5,#fff0cafa)!important;box-shadow:inset 0 2px white,0 -4px 24px #22584a22,0 5px 0 #bc965730}
.journey-dock #continue-journey{position:relative;overflow:hidden;border:2px solid #aa752d;border-radius:18px;background:linear-gradient(#ffed9d,#ffd064 65%,#f3b848);box-shadow:inset 0 2px #fff8cc,0 3px 0 #ac782c;font-weight:900;text-shadow:0 1px #fff3bb;min-height:49px;transition:transform .15s}
.journey-dock #continue-journey:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,transparent 35%,#fff9d575 50%,transparent 65%);background-size:300% 100%;animation:menu-button-shine 6s infinite}
.journey-dock #inventory-open{border-color:#7ebcaa;border-radius:18px;background:linear-gradient(#f2fff4,#cfefdb);box-shadow:inset 0 2px white,0 3px 0 #548e7b33}
.journey-dock button:active:not(:disabled){transform:translateY(2px) scale(.97)}
dialog[open]{animation:menu-dialog-enter .24s cubic-bezier(.22,.75,.35,1.1)}
.loadout-item{transition:border-color .18s,background .18s,box-shadow .18s}
.loadout-item[aria-pressed=true]{box-shadow:inset 0 0 0 1px #6aab8d,0 0 10px #93dcbc66}
.journey-land:not(.motion-visible) .ambient-particles i,.journey-land:not(.motion-visible) .ambient-clouds i,.journey-node:not(.motion-visible) .node-stars i{animation-play-state:paused!important}
@keyframes menu-logo-float{0%,100%{transform:translateY(0) rotate(-.6deg)}50%{transform:translateY(-7px) rotate(.6deg)}}
@keyframes menu-play-breathe{0%,65%,100%{transform:translateY(0) scale(1)}73%{transform:translateY(-4px) scale(1.025)}82%{transform:translateY(1px) scale(.99)}89%{transform:translateY(-2px) scale(1.01)}}
@keyframes menu-button-shine{0%,50%{background-position:150% 0}75%,100%{background-position:-60% 0}}
@keyframes brand-twinkle{0%,60%,100%{transform:scale(1) rotate(0)}72%{transform:scale(1.2) rotate(18deg)}84%{transform:scale(.95) rotate(-8deg)}}
@keyframes menu-sparkle{0%,100%{transform:translateY(0) rotate(-12deg) scale(.75);opacity:.25}50%{transform:translateY(-22px) rotate(12deg) scale(1.1);opacity:.9}}
@keyframes menu-light{50%{transform:translateY(-40px) scale(1.1);opacity:.5}}
@keyframes menu-cheer{0%,70%,100%{transform:translateY(0) rotate(-4deg)}80%{transform:translateY(-9px) rotate(5deg)}90%{transform:translateY(-2px) rotate(-6deg)}}
@keyframes menu-node-bounce{0%,65%,100%{transform:translateY(0) scale(1)}74%{transform:translateY(-7px) scale(.98,1.03)}84%{transform:translateY(2px) scale(1.04,.97)}93%{transform:translateY(-2px) scale(1)}}
@keyframes menu-orbit-ring{0%,25%{transform:scale(.95);opacity:.85}75%,100%{transform:scale(1.3);opacity:0}}
@keyframes menu-snow{from{transform:translate(0,0);opacity:0}15%,85%{opacity:.8}to{transform:translate(35px,1230px);opacity:0}}
@keyframes menu-jungle-drift{0%,100%{transform:translate(0,0) rotate(-30deg);opacity:.2}40%{transform:translate(20px,140px) rotate(25deg);opacity:.85}75%{transform:translate(-20px,220px) rotate(-20deg);opacity:.5}}
@keyframes menu-dialog-enter{from{opacity:0;transform:translateY(15px) scale(.97)}to{opacity:1;transform:none}}
@media(max-width:700px){.top-actions{gap:5px;padding:5px;border-radius:18px}.topbar{min-height:68px}.topbar .brand{gap:5px}.top-actions .icon-btn,.top-actions #account{width:33px;height:33px}#title-screen .hero-copy>.eyebrow{font-size:7px;padding:7px 10px;letter-spacing:1.1px}#title-screen .title-tagline{font-size:15px}#title-screen .play-triangle{width:29px;height:29px;font-size:16px}#menu .section-heading h2{font-size:23px}#menu .section-heading{padding-top:21px}.progress-chip{font-size:9px;padding:8px;gap:3px}.progress-chip>b{width:21px;height:21px}.journey-progress{margin-left:16px;margin-right:16px}#map-message{font-size:11px;padding:10px}.menu-magic i{height:calc(var(--size)*.75);width:calc(var(--size)*.75)}.journey-dock #continue-journey{min-height:48px;font-size:14px}.journey-node .node-name{max-width:107px}}
@media(max-width:350px){.topbar .brand{font-size:7px;letter-spacing:.6px}.topbar .brandmark{width:25px;height:28px}.topbar .brand small{letter-spacing:2px}.top-actions{gap:4px;padding:4px}.top-actions .icon-btn,.top-actions #account{width:30px;height:30px}.top-actions .heart-panel{padding:4px 5px}.top-actions .heart-icons i{width:12px;height:12px}#menu .section-heading h2{font-size:20px}.progress-chip{font-size:8px;padding:7px}.progress-chip>b{width:17px;height:17px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.menu-magic i{opacity:.45}#menu .journey-node.current .node-orb{animation:none!important}}
body.reduce-motion *,body.reduce-motion *:before,body.reduce-motion *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
body.reduce-motion #menu .journey-node.current .node-orb{animation:none!important}
